From fad8fc2f54a7296539eccc6dc399e0842baf5d6d Mon Sep 17 00:00:00 2001 From: Ender Wiggin Date: Wed, 10 Jul 2024 14:40:00 +0300 Subject: [PATCH 01/91] transfer all conditions of `Effect` category from old hero to the new one after respec, so that they are still properly tracked fixes #4783 --- SolastaUnfinishedBusiness/Models/ToolsContext.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/SolastaUnfinishedBusiness/Models/ToolsContext.cs b/SolastaUnfinishedBusiness/Models/ToolsContext.cs index a8c5da20ff..cd1b171e89 100644 --- a/SolastaUnfinishedBusiness/Models/ToolsContext.cs +++ b/SolastaUnfinishedBusiness/Models/ToolsContext.cs @@ -232,6 +232,8 @@ private static void FinalizeRespec([NotNull] RulesetCharacterHero oldHero, newHero.usedMagicAndPowers = oldHero.usedMagicAndPowers; newHero.knockOuts = oldHero.knockOuts; + TransferConditionsOfCategory(oldHero, newHero, AttributeDefinitions.TagEffect); + CopyInventoryOver(oldHero, gameLocationCharacter.LocationPosition); gameCampaignCharacters.Find(x => x.RulesetCharacter == oldHero).RulesetCharacter = newHero; @@ -262,6 +264,18 @@ private static void FinalizeRespec([NotNull] RulesetCharacterHero oldHero, IsRespecing = false; } + private static void TransferConditionsOfCategory(RulesetActor oldHero, RulesetActor newHero, string category) + { + if (!oldHero.conditionsByCategory.TryGetValue(category, out var conditions)) + { + return; + } + + newHero.AddConditionCategoryAsNeeded(category); + newHero.conditionsByCategory[category].AddRange(conditions); + newHero.allConditions.AddRange(conditions); + } + private static void CopyInventoryOver([NotNull] RulesetCharacter oldHero, int3 position) { var personalSlots = oldHero.CharacterInventory.PersonalContainer.InventorySlots; From 31f324260d9a91be44983741768392f0cc6bbc99 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Wed, 10 Jul 2024 07:32:18 -0700 Subject: [PATCH 02/91] fix Ring of Knifes missing spell casting modifiers on bonus power - fix #4799 --- .../FeatureDefinitionPower/PowerRingOfBlades.json | 2 +- .../FeatureDefinitionPower/PowerRingOfBladesFree.json | 2 +- SolastaUnfinishedBusiness/ChangelogHistory.txt | 4 ++++ SolastaUnfinishedBusiness/Spells/SpellBuildersLevel06.cs | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRingOfBlades.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRingOfBlades.json index 95ec62690e..9a2d71fd5f 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRingOfBlades.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRingOfBlades.json @@ -324,7 +324,7 @@ "usesAbilityScoreName": "Charisma", "fixedUsesPerRecharge": 6, "abilityScore": "Intelligence", - "attackHitComputation": "AbilityScore", + "attackHitComputation": 9000, "fixedAttackHit": 0, "abilityScoreBonusToAttack": false, "proficiencyBonusToAttack": false, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRingOfBladesFree.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRingOfBladesFree.json index 8af24def60..cd0372bd15 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRingOfBladesFree.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerRingOfBladesFree.json @@ -324,7 +324,7 @@ "usesAbilityScoreName": "Charisma", "fixedUsesPerRecharge": 6, "abilityScore": "Intelligence", - "attackHitComputation": "AbilityScore", + "attackHitComputation": 9000, "fixedAttackHit": 0, "abilityScoreBonusToAttack": false, "proficiencyBonusToAttack": false, diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index e459a08973..71f16eefb6 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,3 +1,7 @@ +1.5.97.20: + +- fixed Ring of Knifes missing spell casting modifiers on bonus power + 1.5.97.19: all fixes marked with * were introduced with the IsMelee change on v18 diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel06.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel06.cs index dc3d4c3418..882cf2fc70 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel06.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel06.cs @@ -677,6 +677,7 @@ internal static SpellDefinition BuildRingOfBlades() .Create($"Power{NAME}") .SetGuiPresentation(Category.Feature, Sprites.GetSprite($"Power{NAME}", Resources.PowerRingOfBlades, 128)) .SetUsesFixed(ActivationTime.BonusAction, RechargeRate.None, 1, 6) + .SetUseSpellAttack() .SetEffectDescription( EffectDescriptionBuilder .Create() @@ -692,6 +693,7 @@ internal static SpellDefinition BuildRingOfBlades() .SetGuiPresentation($"Power{NAME}", Category.Feature, Sprites.GetSprite($"Power{NAME}", Resources.PowerRingOfBlades, 128)) .SetUsesFixed(ActivationTime.NoCost, RechargeRate.None, 1, 6) + .SetUseSpellAttack() .SetEffectDescription( EffectDescriptionBuilder .Create() From 362d2310022a81505cbd3e83d0c89ac4466a9d04 Mon Sep 17 00:00:00 2001 From: Ender Wiggin Date: Wed, 10 Jul 2024 18:17:48 +0300 Subject: [PATCH 03/91] unregister all conditions that are not present in new hero after respec --- SolastaUnfinishedBusiness/Models/ToolsContext.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/SolastaUnfinishedBusiness/Models/ToolsContext.cs b/SolastaUnfinishedBusiness/Models/ToolsContext.cs index cd1b171e89..f828e6923c 100644 --- a/SolastaUnfinishedBusiness/Models/ToolsContext.cs +++ b/SolastaUnfinishedBusiness/Models/ToolsContext.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using HarmonyLib; using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.Helpers; using SolastaUnfinishedBusiness.Builders; @@ -233,6 +234,7 @@ private static void FinalizeRespec([NotNull] RulesetCharacterHero oldHero, newHero.knockOuts = oldHero.knockOuts; TransferConditionsOfCategory(oldHero, newHero, AttributeDefinitions.TagEffect); + CleanupOldHeroConditions(oldHero, newHero); CopyInventoryOver(oldHero, gameLocationCharacter.LocationPosition); @@ -276,6 +278,16 @@ private static void TransferConditionsOfCategory(RulesetActor oldHero, RulesetAc newHero.allConditions.AddRange(conditions); } + private static void CleanupOldHeroConditions(RulesetCharacterHero oldHero, RulesetCharacterHero newHero) + { + //Unregister all conditions that are not present in new hero + oldHero.allConditions + .Where(c=>!newHero.AllConditions.Contains(c)) + .Do(c => c.Unregister()); + oldHero.allConditions.Clear(); + oldHero.conditionsByCategory.Clear(); + } + private static void CopyInventoryOver([NotNull] RulesetCharacter oldHero, int3 position) { var personalSlots = oldHero.CharacterInventory.PersonalContainer.InventorySlots; From ab02d3dd7c7d93650b224567206792b5793ddcd1 Mon Sep 17 00:00:00 2001 From: Ender Wiggin Date: Wed, 10 Jul 2024 18:47:21 +0300 Subject: [PATCH 04/91] account for the fact that entity service may be missing - like when importing save --- .../Behaviors/TrackItemsCarefully.cs | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs b/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs index 9fddbc5760..091efcff77 100644 --- a/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs +++ b/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Api.Helpers; @@ -19,7 +20,8 @@ internal static void Process(RulesetEffect activeEffect) } var entityService = ServiceRepository.GetService(); - var allEntities = entityService.RulesetEntities.Values; + Main.Log2($"entityService: <{entityService}>"); + var allEntities = entityService?.RulesetEntities.Values; ProcessSummonedItems(activeEffect, allEntities); ProcessItemProperties(activeEffect, allEntities); @@ -55,16 +57,14 @@ private static bool IsOrphaned(RulesetItemProperty p) } private static void ProcessSummonedItems(RulesetEffect activeEffect, - Dictionary.ValueCollection allEntities) + [CanBeNull] Dictionary.ValueCollection allEntities) { - var characters = allEntities - .Select(e => e as RulesetCharacter) - .Where(e => e != null) + var characters = allEntities? + .OfType() .ToList(); - var containers = allEntities - .Select(e => e as RulesetContainer) - .Where(e => e != null) + var containers = allEntities? + .OfType() .ToList(); var itemService = ServiceRepository.GetService(); @@ -81,14 +81,20 @@ private static void ProcessSummonedItems(RulesetEffect activeEffect, continue; } - foreach (var character in characters) + if (characters != null) { - character.LoseItem(trackedItem); + foreach (var character in characters) + { + character.LoseItem(trackedItem); + } } - foreach (var slot in containers.Select(container => container.FindSlotHoldingItem(trackedItem))) + if (containers != null) { - slot?.UnequipItem(true, true); + foreach (var slot in containers.Select(container => container.FindSlotHoldingItem(trackedItem))) + { + slot?.UnequipItem(true, true); + } } itemService?.LootItem(trackedItem); @@ -99,9 +105,9 @@ private static void ProcessSummonedItems(RulesetEffect activeEffect, activeEffect.TrackedSummonedItemGuids.Clear(); } - private static void ProcessItemProperties(RulesetEffect activeEffect, IEnumerable allEntities) + private static void ProcessItemProperties(RulesetEffect activeEffect, [CanBeNull] IEnumerable allEntities) { - if (activeEffect.TrackedItemPropertyGuids.Count == 0) + if (allEntities == null || activeEffect.TrackedItemPropertyGuids.Count == 0) { return; } From 7edd01471bbafd50d20c0e9d7c6830bc81dd0146 Mon Sep 17 00:00:00 2001 From: Ender Wiggin Date: Wed, 10 Jul 2024 19:30:27 +0300 Subject: [PATCH 05/91] removed unnecessary log --- SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs b/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs index 091efcff77..eef9946934 100644 --- a/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs +++ b/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs @@ -20,7 +20,6 @@ internal static void Process(RulesetEffect activeEffect) } var entityService = ServiceRepository.GetService(); - Main.Log2($"entityService: <{entityService}>"); var allEntities = entityService?.RulesetEntities.Values; ProcessSummonedItems(activeEffect, allEntities); From 777895cf1145f48cbab60d90dd85c7e7be717236 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Wed, 10 Jul 2024 16:08:52 -0700 Subject: [PATCH 06/91] update subclasses sprites --- .../Properties/Resources.Designer.cs | 20 ++++++++++++++++++ .../Properties/Resources.resx | 10 +++++++++ .../Resources/Subclasses/DomainNature.png | Bin 0 -> 36544 bytes .../Resources/Subclasses/DomainTempest.png | Bin 0 -> 35773 bytes .../Subclasses/DomainNature.cs | 2 +- .../Subclasses/DomainTempest.cs | 2 +- 6 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/DomainNature.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/DomainTempest.png diff --git a/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs b/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs index 5344bc6a01..1b98f17aad 100644 --- a/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs +++ b/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs @@ -1199,6 +1199,16 @@ public static byte[] DomainDefiler { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] DomainNature { + get { + object obj = ResourceManager.GetObject("DomainNature", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -1209,6 +1219,16 @@ public static byte[] DomainSmith { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] DomainTempest { + get { + object obj = ResourceManager.GetObject("DomainTempest", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// diff --git a/SolastaUnfinishedBusiness/Properties/Resources.resx b/SolastaUnfinishedBusiness/Properties/Resources.resx index bb0711bdd0..58512c2ac6 100644 --- a/SolastaUnfinishedBusiness/Properties/Resources.resx +++ b/SolastaUnfinishedBusiness/Properties/Resources.resx @@ -2060,6 +2060,16 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\DomainNature.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + + + ..\Resources\Subclasses\DomainTempest.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\DomainDefiler.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/DomainNature.png b/SolastaUnfinishedBusiness/Resources/Subclasses/DomainNature.png new file mode 100644 index 0000000000000000000000000000000000000000..5ab6fa115bed2579fbcb6336f24cdb0402256cc9 GIT binary patch literal 36544 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 IM6N<$g8tu09{>OV literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/DomainTempest.png b/SolastaUnfinishedBusiness/Resources/Subclasses/DomainTempest.png new file mode 100644 index 0000000000000000000000000000000000000000..1c15318404f32e8169fba448ccef5ea56f09b68a GIT binary patch literal 35773 zcmV(}K+wO5P) z;^XAS#>XWkD8RtO-rnGYgonn)$&ZkeZ*Fq4w6{YCmByuOo^mo6b#-?@K}0z@JP!^L1_lTl8y*r76$1kV3knSt6c-j1 z86zSl85kQaEifJ(Atxs)ARr?#F*GG5C@Lx~H#a&pG&oC4Pe(^eYin*fIXpo@L~n0$ zS65m)J3c)d3t?CMMzFhQF3#3U0q;V zT3vK?c#e;fWo2l5e1L(1goK2M)6>q@<>soS&YbqQ}U}t*)`o&(XiY z!gqIiwzs*&#m9?`j%qzT&2CqMV`TZCF(XB={L{jZWYJngrg;1b_{59<9r@m8zx%>j(L^S(0}b;n?g3)}>DxcIGE|8g9|ymPhNau z<$Ld5|M>w<7~K8>>ipH~&(oXjHe{np@eRh*UC$jh+6rAYcy2jcPj``b`2Oj19Gotr zQ|s~JC+|M{M%v)>H?RI2=?rHMpD&9`cd!bEC54$BZmZkv7S8OsYni5{JDweMuASTZ zc4)ela*3Puy8W(y?E6mx@Rkc0;q~vnVTtkOn;*VWy$m$8(1(Z!+f4u^3ft(w2iIRxLlL$CIo~L zoe%?$zv^KSK>mwtvT+@*#v8>vnnjR!B9VxtxUe&)8n?j_e(iDGZM}N^`HQcmeDXRf zd4s`ra2m|&^=9A*aX3c=LvT@(D$>xk^!Y4Y4Z5f9U^ne`_EyIj_5JDGZeFLOarfl= zL5{~GM8fA^zhv<8^~0hIhrd0YMy@dlJTaDl zg9qgezQGN3&+beI-N92hx9Vjyg&+_W>RRKtI%QAdX>bz^&ubNH(i!#p<7vm%8K%;v zMKqI+@H0L-9>;;g+?u6C>{SHHW0($Kog# z*i~+I>W;yO`mLXQjRN7*cR%c(AW3bDhP;4wRrvlId9YV03=6B{G|ggCJRy z%;)o@AeQMuvU5#+NCl%zwpbJjbg@7X1d7FD@JQ#3VYoX_Ls#E0^h`2wkx6oaCx zRkm6cizJc9lL^HtCF2;1=8M&8wJ4MeBF!rl3%-y;;!&{RyxkjxuC?K)Jiw(yEN#y8 z@?kt456<1i!<((^1}S(a4AQ&=(< zWA+YfLsmJDyZ)=+f0YH{lXtDwr3=pAb?IhPh{Zq$nwJ{-?a8hXi6|DbC?SG2tX3`- z%Vh$~h_!h*9s588wE*ZpVZ9UZAkgo$`sdz(p>PBx3!*?(ixfo_3G`XxSccZu>$_<- z47iYvB`Pzn7(^9!JN_!OA$b4gbljcKGuCca!TE7P<7-T_7clu`q= zz%n^rNJTi23mT=)Xgl6ckB{%Z8YlSP>&HGMqyAt|dwVJ#OXpZh;koe1)3V_CaQFl% z7U?_-={=Rvyk5U`89&|Z$=q{6bJttK7Z)8mV2O?EZHCNp<1Ft%Z+!8m_Y#ieAs-ft zMY<~BcqTHaVBP{tWq2}j3xqq=E5UTI8}$~8uK*Rm@%w=2#{E^v3hGeUQzE65tXs(B z6R{6*=y`HPo-GJ0)PBNR9~aOPPh4FeGEpaB*6OlWEP!Jq1+q{rYKF{LRF30xu!TEZ zf~WL%b}5;G^1zCa5^*FQk3yk7>39vbUH~tMW%Op%>g~3p>9O^*|8}qZ$@><7{_S=< zqyjx1k7EUjmzhpjOT`g$wOgC1bOwT%$Yu#=dhvJRQXiTo$JBX^&Sz7A1_ZHCfWC)7 zQ4$3FJd34>LY0y$l4`=O`fS(lb}9%$h-4O!BVMNSQA(_C!exc23sJ*FP8@o6y^eNM z-~aDA!P}qs$MNYrxYA3Th$S(Cg4mx0l}tQd+X093@aGegK~XHn0CMZu;NQB%$pswn zE?TBEK}6A13Ij>uDbO6t;3&jPm7+z!|2d&r;v1?|=hb`X=CO$sju@-U!$a#BQeXmB zzcZ@TCNfwe-nJ#~>1i~2+AaQ@ncz+9cw!az2+uunfFHQaG3a+P?&n%7GOO=z>zD#zRv` z3T(rk@JW3E>R&FGmLK3?0>QDJ2B$!ukihhLakB0`O?%xx{Dn7tr}M zBS+7pf~aYHV!FeHTgbZ6$25+wa{Tc6BUebv&r2G3@Z z48aOyHjN8as#q=7hPuwP__7Og5+5ANhp)#8UTsSpCn#D$$fGEdK_TuxZhgNy6S35I z;g4*`wl}I1T)k8w3>Ac$dpy?=v2-G-FNyp0y6Q|%Kl}EJFI|5Bs=pnKcfFG1VG#WS zklRhWoTeOZvpNmQNq5omJ3KdU?v@$_Y9nX?NFEH=N*a+b0r;!1vc=TKkFCL;fu^8V zF@s&}VO%N5lBQHD9HZ9r1e(KyoqvWnJ8wB|;jf$#(2V}sR)=o8dt7@8l9486TcUE1 z4C#rchPTeGGah}(^F_dZ3+TlLy_;c6(DG$9RdQyHOqx=vGOveEv+ZaM+?~&GnXS6qqA{Q_v*E_kV?lfkE3VdE$mGH_~rITpS}mmXFOUt zYBLY+57A%SyJS2eRspk6rA;T8&zH^B_;FmWs0FxzM6qmv7En#qYb53DH@v6}^k3n+mC=#dzP z@h0wkzw?#KMuqB~$PhR(2Uj-fI{ zu`Z`do4XBTBSSIUqvH*#iCUAD8o_afScT@QfUr2qIeeWWAq>Q&!2q|o@0@@A;>!}y zf3WLr59MYf9z$?iYBV=Q0$?wSr?NSC=4qKXH+C>NjCSYNW4D$e@VwN}(6-Ldlylc< zqB3#ig+DBLP}o58zdm7lIHT3>MKT%G(9KeTuPb0ZgdbL_ls<78ZQ9%GJPmn=tD*p{ z6-s2;yaF6kTHdI9Nz5eTnW3cY5Bphj@ar$B7`%Peh3;$WDFGdirv$#jG}}lL(|9zM zVMg6E5P2oisByaGdG^F!9Um?R#?z=#sj(%~veY+ z#Y-kzjPO3qV#%DmAA@-=i{q1R8k6orbmxvk%Pe3=5@kd*i^cQ0F3T(qq?t4=xu8Ua#x8Ue*>+(1C z|Mm%L+)1vSw`ta>P<)XuDQGUgZ25!5gWq3G9F-bBw9c#MVdBl!+mOJ~9FC(9dKdzo z2)$tprGO<9#89v%_ql!j&U=@j5z!rGQCJMf3;)j7g5sHJME%;~AZ0ApGXH zUw;3K)_)2;*G=9qz-Q-Wm2tIXG9Hb);7Kq%EictdMQRM4CQ&E~tkO1zPcye)Gl$Uq zk@b3^21Q#`?}~SE%F`1J%^&}s10F$Ohk$vm$Hop~W&l;flz1DlH)!HVMY(-C$YW zj}W@ipm33=@Jj0(_IrU^hpnM*XRk}LQQ}K&p07|vBOLqvZL^S0rlEE~E6BuSq+X#Y z;F9C2#(Vn2YyRq!FVO#?iVdYSBxuI=B%JT?85c7Ff=2g!Qc7q`6j={?p zJ>GDy6u~q|%G7x@pB~R>2lOAnT9hB{2u3&ceIU7~qXX&fNH&w_+c<0yR6Dx4_9`e) z?!DP$-13j-!TH>&l57RWW_B1h!yx2_4$s1$m7GE>o?)1>On?O#TG{B{@&Fe2V&cE| z)az&-pGao`?E+N?qfAJ{v(dhJYnYtD^Gd0q+&hBY<@*)3?M^Ec(CuC@MlqwLZ+uwR5t_%pe+=bk~b=^sn{#0gY z4~es92KR_;7;+^WW^c{e>>6>g@Q>A*q7sc`RJQGGbZ7tb|Ck{76ykq%T~{0^d%0?f zn-^iFp*#-`b4IL^gdhq)+eWw)sOwCo794Kdt|i}_mZ7@AZFC9-kF7?WQ0iqx<+L)D zZLTXqxbA_640gNi;0P-LqY?Pnx)YS-S&%3dCqVyG%DFPC!AFxhjRjG)@xgmgVTd&;QfD;AhLI39k?NWD=zf z&K809qHJf#D}_8tz#~uK(GyaFR?C+d*M-#O9PjsgPsii-x*ko*cCSCO=elZ1ZG&$cv?3ct z0oZj=-cU=WM#oSq5-(L`s_xhZ0_zkq$3iuX#ifFzTe`mg`G2PWJAgk=p=3&lBu;6} zT!@1qxKfqKK@9+U8-O5+=Fkk5vbvDYp6XoFUIw@8sQ>8mZ8yA5&y((B9T62-DiFNN z=L*xMp-lFB*cR-pfy(Qx!NJy@TM$SE=BboLg~fDrgzKY&eFFz?nwH5$hpn(wQG^jI zspt&AMU|>*!bHas8 z>TG;AQweKt@0;PQ6WqWT)6v0R(tNQxwj#UJNm?K$R*I$D3@V!OhiI^ zj-=34ku8fP$&s2|EELNHfh6-}g-S=uRdtoDW|J{Y#Tf_>z4;$l;Pc}xSkH7>hrtiY zx4mitfFQ;axaB`SK>3~$5cdd3I@4*|j_Y|hy*KT*PR+W0J097}a5I};?ei>6D*~%R zEi7rc+;e2&KAAx73WD1#2m@G$yDwe3pdR>iu_2i?%i%1SgQB7GB7iHc2&pD7L^E@o zoNx+>=JO~CNw+|eWPyas*<1>2Luv??0BXLj7HF8I;SGXgIBWQa@BG{R_YWX4o37#} z5*X30&9$ifCxOLRFFvd~1Ik??&yr5F%*NG$uY$yU4_1C_#Jj7m0!`qiGj}_7Jg0%9 zDkYvRqH%lAu~pBVFYP<@E&Kc3_B>BlvIYlT0vNU*@XQ8|j)R2>O`%0_ZxR$Hq4P;0 z6&}T(`@n1_1L2p;J-^iC5(QJJJPR-pk0DZp6%oLO^#a3j=Et9Y>)%a)w@x^l=jWLu z=+Dog{v#$uggCDUnmH;>Z1BmqpVI~KF?W`oPMJ=wBFUSfddwfT4k zp=H5P8C5`Y5?%pTMyX$O*Tse&ze7^etg05~IPgBN39rZNdcAxxJUle4_v{+kJ)1I}p+ z9+5x@x$d?j{ZrEPyz|b7jdi%q?wxKknWV$hW9!swkhG@F&d2k}sagB!nc+gbO4XHi zo8qxVjwWgq120My9!a!kAI&1JLSv&ly5~3?SHZKh?!fN(tEH<09|Q+#7#b_&p}-J$ z4ux@2CWT}1gx1bwl9AD)2bP0TIY?im0}6lvjK8VO*Mr&lc?&sDrpq*2V586` zP&j57q^97&kw_AW!g*|GqII%oi6hVwCej(~dD|Gw0#GO#)x~4k23tkpzFH1^(B%H` zZ{VR%ezc#>Y(}a;0c6#oip8P*%XTLBA(U4$^fu6KbUc?iuVBlwIXjHT_lWbAWY&=6 z;;<7I@hmld?C(a$*26T5;W?Zr^M;_vWi(;9rpr-i7G{J*v^cDh-5?vEHi^t%b52z$+Fh)%A*$PnA z`cMCL3;a6R!}==Af&QYzSUBjP!KxdxQkUDj$$)1u?#5BV=5o2z8NjK{&XTKC3-zZi ztPQNMHlD;+XPeO{b7#9aKpRb_5SpP1BoJBYoCsme54q*Qy|aa6io$Vd4+m5CUR z1mLY_jf85XA-qaf7A*--=+gIR1zAb>oL(2jqIx5dX-H!BlRyL7N zf&kSIA}^`PiA3o4| zO_HEp{qDb*0Jcp4Bc&mcL<+LvmZQz>r{mye8lG!f&W835&Dmas-_0wmB17ax+bjh^ z*;m@_O0CB8Jf|}48rP`TYBh9l96^ayvKlwxK->?mQqEsg6@4SaIsDM%(U+ zhxHH$d?;y<%@Hh{0md^cZJ$;X0#tt{zv4+45h6)2hv^+o{r(dH%7YhRv-Qkv)Z2 zOB|OtZb=AY!4WZe=KZ6$D4MNi+W;QQE8hAD$M^Q*8nu29Il)@nt1$A8~ z45b276oM{-UxXnrO|fktniBe|Eqr*8nymQvTTGSTp5I?=mh-xf;6}_dGM#GPE-o_~ zpO-vIN-utUHg&@urYAL~ax}{QL?o_MmU$S-=e5L&fCvMp+ix^RKmYjuo&g@wUP+*S zFyQGpg5&W}%S{eJhfoNmr$4$T?ug;(xg(;GVU}*dg;mq;=v1BagCg>uqcw$gU`d)L z9P}Ig#sFvM&{Zd7pt?0!SbBE>eglJI?`M@e%nw#Z1~r|WunSKmzf{YLyh1HvyqX0vQq?#s+hgK<}sAh1O8n+{x% z3xg#Q1%m}OcxP8j+=s}zM8e94^S#NlH}1Rb>#nNmb-qpTZ@7kE>0$4}xYEVka0~sw z`KZ^sSsxd(;oL94r^-k-{v4xF4kw>=17T5LpEPHAmA04^AD``SEs^9D{&vx@F8@v+ zGq2X7$N(%V6fj8882*n=@R_e>hqpJkNeyQ#tg4ks8HY3QcE?Wc!XJRh{`9fP4`*6sWFRPzKR_khIK$zbr> z&@^rsJcckXQvm)of`azu-U1pyzF=hJm^9yKHpfFE7QW%VxyrR7Jqb05`MgurBBX?Z z<5yvGKmXt0(C3zLfJ&pJGPgG9X)+92GXc!BN(#YY;0*4qR4XrA6IyW&=VsLjxrtd#x=H%@7c-(9TL(m=XaPRDFzh2+(_d7Zg688O8t<~+%%T_%Ke2>nJ zQS885GV(S^As`omc!3sz^LHksCy%F1P=ky8re{jz6x=H*BS^R}m<6AnRC&{^RMRXd zrDZ48!65vf;LvA}hgmk&<}x$7e%O^I9RZ$FTs-HX90|*|E0E(_gN+0aoBh@EMTLqJ zj>e&$?CQ)CB{S;AuNg4jG+Upc8~)oq@_;{Rj>p?@Fvl!VwS*GBM5CZuCrQ%O|5H*i z6r>acM_&IR%0l-Pgd69#Fa!7kM+k^{KIVt|2!6aWq9`bq>x?GqwWKPU3hY)F^P*oU z+G5@*)sw*>4L|w66v623Pdj}b$gdSvm}D9})!FT)%SZzTvP||~%*zucJb$g8{#JXR zkyGe|UQAs(xq2UnMKvriA~+?Sgc%r*_fLLn!FW`XfWjs0+rwl$x+%2;P;F34aco2Z z<%KaiuV|Ghn;Cd(+i?tH0(9s2-i)!P#x+2?E^i(->$*fb*Exz3*~m4a0kIf%U^lX@ z%L1Ihb5$WJR@14EzoeAnXKifS?k)5;F|f07yrdQ$~){mN*7{dfINpli6zh zaJq1_tBE`UbS245rZ6-7^~r)zs;zmY0`?r$L)x9kBn1l{&(|~TZ#cwmEdteZk$J2N-U2K*PMGh(j8N9%X zH506m65+eyfGL3ggC}>SyxMWnL0Sv{YaIO4x4~AmwTcAmuEx|0&@82BS+$$0Y}f`& zf79ecHiA3J0SYFf#f-)9%xqU;Y1n!|(nvC^8 zrAPI$Hq(#}Yvpp%m{&__CBb~epkQ`uMk(zmZr$-b!}6G6( zw+}D2syoc!1}O>k*tAVuFbbipXhai8d8t+`>OwwpI^97n`R;$igFhmEDjA@%Dt5w9 zmrW27uI4(kzN0wa>hzMI?;@4UEPk(Nlpd}QjPwt6+d65$zPM^T6qO`VwJpb?h7sY% zG`_hRUp{PVHvAfR%>W3}oJ*_b0ZNsUv{OnNsi9%)v{)!(Y`SAcAfJnd;~5B!3cIGOgDBe5n(#K?K5b-y1sd`LB0CD;%zXE`ZA2)vvF5 z64XPjbHrq5#}Y1hGi8-M+`1NH!QlU085U zA*Z=fx7O``_e1{~15U3Wr>(vsv4S7=RT;Lb)LktdxrR61Pc~hNbg%Mtc+h6Q|NU8s zVG+;#qb0cDRlkwOZL?E8B2`v=ZK|*2k=D zxE_GA?8mPEF?mO-W9YNqB55rDnC9WSE`eXLsb=LRZ0Y?mB5AHq{ z;+pt0&To6!@1Hh9fFy`-ZwrOSa&x@;_3PmGG0z4Hsl;U5T{yi#CV}r}9d5Pknxoq)Bf&4$`%TFB7U1S)7tzt&%hzU0Y92(H z5&^)E*M!un?sgN|EP+Q=^LaP$6e(wTZp}~q@BSwRe1A5*xd{f)a5)%4sT$IMqf}dG zU1DGdO9iT@&4#^)oBR0mELduM|IO=PpJO)O-&`$B?c_zLwh?)*!VE+Pd^DmsRH#8l zG~)!1%J_gwW|N`tv?emId$-C$CKpREgvj!>C@^eSV~)w|sN!aLy}xfND%Yvh-Hix; zyNlzX<1JizZTymuZ$WaVYM_L4qlCLsP7Pd5&gY6MsMcWcpG@ETT!NX5sK4#EjcS;-z8rxJ)|PWs@95g%j9w8#b(Yeuvp5Q-KLch^LZ} zi{vuc_W8dxflvKp(jLcFOJXjXuDWCZ|BXw=u-4EQZyO z3o<49+HW>P$FvUTrwc|HTtSGgyw_(O37nmqx}@s!bJ=DfOkA5l0PSSZOgy3~rd8dx zJY*zoctXQ5C+I2D(c2w^Rvc=0%{c8)Y`^$I`tC7IQXd#L1?3nNqiq|dX1KYHRH}8t z8D|TLp{O1&6GaWe*)?T?JWE}eh^Cdg80pn03W#M-gC1NJhgS>fzsrQ*qZ2MhAemOT z5}FcxH^q*HzE#G4jzUK6Zm&0n-QaB`oCW2cxPk#suFC}U<0n< zMy%DVxUxiWDNA%Nsbd^5ANiL_$zT6QF)b>E6m}4KQ7qTS?GZmeEUWN32Yk6KwjDuK z{ric{!Sppk053q{RoUUP8OfseSfipSZ>4xQQ`3CI)XI{g!UW1T6rk8R$r$**_%~(X zHD;?4A9%jwa|3XSgC?sbC{7F|3IPs55!Qa!)Vu4mv2pW0*+0cL_je5%a9qf;add07Ib&WN<+yU(4QCBuQS7p1H3;@q4%6+P+RLDE~ z^K#dL&)rA!ZJ9X=V3em<+P*Gw4oz3(u%%$Z2}&3u;llHE@|$Z0yhGWr$*Ahb5+$oq zBN4fgi&zft8@Rh8goFj(ExTr*6BDk$8-WoK@PM^jxOXJ z1{0`vzwj>&VAkH=RRRq>P&us8q3`m%X%>=txr0y=D!dChKkKOF-!<^!w-%8jCSqN1 zuTdFfD$A?o^>V$~Cdd8huYWU@P0cf{HqxoABZ;JUF}ejUKW^6?O_}`Wy|bsY{XM3H zFgCe=ILeBXVx*(is#U>ZQtiXkdWIa)k zaH^~Doqrhu(XMX0DZ;w%w>8POoq4}wrsb$> z+jiO_6IPo0P-dfZ1J*F5>X-2U^{#1h<5>OrywFOj&DCy$p^uCAVnb8?X^lxp9mw>n zQ=I%e|K0D-&WPYyfa6`Q&{oWFyIL$3b(rieF1$pX5g@-xG#r?m*ymw};R#Lz0q)da zU-2oSipruYGtK}5VZcd-Q=-C#4V5Uhlu3r}*a5S(K!OkCN=1#*fdn5Y)jsyGK+p}E zR8bu~Kz-DdRl_LHE2e|~QluM6llHKD`_RC9W%mUBs)UJv4=$e##<9@*SEr2#1b6C# z=&iK|@j8ymp(atH#Fn%Bb2=vnyWayjB+KiU;q>}$@ib?Ip|r`gP;A2G5{Fh&TrxM%Jnz`rQ|e|mhBdSWE701UW}XXKlF6CoVG{(3kRnz zj;Z?_$d5b0!|BzHQPNbHE6l?3+(I|IOo%9h_{eYC{){f7hauqy)l~0#%}N79hCw;4 zb*t5Rtv`m3E%&$(3l633o{Nk({gDOqIbnP7aw?R@0I2zFA+NX~<_>e#O+*Q=Kd!*uT+3Yc!LefByun@yTycX|wIe-e=$=h^#Go6ilV^MKj$8k)G ze5FQd+r&pAA5e7cc>f}k(;oglPuTyzi5=ARK;(*VtqoWo8tz5`3u2hLZg*QVL^{Y%63ORHN zQ#Uz;XH~O5sLU&aL1Ug&iYi)dKtILV@@Aafq&$=|9o!&x!d$LHRvpKq)HEmf6o)23 zLTI3$OeT&X)#6FW@&*%#Vh66#3N|)B-|EGMe9jOH^5sR%c=cdB$|2nDWwnmhAcww2Mj74ao z2VeLH1NcU}x2;5qY%N_gyM|W|sxFsv47~%$aL&g+o2giMT36Bs&T#7&8Dq-i_rD)Q z2r3q7X3t>d0&%sa>U?rAQ51lr#1H6*yv?*_ef2KGSPiJK!*u#~2yqvO>~FGQ>r;@k z$Z{eR~lLVyNIL2)=;FPK%n3kx8*z*&MOXF(KJmF zf9ModDPK(`!S`}GM?=fH@XLR=*703$*zQCSA=$<^Rm12e9Zkg+&1>*tCQ_g`lcyyk z7KeHx#fwma1{8fWVP^I8*Y9&$gJ$cPqHF+S{hm&jM zzhO8T_TYNGVLYBR!;-F8f&_7x0|Z|pBT=KS<>D!P1r1U+vrWbwGB~ygCO0P{#eXrb z@!&&kQDxhc=`V6hH6Rnf2S(`)PD}>~E{pI16_W(TAAkJsJ)qYf4s92OjINa&8LjuZ zr|9^@K6b=``5~Yt46RxwGG%uQ4wFKCUE(BdNVVUt^QIGxZph`C%FsAq_p7R%C^d zhv~coo-Se+foVFR2YE4xcpM}R*zu4FSUJ-bC|u!PZM!52xjfVJP=GE)#kyPg=-(;e z1`4Qnn##JEu|&VKNSGL#Uei!_dy;NK0jrRuM)+&NwKz{4>h@E<>tk+zA>_7gM z$AJV%3CL*e*Qfhe{|@t0+X>D*wOVz<6lcFVql-%KP!T`i+QI;UI05wAnZWE0LSUso z8ig3JX*8FQ*{H7OMV{rMO-a{9MjXiL3*$qTSG*$jJHHmDZ-ly@jEySKd!um(-23$7mL~KEz@s*v;Pf> z!PgTg;deN0dIkkt>{ntuc{jPt;_-Mejw^#+Kkb%m+J2}Vq8a@Tr4GuQcz7tN!vj2~ z-v&!ho#6r_0-DbSxK)8Gz_4>L0T>=?mPjP8aCHf{EGibGAN;)n+T*e2%FOHZyM$dU zsbxR{SJU-YSti-+d7o-pM!ibUU^JD9g7-HilO-3K@^qjlG*dGz^)5Ey9{fZlfmyHG z+28)|>i16o!8j-Wo2P~Ju-~1cGI$^7MRENX%$Y+0yN9DNS#8!hBDCA@E;dik$Exd^ zTzndtqAI_kF%za5)1C6GEPO0zxr<44;l98Q7qtvs}&; zA;0VXO-=m4Z(yD@)X-*Y`F)@uCrHwWHrREU({TTokqFjPRIp4!sXAJ?@PL!La+KlLPL(lG+ta7x4+rE6V5Jnkb86d&2N53=6}Dy zwFq~swcg7f*0}28^M1d;MLL#kEntwJ0goZtLZHHcr%x)1*i02|eu_CmGN7;lGm!bz z1~gDtav}v13!bAg*oUK7nu@UC+IBuCGAoKa_tSp^11E8BTaB2Eeqi53{nYSFC1#Ki zEKL*{tfpP6@cy5pK?gL;MICF$I&sG7&Z8A6uG zn@$Gx7*PHsK0X7!0LmscQJqC|!I`NNq~~8y0oedhuayUK5m;pBC5bG+G;J3@&uJD& zft=z*k?Vc!gMUqeV;svUM4-{iNg{&^8ewA9)`-$I?h0r=dWtzHQT|LiM#|51W z%u;~>u<=J@vZ&hUk*jUD32=hX7 zpfz4@8sZIt-9*#)?KpRX=l^nps2?p15 zY1&_0VyhqD-Yy@fkIU;xWo|9PFs4CTjE5)Tyjh7WaWiiA2jgP75{A<@=Fzv%#5SBT znZdINOOp~5;MwAU5GUvTlvyYVj-I!+xm@0BS41p=nj9E;sIx(Yp)FQVO;mym+a!V& zMO}(p-2g3VedVt>81IMidNoQbHDdBcffm`G(I}bdFEZ1C0fsuIfJLB_`74!8892DT zQ56j?nw$=GMl1+*&m^u2%PYYHqLPK?$f7-&;9$hdcsSg)D}JjvsitYe4{A7bSx?v|Jat0;VQkF zPB0)6W%2=y=K6B72x&_YO;SupN0Fd|9m@YoXT-sO<*z89*V{Tsf~8uc44KlTOy^W! z==jBw3T$h4`*d1*x|9ju6tB-x3eNsLv+=C5-ori(#73L~Q9-DgK;WBR>4{V?j1nMlup$m_^0u27X~xXV(JUonf{nxt#R!pYA~xhb4eQSh zl5fz3{Fs9fkn}Y;U899&Vo9MXEwyZ^2E3rsl65iD;UtOOaH+Gzy;3uv~&yOfN7`ZdtPw@wb0q4k_cp-!l6aQqC{^gqY?_&La|V% zd5UrY4R?gK~Cf~ zp&-InZ1GokNMY6aGZX?0>Wyqww*5w;qo*69Cf7AtrkTLHrNeE^keF{zq1KSWhS%7B z5_#6+2C%^=L+K6@>5i$?`ht{{0!V&i)a$eg9+IK~r-~fS?iCcBXnm_>1J>Tyst%jc zIm(V2)FC5=nSl+#OSl8WmAUx*Iz2=V=DjL(MggB)PZ%GM^m`JAz8!>q+|dS<2|b0M zB~hq2fCdCh(=}262ug$uMs96=^v?=FOsXof?D+jE$n>aL>S%hJ-R>@yLl+X+N>rgD zu*9hRVf6zQ1h!-9s{jW2`1__#wY#mcX$Ou%?jIHLfYBkyxQX$U+oH{`iu%JJFLh`b$5DaYe@k;bn z1a5#uq{Iq46a-KxJFP*bl19J-x}g&%h+RPtFlqMZPeI^ALny#Uzs;-lJF@BcgTQD! z{OLMBr@JBITPu<1(2uU$o@w_qA_uVH)*3_67q`D_Fh=lD^Cvd^1qNI$Mc8wr_PhxE zz76tI6{v?pb}Cj}Nv-r!;sZrR6jnu%aZXoD5<{>8KK`8N8w%N&-4Z&}o=r3p;sAjG zNhtaPKT{*JY&7=pt6_)snyjDkBPXT}v(T*^9{BMK)_B~GeNcurf`I5Tmiv`1Q!Dao zAK>eYJt&|EI<%Pd>#|`bW&7}(^WE+G;FiODNpRhbI@q%4SSLlA%jAvI6=&<$0ET0S2Q zCulsxqsF{})S?JVj)H*7^1ostS-_ta5F;-G2AS@lZ^?$@8`;_W0}BO}GFY5$POkP& z!BDa1@EgF1A|o(FpQgRpuT$NeTo77SG<#yfQ6PK-6409LmawW~m$p}CoKdNZzSZc@ z;ITw2Dk}3Nqf(UU_#?wY;TSdxdO=_%A~zrllprCRo1IBEkZpQfQwO`*E%Hi74%z}* z12r}wdm-t`59k{`&M87^JPs?v4mLc;w0gh6Z8eS zFsrg2Rub-$f{AN$z4!ZtLqw2cVByp9fjIOF{QLKj8-Nba%Tx$B$q+CVuSz)}xL@CO zfQbT`j{{+;f9!LP+lq*%kYFrZ211D~fdSLNsF;Ls<%cG>eTl^23>T$5#S3SB9*mGI zRKZKRl+vh)-*rHZDtzPleq4gMB<-cNgHOrIqg#BF?owe=Mi~}2Hwe7rT(ZMzjsX&Kjt<; z06`H@C`8unVjP&pq|-a#lr*iw;pX~)12YBPC0IugLq-MjtBJu$Fra(l5Ij%TLVlQF z*uy_!(MJF?K+M0aZi}|lm_!P;z_d*n?3lv!^AeNbV(VpsbJkS@_c<8m+#uq9Wjsg? z0rK-DXjajn6BV|@fCU*%WBf@0V;t%28xl&v2C7ZNZ1h?>ZGuUxq$mc5<7s=nxj(+R z1V=S8#n!&X+DE1n>b;yCjyl1#>xj`28LQ}74;(4v?W>}jSF|W7lu%98>Dt;dfV%{A*7i(;nyko#ts;+* zFa1y>YnLn2G>O}goiE_y+9(`##?4wQ#~0KAJ-|BYE`y^&0SH>Q^T!_P5GONGG_lC< z2j~g1utqclozhS!*?6nzQw7%s!xY1Agi;KVxck&*?0QQez-~{O^*}(iI0lslHG^{w zH`}t}rwmM1?d@`N|M0NR_Q%!pW$d;Z;~p%oeZ3tejj+F^>w@%$mBDs8g8ZXVD%R6k zmd#eZHyF)b6U7cpBSPY>zIb$?PGxf5^YbDS>R7Nsfy`ZMOL>8kArA#XJeiJrVc1Ap zrC*T)AeM3sD24z4$j{omD1!!TXv87GMJ%E=?a69beWh1D4?@L zqjk90?{=t*celIU64%Jg*3avUY`0z?Ru-SF|JJix_-fxR&b(pm?J+_HD<1*j4M zYybg*0i#M-P|(Im6TmK3_9Y3qATkTO8A;mWx!KT?n?tYJo33#R*s#aHb*VXW=`t#f zTL4EB=mkko20TLk>u+XtC2|-AHuZ9`{|&mrn+s51>t*95+nnKlLbQ0o|7mS~fk1M^ z#bh?C3tXf6_J}Kr9LJ^-zO2`;x7Ul?+uP^KG$+vHo8&N~6>b$8vq2v49hmx{kG!FC z$j~7CpvM4z!DQNQblhSP6v6$rDy3f`9uQdw@Bfvo=b#8ph5}^40nhn)QotAJN(~k% zpqkL&djOziYLQcqSiuuO3V4cDr!EWt%-jBI=VTK`rBFsgtcvYI3zJuHMPnB^03dk2 z>Ct$vYJwiK)aS+i1cMQ;&+nZ)y&op4!)E{9d;52g|7p3~gZu+mvRSM!e*Ze#U0fWq zAnJ@SF-D!u7SGSemm38I4KIF~YL8-_aRtl(O!$WY%y@Pop@^ zTe!{lH&^!=pAFKdGz?2=L0il~3KX|^5)M+k??H6XXI_Mw8|mO-gOjf7M@*Vu_G>Eu z?9Jx=)zfCbIpE&r@?vv;e|+5ScI)Z!cJ=tKVpp4Yi^Xj=zFgwM+UTB63T#IX~YZ*A{1c$Q2`aW zfQc@8sa7+g07J%n*1VvDIBN;jg!xs_s=WThS9fuKT2ghAy+^z_(2=oj%YaGMkknQP zcMVMgcYxXr_F>Lf$2IuA=jZF)I-6A5Zh^iPn65AgI$5I8 zo5hHpFW2v8FL9PVzIzF)f=Y$32_wLsc1EU2#854dJ&CI@0lrLlKiyAX!c;)o|C0(( z3o`Rpq74L&Ziph%PsjpPI$lWG?2if<%|}h9%bMq>G=4C8{T*G$^1WjM>^vw(m69Ms z`N$6d(@|sn>qiDSVrUH_z94_R13)ubv#*-a%DQVXL_ea$9LqAV-*9QA=f&(@do|5M z|K0eo#B~A3xG2`@ar^$`BR#R4E#nORlIeIholJVAVs$>APU3LV#zF1MAK1FG<~Eip z%u?(W6clgp%p<%|#RCPS9?#aZ@0xv)G-FAYWE|Nh#7S)Mb#OLF2;ukgotDks*VneB z*w#6H`YhjBx{?rik)y@P`7@G?5y;n?*bcTvWFRcR+EJJx8H>2KWby&%tb-HCt5Wwc zB1jse5ciP^26(1{mt=VJ4-8mt`V7qF{ybzx`23H5#qD-<&)C2b9tG6d7cUQZ&C#Pq}w_6mc#-9M497lRM0Hds8geX^W73;F_lwII624#CX z#^lN1QFzhDLb$;ZP6D7ryOu-Q)A!(kgqX*XTy^4CQ><73arxv(Ck7nJp#N|Le$n?} z0Kh-Lm}}DyPhP-i1Et$N#WgM;mwEyG-P0@vkW-^(wdVQn4MHk;NfEGRZQt28v_HGb zO=qzo;1q000Ene|p!+xXxHaPbZoP_kah%4BEpo8Cb-X_Qgb) z8)PTk(m=naU%$|pOAbG$_UYl;Wi}=5Pr1LC8x*uT0R_VjmNC6w%%(AjF2{HlI(P6n zQ5y}s55xiX+r(&Ut^odRs=kWrC4kYau2bGoZ%x?ZjV!aVRtPc?GgJ>5GR0&{l23%k z8%9Dus|ImF8ISXW0x)EzNE4iS!>P!nuIea3^uh~2>gNhxgc-2yg9LmPO^iKF;j)4v zdVjv2W_^Ew+~pU~FJ6D~#UK9g;fl)JIiClIh$eb{Ba6%*g$4kB7QouDL3|r*3lnT9 zi!@3pDL{9l{2eZ7zv)*Sv`be3f4R@b&9cT{XzFa0p%x~pn{gFJbw4&?nAIabnv^I0 zP^U$-8i1P)OYP7>ZkqHNi-K#OPE;}h>Rc5aM50nm;?qb7fTHTAB9SH-0d`H%l(?L2 z`X-=0M88cY@__-i&;ehm>$VzAL$w_5{IZ@c`}p(uanoL1?wsBGFaG+6zn(D@45$*| z;(jwez3wz2<_^b)W7aNt16Hv;^<)#7~d%=7ak!j+QsSpF8$(dllKFjtaP&&(6o`-;@r)P7O zCjlc5EBy1-^FRLagxOr5H7d;U^77??%!j}|K_#?o3+gQ|=udS@9C}1Mz)%Q4`w@C4 zD&dcYQQ(b%!?t4{Id@84cqS086?PXfo*0(o6(s>FLCAHwbfj}~2fr(6wb_ai z+@SsdjFBBICt`$%M9R<*$AB21L|N!k@4U}sLdw_2{W6o`6-^|S5Mgito}Ev|P@+*C zf&nWCUdV8`&HMelLa^d$rEgGJfz>RXlP7z#G)^90XlqyFni^jZo?gKq%JEW_WMNW7rV#z@xM7!T(^s z#>G$yZd)}|o7f{zL6}2}>L-ne(!W?-H~=Cd0Lj7y#1nd|kzcfqbGcKF#F}VSE}xiS zBUgz5!nS-D49LbNn}Y#n5SMK>tSvhvWL?zWAq?>x3^*JuJ$lIjijx{rsY3d|09g7E zpMfNJH6m&5CzKM%eI8t%aBYmi4v(fss09$GSR?{G=ngXF2+GKU?{tl-UOgE{m}-s~ zF`_jk4s~ZyZK$E=z&eYoNToC}{uhTpMm#7Ye-}SUz}5#YW1EGYh;v0t3Wv`kIgckPQYH^JZ8%tCTGrBA==Pt$e`FB^Q5v?dr~_HF(CY zc5A~5667s*NG}PeU|PB&JTM^d*T+U)+;Urs3(uk|UtmBUH2KuRNj6*%Zqk{xL`M76 zm9aESNSp%Bkfq7X34x?)41ZlY1bnCoJ^L+wsv z|2Xy_u9k~z$^!>1dEzl*BFTxNKQN$a+p#q9YlgIJg4PIAycuyjEPkz1&t9Ia-u&^U z=4R)i?wVG9`t)|rC@KrOfg@pS6Z5O zsHruiQ%fc66AwT-mBWxY8?{ERoI=Fl=Q{`bESLsxh6FNBm`F$n_~BPWE+NxkpV#&Q zNyVh?R7H!Yg)i7x+ z#I!Vf_u}mLUqmd}UL#?M{m$3#X35lbf(YP5L#c^}+8nGf^4Qi6cF+c^ z=88B2s$Z?QK)sKbi4l#3LA@qQRO=I^InI`G=+e1|Muw smnsk}azgB+68E371o@FM)|2rrAW@=a-*&0ryrjF^_m&u$zL)apZ1QPUp~P+cnrnGd~{4V zq5{@*uel;84x<(St+a7kYEdbNh?S|#m*PYsW{4H3L1f!7R*l4EtC%QMoaD=za#&=3 zn86j5yVyEBbhrZ5J5-`+1-}~6Oenkn6jH*+USMq(ae#lS`?@k;dMaw=`j`gHm<_Dn z1WQnTMDPJL2!)CgGXw*^x|z?zh}zH`KeZEkK#-9qh89kzEo1)Ki92miKfM1V665vh zo3}x|O{c$o^5*Oo10j(+!qod6^{0lFVZn64hvC&_M9r%!0BTrHq|+UY&=C*R<83!G z+)Ee%(^Y1s;VBAL7u$v}roe~=j-j+!vUTz1rCi*-xT+;Od!~t94(XhtLFNj+<-Tc= zfSImaCHDS5 zElTHk>G@vRno?LMm5EfP9?N2D4>BzaK9IH=vXmY6T)al)ilyjy8eeGPA>+gWJ_|v# zA?l(50jbhzw;6pu>pImb#vz>5N35OA>2|&Zb68p8yP0)lMqvtX0z!nNuP{0~iU149 zg(L=G4&pqbBVc({9TKQ|>y5`A6`gt8i%`FR862lKzy0I8dE?c4^!@y0@ps&Xy4!eJ z4+8z0Cub(jiBm-q)8jWwohq6WGSeWlIz7b&dmA>r!_3j!m$$oZGrOZniXvYgt86}l z00SS!kiOY$N}l@^D6N(BG2FOTng|ZK1}RE!pOEKEjvuK7d%Fn`{K>fl``fjvFiUud zR5H%hY*yLaF>3cHX+4Fspz2Oc30iz|8`pjOf#tnA${>#gAQ109=X8&$%;DNZI2Q8 zroWs8bOH|HI>2+!D^imU%NRa!m}b6&Y>}v`BN#=Em@xEk!$|Fc(lF%OgqAH)7ZnRF zLl+}7$_Y)>PsM98$V*mDT1O-8sx)`U>4vjhod=T+DfA)?I|jY08ApT((FuTXsbpoz z6D*@>-j?UT``yQw+p1+6yiPs-?qa$*y*|^I7k034%A|hx`iz~Ox~$s1I9a?Ez`W>x z*R(%D!aLX^2S5t%fAg=TnTy#Z^Fv^Z&lPyFJ6W);`i$ zwpn4W=*zR0>#97(L`|A5Cd0dmxNRuVEirHm9dB6757Y)-24`dw43OGbhqZiMT^KY) z1g3{vu2uyQA66*tCvK-;`;WCT_uzf?e;VqoE@L4;bNPeTB3ear#R4L7nichtf@xjY<)o~N*oDm_9-50 zHZFkiU!?EQEK$n4=WpI%`tbVie>=l{9iKn;({63r_p5Aod5Olc-3;Sc@!iFm`D4Gy zqGGe$w22{ELmRq=a&RYdmtr8RgU46KBIbM49KayDL{e*A(fvH|4261Snb$CdAs-M} z6WIp!M@G5qM+8e$w=Ed(t1*g3yWdRjFFyR?&v&+#jHs`3kZf9Rl1*zx&BgByJ)Tcq zT-I7RbFKz>Ekr+6<7@TPsS3HBn!v>OF02U+7dV|+$SG|Wm#6@I`mwmd*`8YbEm8u{ zZx(+)d-?eqxNnUKTFkni&FY(T^v+=*;QH<5&Be|&hZc8oH(k8gLEEMU^nhDu{GchR z&_i;31ifrC92lS+3|(qCuBz~6gBTc^WK#!rdqGWYnVy@y(^`;mJ2!IY9Mp^ZP!6~JtR17$WU3y4mC+f>*`}1%V{7i( zfg!xr=2I_bMJ$g`aF^<&NWd5PZE$jV8Dd8{s>3%Q3gB)xMD-J1O1{E?*kOa z8x#&OS%V}@I-nDE>N7%!*&_qSsH`o79`F8)TQ9KBJ5MijE|G(6+tu%%ynp}2Z?E4j zkZ`)drLlkbOYhLI2CCfQoH4Fa6ys_$UrdPrG_q<8k`P0#ar5BaDK3*w{=VE)*-$sr zcYnJ0JM{e;x9^|rm))n>;EQz_*O=Wz6XP)hc-J;S2BM}PYac`BvTPN#iX>>X3r~>` z<}&q&0a(_A%)`Nes&WY+v9EzNK!vP;cF#5;4n3_2rO#PdRTy`V#PV9ekw6< zSFT1fth#6VqQIFZI*mjTs67sL?YW7SyP9!gkd(Q96?C7A#OHN&&q}#3l#9S14e3kO8{~>Pa}_zD*tM&%DpZ z0~{a_0qVKvn;bAi;1dIw$_@+wK2vw1rWjK1oWB3-liIaqI^){>+4kMvPRcM|e7ruJ zEvv=bH-CQdbV0=h6f6ql%4F#X&0ljksQ zE`xmc)!E6Sh}RddHiq!x)cWk%v)}&l8mSLa7>AJ96odBFVWtWWh;T(rR8qS-tg9O1 zKCNRSr0lc4s-`#$OJFVhHg9^dDE7kUwlV{y3F*CS8DMBncdt@T%=NETLEcPC>0;z_-H) zoF;yVzoBaVHBAQutaHg7h7=4Ck zJ#OKtq%P-UJ8vQ$1MRWv2qzR8wsxR|O$L35gg=@)~>oY~87#PBTxZF!q5_=*v0(_yX zt0_(zglx9*1$lHV$Uy`jI-gmd$?YQr#*(f0;dQ}*iAX3N3M76O4P{2CDDw-_HQMG? zW!pinhE=o4+HEYUP-6h<68Q6Y}<5PmERcC9<&ZqwK{?N^2CcWULppNRy{D_ zCqr3gt_ChA1yem$Ki}yV%N-k_{=Tjk8qi6Xg)^$%5{k&Xebc|Gt-AAv&E@;wzOM+V zQF*H(76g3>HNb)>Q+5hRcc^E;3klCGI@bn;mT#grU$*qlTkT~<4?LGM8&0IT*Ne-bkVBae8nCY3)tnd-~JuYS)a)Yi<6TOfYHo$@| z01gE8C<`G_|BV4rnvS_<(1;aR9l1WYm}BQ2Z^m%HIxbZJ_ZC|)(t?aSP*~?$ms?Ft z*sah1{M%;)NotY_J*gj%Yf=L)&Qqi_m)qFIK@1g(MB6dF;T4x`0OJ`LV7PRE7;hv; zpv9{0D|m0g!SfSw#C$7_Tpy?M@|-(*VoTK-^8$u2Vm3!WG;0&AY{;MA~u2YPT|GUho?9AD(MVL zkgz#TOo!2RNi5FDx#5)jGw`x2Nz{c#lu&P|3U>m2ewHYcbk;l;1LUJdbc@JefPc=B zOpzbM-v%;yqzW)VcHst4*8o{Ti1LpPZBt(>({yMIpt?ht%c|QMnl*4oA5s|Sd84wx z@L9E?8HuK=s)2`HVw)R@Qltd;Z1?HA_rJ$o{C}a5u^H1rdjdt6ShAbI6}M^g6C#FN zhpJ|lnfL}lTMGs_-l2$C4`l%ePCW8;857k}_;4o*Y%XPlOd61ROb{TTlB?KPbHcWS z8#pfvVcVhk6v2T+k;z$BJd-BRfg3jdt$@OGgBU=_p#05;uEC$BW!XXpxbtX$G=oy7 z%yqkfUC!E6^E^GVt4bw^9-cq%bQ(DOH%kZVEECe#Jbiw#?Xyp~TL*Uw03HsgStRWW zT>_X-FtjWO0w8e|p}Xa|q=o=|sw|V_5t(8P6u^c`0t=TJfj}a`CF6h7z%#D!FYqg} zEqaaOdYCuuGMME0U&jMlieP{u8|otiUn>Wa{zzGbX4eSnXWYqdBah*b6u0^Ed;Pq(G;HBL3mea?eDxIEH9a5AWNx;?m zPk(uy*iK$j%ZSBf&!NFL20nS@x!97}WIa1x_r9vgVN1GPk$F=s=ejYW#U8jo;5j%! z8bI`GQww6VI9{azSb@DYohbArih?1AH9$xRkqR+C=zlQ4ApA=gQ+RMTEJ}}n2iOm? zkOt|%$JWVTg8?Cp#>vOp)Hvfh&qLcT0R#=T!%96Vz39ZC?sx}qM49<)HjmG2UY|NR zl*CJe`P>x=*{kOZN}r2SM-UGn6cQ8iPPEgWD$aDfIzTx}M+_i>L2}a61$_&eNM8~4 zcu6w_GA@gO!SXtzKo&$p^2F14(TSME8#{%9BJ@uaL6YZ7hB{#+0UCAylw05@F@TwZ z0VXvTJa&wH7kTL@0D(c2agEB|J%4Vn)X9MzC4iWm)nJ{4231BEP=Iakhl~2WvG`&u zoD-WS>{G=uv0yrtna+7Rk4ndsEe|XbFtB-m{8=?k5Y;IGz#TalB`8C#Pc(zNM9ap7 z@xsys7E1rQ-~`hT&64=pL+LNXM5abqT3Uv`Q2S-hJS07Z%Y$bJYhtqr7~&clj1wqF zio~E3;}Q!G43NJ4$bb}KNUxb-KwGM2j(new;1-EacW67-jQS=F)_Q$rl?ekM@B|5jLT~n4|LmRqRoZn+prl?jBAqjsqv?bihH8pM!9fhKpBkO_rQoRv?>OtO%j4co{lkstx`j`K^@K#alLAq5kz&hgfTY zL%@zFxr3yGF#Da0!<61Ie|rY=qqMDyPn@Z)(`Y&hJxBJ3T*%>A0>mSz-i z=DJzH>RY|f7U9R=*N_3zazGZ3>Xc_E?|j3WUY@K}Ab}jV&9uw)%i}`Vsa7WM;N_bV z^TCi@CmS#q7Qc=tk^{Yp0jUtn6$;M?g+k;G@xfvsR0sJC*t1SY0P?c0QXM!C~+Sd!h-fQIW)FtkWM7P2Gelx&=v;-7SM3%7y$5d;jl?uSOqKv>Sat%C^srX7CT&=jdvRVWl*MFYTXgu&60h;9(y5>*MFbm+t?_Rt> zdEw2}qjtW<)6W9`-#IcPY*d2YQEf-%B7V0Gf$(WE-ra0k+iKTFvP93(>A>+6s$bV| zz&%-@S(04L7D$1k`$<&ypu2A~or-%H`?k|5w=A3-kVMCO=#wBdm{KIt1e%uiTP$6n zP>{>Q54L5APQbs;Kv9-rKw>#=OmIL?HP&1_!-cRfo~{Gc=+57I-E6h_)9>H9su<;> zVORCpIZD6Z{|?uNzPf(%43lB5x2}l_$n!tloL^sGpXXE`LM=f+WKC6pLU!Zc!`q~= zItPHa&6rdzqpHQml96EH(h_a~!QYGoh7|rD<&_&kJN?L0oPLc3;wwO|Sn&hSL83zC z!R^xT5}4kw!$X#bZCwMBqVRw?VZk9Jr+@_Md;iV=m;n-6t*GOIMqydSQ(Om(E5d=4 zf4B&Y;_P{h1WkYY?9E1HVw#h+c>eyy^N;5!dp^0_)YHYu#nacXKQ4K(`~(wmjteF4 z7=@6e6!AemP*QQ8Xhd9tM8RTaId~8(QAU_?&`*^?oGawR6Ay&=!|GD|$8-gllpAJ! zsC!Jg>o&`*&a&kut_HYzSRl|}j(!fC8e}<*)LsJ5Sv6skH6F;O*EN|$f>X!szt0r> z$}fS5R1g6NeU?;iv;6(_>AUN{yngmOjKu%r?<&JNe*LOvemHyi>ZWE)OHW?^?&-_B zSFa)b&tBggBP_R_aDDy;*M<)1)u#|Vj!q^I{cjSHqWLTUTH`RuURLwz=`5mF1_`b% zdX|BS!h3}pfg;mHP=HTZ_%5pD35W@;z*Lv(S)GzXb$PZ#sVQnskrdukp@*L!cnmlU z3{Q=`4opN(cbGI|69q}*Q=lvdvO>Djqfqcm|Gs`%bkUlkonl&7#?LPkQ*~Q}B)6bVLw~Jehklb}bSIN=s^`*|kN>gYJitO6p z=OF^f8m7>_6GpN3s~wVT4(Li`ywd3jTu!*ywnb#8#e)|hBtUUw@rZL*jn>QJ0r%{d z1TTkaRQHIDmYY??bxP^$ez-y$?dvbZwxAEQ0c`Wh8x%n^#D*5zz zW`)|J5<=)FQO`guunXieEo3H~_ITsVwl7cSQKXjo#FNZuh#F7jjt{aO{=fhkEVZS_ z{s#c*WJ(AFs?z>jri~y(FWz~b`)mXR&K!>o;>Ri|c!?FyU1Ac*lRD}`b z^p5^r1rR1s6m$kO4>=$SvD&7Y6`CxTvAp~9lMmA*OR1IwW1dI{FYY(v<^(qbUDX2w zJQn5avg5PvMJ9a@}e-70ASvd@AQtv)A)|wz5cZ9Xe9Rm%u*5?)0{5mN9Z&_s5(4 z?C#<$?wE3Tr<4>|J=ttKbG+yn9%-z0Y?utE5JTVT*e1H%IK^rlJLYkQ)L~&yaPV2W z6qwYk^`yroGaBFGWU|Ruo-@U6``A>wo<%kg<;|ycrbC%%I)|I+kb|$T zDnv?#WG5;)6neJ`CIb7E7-=$!1H)<=Fv%;s&Vi3e(5^QcI)|I&3ebSm*`tJ0GR7ep zC>)bOBGeY-oqhCgixiT@#R-sUZzumfT>9Hdl9mfKuvj{rKf zza6T%4A+mw!Lc7{S7q9?!eXkv9GDr5Zk~ZttEDSxZV~84pqoiuyArch!?P&C1Q;wz zJouU&g4t4)skwY4EWi+{E&{HDW`MvzS{)9o3ursy;>fl+O~_#i!Yh^V(0|cK<7OyK z5RaV9!B2=X>BmL<3JiQwU;{`$|IgKPKTXnTom(7m*X&sHn7GbWH3u6LX1_U<`< zp!sm@|4Bb~P-el@HwagBGGk<__SMGYx(Epts!#^9T=tRU;5iJgS2}oq zh@+`RH7!6SaX?Au0uO<|pP|hOX1#%1!|Kih=)`?;nNp-YDRLs6{=bX54H6{Tgvx*T zC%{7}4p5|{;QyTfoPo4RnyF!`W*Xj_0OU2mq?)donwr`$)!Y7jb}-BjOu#{xu?UvX zebq>}TxR(;D_qsjs$D1>!D{>RZo3&A(HO7a%_Lg3KNK#vAn3ys)a4NGww5It56m16 zxJLAV4u>)>*H6Q&TBY_x>ayHpsCx|@h<}=>M>r^Akr(`*T$nUG(8&NQ;?aQt6N(H4 z7UY4)lm8tp{bfHWx*dzAsvoX%QXc)KQ_$HI4#vYf3zwp+9>4Vg@$%{bE!6EK>)_0t!%CWC*_#IkHsnGvrR4PlNZ z0A*iJcN-8^tkSuqFfZS%XRRZqM`)5Yy}5&Ppwc7J{l@oILNITVN*)>eFbgIU>6=3- z2rG_f{^2;lcN)SmH^C^6TVh0h=)*9v114ytg-yl(DtSDF_d_0<5UE(@zyPcV5pZ+@ zMxb3t0N@4v&-z+Y6zL~Qa^=x|CeckOq*xde9LVGC*|Q6S$*#}TAa!x-OP{fF`)(If zP7K)tnL6erN+)A&|; zb#eZ77o+&7pRG?Z2=3LZr>|a}U!Hu5vmx=L)$z-VvniC;L**}mfiAH<#MAbE)FwW_ z!LU$p094C|4gmFH+1y`Ek2iIcBgcd=bT$<$-mKvEQcqq|Hp^wm4cQKS2C)xlD1c24 zQ_KIQ4#;Jq1;W88Vn{%!A~GWXXMH_DAJ-|B&lU5#P@vtW>FX{t1Ov1ZHE2@NyIMJV zTDQLMx#7S8&&qlH^5XmzI=)~1>2H@*@OFbLl5;FPy1Y2sF6ZR|+cB6+=b!21DuRbp z$%wbe!rGb~s;5a8;wv3(UK9=JKE|Tz;TaSHIr{(x=s~q=VTyI`2bPMkzvR-9>M_K5 z6VHLsKWzWe0caA|!q-$f3-&*VyVBm~i6G2<3lQQ9pON?j{D5>#e5|is+p!bJ@sXrX zlaLfu1%xOnNQgtgw*tSHXT~-ul>6NGYTWj1W_EUtXO30WM*YMuGT^y4=V|__##>ND zd22XIs1O@ryEgYII&W*5O{n+fNbVL|=)>h_`!awSVi4@IEO)!zc7dx+Q5yH@r>Ks5 z=Mw*3o=;F8XOD;A4$+NE(cvgtv@XJ4KQ~S2M!87{{^RZMbsOHj9~BA0Kk0hT*jLn?w6jT6B_&e-q)Cc z0n(?FS(4%{GC@oj56GnPPHEXtN>~+MK9(t+{V>ZY8#Ii7VeO6ABJ>m*I;)zX4{9<+ zpL1LQY~_}vysc(+A}uIN9XT{M4m4^NHD+%Cj1g%bvVN(<0hN&C1OW{D#r2rfbNyKW z5s*p!wqXW^r$tT}uR&de%{w1___2mE$lkf|EIs-1xYE9_+QZ%L+vuKvxLJ;xD%!b>y>ha)|4uSJ0NkJBr(-&`JH`+gWS zaXmw?FG&TUu3TC4jZLCqDjTL-Z)aIBSO9{~@iR#Pj7|W|5nlf4g>$dxX<8mFa3F0j zXNH+oT6slkOX1L|-A%s#>Rkbea<^|^7Q)RZpWU7>3Qq_cASIzJ+-SDCxP6XEu0FZFSe8Yk27Qjjl!LzR zHZ+rlddOT0QY?lZGw$nYX?9A26>cX3_tqHS>*=DV=IWM$MOQ}f-IGSc9i=>R+QojN zthDqx1xTANSaBFhV(I1|TJdZ5IrT&zb%+p9P?|fxlu1 zBJ_Mj2|+rPu;_is)+*JrPLJ;-C zZo1jx;&^v=v1kky140HmO^2)@-2;ixSoy>w9@F9&o#2GnY#j8u2u}>*xL27fnJ0-3 zEy@IQ()bkgAxR{a6imNiP)&s8(q{u$31X%;4Set$0suo0=%~J=Mvx%A*waYHO=YL0 zK(tHAlzft1uikyPgwySKU=zeR~(UR zQezoxlw$vYK4iCT%&|>#pg~%+kUNOIlSIJZlRoJJ+ zvqE{-B@?mqeSC!G)S#9(bM_b0Q2fAEGLQ?P27R0Q5e%ziKDoMu zFEpKtFxkI7ne6wsTjOl#o9lW6qiNiWIG%M5Lq1)_t9rW3UGBL$(5(F>rFrhDM1Xq| zFfajMfmA-}c_XfI`oe%nrp{EPkP#lRVg%tN6H>7N{La0*k5l{S%{64wiu9*j1BB+W zXmb%OFC>6+_D-Z%w;z9vmTt8{M-u?~h?32%AmRt|_5PbrFcjwsZE}-XgD>@6vPhQi z+#wm#yM;t_e4N}YowIvOZ7)`UwhlFezQF#Mv<{PHejolgv&pKPu8Q&|4FsO58W55d z2CM)KDv0p_OfwvkixD5Jl(-Hg=y%qOu;}Th)S(UN>ucYn+VsFJg{&MXE!gbMO{CTr z?|!}-_0Vl+;fGgLf-3i)+#V;}WIj)3)7v|jC_^KM@)gp2r9D{3e0qMUP%pJM`X@%S zoNjZ+h48T^->r5u`-ARpo*ia#Pz4W{+3srX8XiSNR2%Myw``y%{M9rEilZRHg5UZD zC-5OQ7O2&fDpDk3U~+;@I0G9a%bdUgjk-9`{H*@+^G|lh__X@+b$q#;UVVl_Mwyg_ zg?AiwQXW(;?Yom5&@zeci3&;1<@KRX>T9%2R7uuWXd+nKq|~V?3`;B}>%BBpB8;kK z%`AAx17kib=SqyFX8O7M1bvc%wWLTp6X@tM*3*yuJ_DYUI*_-LE++}*pOsYL=*~qs zcdEdb7L;C^>|-lv%Xhx`WD@)+_9mAS8*X*^_1$cZ06T6dpOJAflf&wd;J+wd z9u7!om4|h;jRSOd6q^|$od{fKRS0{>75_y4IG)vr1nS(DNcJ@1WEJ~mqnI%b!8jdI zH7KEefK4Rw?VW10MjQs`<`@FN$`VQ)ySK6S~RwRC&bERcU`1aItq(S#-LAy zHdg5V+`1)YiTq|Nn@uLYdA%(gk9V}IdH1MeHn4r*FS+!`y#nx2D?IKXkqDZP0YOQu zef4)W0HcF%1X4~*m$Kyg`j(62LnB=oX=N&pN=~w9F;Pymj+}#nxNzE5nUwB2LuQOPc)&E!S)gxUFWF>)p-1 z^g7D%i+&Tx!QegJI15O?OA8HaWw2W$(nbr)rU|YFGKfzMWDRP6B%8YMg=~-jiab~8 zyg?c)k~HX=hQ*ol)bO}J&_P@TO$~;#y=;WRE)_P z|5=M%)TyZy^nG(M)a0m5fxI?$bFo0Aj)W;f-cspHH5ct6LFogbQbRQY@$&oUnXB@$u4MGs; zwrKK5Q2{z#Ln{cnM!=^sjS{Fi#k&Fuz?4ymR(o&`FiaL>PJkd$^R1{2M9Xq zeQx%Lgis5kZ-Qi(7;z4w_z^$jGt>(KA}<=?!xI`myq@S97pb5H7k}S{Drpa<;@KZep(Lx|dFyRCY!BOb2y|n-I0pLRr`bth~ zy8hRd*==L89uPC>7Erj2J2DoZ1|-X*-c%ZI5@dRq_+k4&%6tX5@b*)H#23kEdy}4> zK5s8T{&YXfYD|&_2j~4x^Gdd+joHX6!ors|@V=h{M35ji^g_oNo&^c`K!x=lTwr%l zfYM}dDaVEZb#lfopeoqQ@yNCP-f+kPQURUlEfx=s5);Ql%RTgA;S21nlB zEUMMzXYdd%&qM0JBzMm*Z}!_5%5tsJa?KlXEFxkQAF_nXzt+tRl7*B@>kNnC z;i6O!(Jv@F;=d*Afhm#MDS!rH{GUAlYzbZiMwK3U5|o|SpSc!=@MFIecB9N7G12*R z8;=K6pdz{{n$K)fWG`%0h0DobFpBg;74W8 z|2P@$3fh&ZA@T$}zt@mpc|Aof)AVjy&eNt^99o0p7VhL^lf5aENCwGrwM9B1siDfn zhTU0eoXX~^LBuCcEa*RQi%Nq25Ros_-+x9lqN5+~0nz^q>Z1R`dYL9?UX&JfO^3mL zMK`y>qS}dN=eCIIY$QZ-d3BL7-TarSF(&!TFKHwI}Pxsp_ zuNDB3quIrz%*ENT3JcP!n9wf~_W5w5ATXRgAUdI}0RAcm5NiaN5oI%kpI%;552rw6RM=)9 ztsv96fNQq+dPR9$pkr|^v)yu+$Pg9Kamb$Rut1_E6b+jjb=2R_0QJ-ElvDyP;?IQx z7`=215Ac_yQZt=rS+1iP=>houu20sDd(Mt01lc}8*+N)a|P^8Cn)Z)-|@>oww{St4zf)U`Gr7|7F(|MV$4yT84VLY+6B?<u-&xPS1^}nJp>j#$z;Q-BA;|0_euZ_kMH2`} zLZI(<1~rZYz-+7C>Tq3n<9oCYj2Qet?)@U?e-y#Mvuix$15c+04}Ro<;X&*h#6qGg z*Kju4;LB=44mC|_5dEzGP=dtt%ZR%5{=5Nr7!?4-s`n<#K&X#9%2RS1$Xel0J4tJL z9t8Bbis~heFh5)az4?)P4*mK$Kqu^!b0MJ5n5#%3_5)4*r%zlX^6~nlBpsyz!?kUb zYE?xvPn3!{&LH(RnLj>APU2f*9uq+h0O$t@_IKA4!uH+W)a1LJY<<3^1RtqFqnXo; z-4>pag!;Oe^2ob^gi}!jrGSR4Z}*f#E9`WTC}$)!6^C<6$w_3Ge7JBAeLr@7>VP`) za0mrn84&+||3&MIp8k{$%UdtO0Q`LpxWF;%37-Ndj4lo!+i~eSca;Ep^NUUBN?WSy zz5J1fbOUZc&VY-;;;(j+i_-&(Khbp6w>k+V42J)0{5J*IsSoeIMW-?F$BIb zBFcSEhVg;%6URBbxBq8E|3AV3=$~@JZw+|JWXjd>E@aq9Q{b9KtXv6HH`~|ui3c5A zQAwbmg4OJlf3NOD6DRhFN`mpfsH~C3U>sQK`=QH~Qi%9|t{$BPKpz!s+JQyNVc353 zgA@b(67(DY82tdssk{MO3#9b1>}0^O)$+!rX<1wWE2400WHrsARJNQ<6jR8Gu1f=h z1&S(_RGuVrX>&EnJf2m#3pq%4IMyZ(h^z70z;{e)u+wS833Gx+u}*v;iO^L5b?l6V z)Zm%xpY`PDs7X;jKEK?W$1+S zss^aWc8@s$NkG?cT5jg#>frEHNhA!{7T~&S0`_(IfH3_k5`rF)S`L~1xBglB87TH$ z-wmc2bHG$~e36lavPm~=wEv)zwv;qJT}R4J%L8BTP)qUxr1n5ih(o@qHgOw~QgwA* zx9dj7L7UQLdqSlJ5b1VZ5XrP*yiTht`7$cWN0 zv4P_LOZ4+8po>Xn+pdn^mELYDJ0W0CmJN5b+ip^?n|#Jccc=<7L_kfPWaum(@K+qk zwdBSp5l3#CWKs}cO%aAtS^TZEdj7H56)FcVG9I4y!9$RQV${(u;jR8V`#;D4>#_LY z8WsgJh!giQh&BudMs09o1!1`uYl##tRWS{&4_gMo7qg^!WCJ*BhfMfLYXN>z6}^t#TMIm1IRb<0w@E4O$ z+aD{_=prE}qwpUu9@@Wu(jORsG&kHK{5Mz#R57iA%29;MQX#DFZ4TAmZV=Blk=aGS zY|-H`MG>cOehP@u)d}4O_if`gyu;L{sOhvQHW(O*!;@sf?C~Wp6YTzx{reZ!qtB12 zL&)B2A*o&Ix7w|Ae@rO@Y6{NC4u{|LLzP$8yG_u|LpjAZ1E21{8rB%DahzzHg7nko zKPI2~NXmb$oFSp8HN=oqoPWES}Bv%HTi z3qVOz?s(7$xO1Nc4?{iS=`7x?=gJpkV0%t>X+dKU50ZYhP93wC2dhy;KmKoI!2a#^ z)T<+&>^Ivw-OV7yIv^9pj<_vgi3O&|44x(1raG zpw1+&k!o)w4Jkz&C_6-@8=2-fqx%7bA-!kB*CWwv z&;IKN#W{2t@bJGhOF4}~k5A+ytn8&oN~F$8U1yj7ht9Mg@x+ttSD zSkRG6t^LU+ZtUI_V($>^K}X2_x`N&d#3{-fZTD7{8Ng*PNd)r8-LsL-h0%*YqW}MN zJ^l*Z9V~BGqIsKS>2PWIz047Wsg=}P(Lc7EXb3o-#`gaY>(M8kF&)a8 zCp$gvRUg$$rQ1d9_J?`k0lP7j=p;6Pz(^vc6)VpFI^-Pc6v1)=L@Yw$>*ooyE_s~$ zLi|X+Gf%D2;QK-Q{XgsRr=BK7V2K!}&gdcmzK$xQe1?xd2GO$|!D#^16SRdqZAC<+%(gu|{;HSAQf)Ld&HZ{MM+` z26QKLh@S8U$uZtEC;u$ylHBg8jP{s8%V_R2Hza(=hd5ncl~L&IXt_088fr<08M6{1)rUIglR;jd z<5$Xsg-{WXy7^*XgqZjUxHRi^T7(CCNdA9?_*P`6OXSsdfT~v8ltB{h zB*e=`CW2aqqH_uxNhroaB~lx{E_?`!L}Iz6S~z#?77YG(uApyL$2L$^nSZ#HJNJ4> z(^s_K!&y(Tjq*c${Bfd?pdeA}7+>ghK67v&@go)M0@YaYc6qUbEJk3PpsBBg=o(W8 zM}hL|`Sk+T*CRCh{XiELI5Pm@lOTr#t-Gw5G1^F|I7)@MyWaj8onm9w0!q1j^(@TkZFe9Lf|ez((R^d=UY0YKy; z()N;S8q|A({24A#g$aH{5u%SelO&YTj?hy#ERGO(Ij3jWgEI2~wRRl-lt(J1pQ$yGyFL2{Sws6^NxuCYOr6 zJ8#jn{|Ss{Q)0v`CfbOXv>9_zmg#GTc@VCiIm23TZg-UA)o$D?#hv9fHC0Y$<8}}I z8|aP)Qy2nhfD`ut;|XjFMoxcup3yDe5pnLT20DW@?fYY2=gWiX(0NpHSjA4a-a<7u z;i>G|8TJSF%3fn^+h!$)Rs63|8@tyq_Zm%LZriPjcmE&Vo?%(0qlq;Vf!58GW}>Kr zyJgv Date: Wed, 10 Jul 2024 16:09:32 -0700 Subject: [PATCH 07/91] auto format and clean up --- SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs | 3 ++- SolastaUnfinishedBusiness/Models/ToolsContext.cs | 4 ++-- SolastaUnfinishedBusiness/Subclasses/_CommonBuilders.cs | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs b/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs index eef9946934..b34895668c 100644 --- a/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs +++ b/SolastaUnfinishedBusiness/Behaviors/TrackItemsCarefully.cs @@ -104,7 +104,8 @@ private static void ProcessSummonedItems(RulesetEffect activeEffect, activeEffect.TrackedSummonedItemGuids.Clear(); } - private static void ProcessItemProperties(RulesetEffect activeEffect, [CanBeNull] IEnumerable allEntities) + private static void ProcessItemProperties( + RulesetEffect activeEffect, [CanBeNull] IEnumerable allEntities) { if (allEntities == null || activeEffect.TrackedItemPropertyGuids.Count == 0) { diff --git a/SolastaUnfinishedBusiness/Models/ToolsContext.cs b/SolastaUnfinishedBusiness/Models/ToolsContext.cs index f828e6923c..163cd98e30 100644 --- a/SolastaUnfinishedBusiness/Models/ToolsContext.cs +++ b/SolastaUnfinishedBusiness/Models/ToolsContext.cs @@ -272,7 +272,7 @@ private static void TransferConditionsOfCategory(RulesetActor oldHero, RulesetAc { return; } - + newHero.AddConditionCategoryAsNeeded(category); newHero.conditionsByCategory[category].AddRange(conditions); newHero.allConditions.AddRange(conditions); @@ -282,7 +282,7 @@ private static void CleanupOldHeroConditions(RulesetCharacterHero oldHero, Rules { //Unregister all conditions that are not present in new hero oldHero.allConditions - .Where(c=>!newHero.AllConditions.Contains(c)) + .Where(c => !newHero.AllConditions.Contains(c)) .Do(c => c.Unregister()); oldHero.allConditions.Clear(); oldHero.conditionsByCategory.Clear(); diff --git a/SolastaUnfinishedBusiness/Subclasses/_CommonBuilders.cs b/SolastaUnfinishedBusiness/Subclasses/_CommonBuilders.cs index 7d5fc7573b..a312120c4a 100644 --- a/SolastaUnfinishedBusiness/Subclasses/_CommonBuilders.cs +++ b/SolastaUnfinishedBusiness/Subclasses/_CommonBuilders.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Collections.Generic; +using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Behaviors; @@ -133,7 +134,7 @@ internal static class CommonBuilders .AddCustomSubFeatures(new AttackReplaceWithCantrip()) .AddToDB(); - internal static readonly DieTypeDefinition DieTypeD3 = + [UsedImplicitly] internal static readonly DieTypeDefinition DieTypeD3 = DieTypeDefinitionBuilder .Create(DatabaseHelper.GetDefinition("DieTypeD6"), "DieTypeD3") .SetOrUpdateGuiPresentation("Rules/&DieD3Title", Gui.NoLocalization) From c7dd38beefb450fa959d062988154b43da2d08f5 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Wed, 10 Jul 2024 16:09:46 -0700 Subject: [PATCH 08/91] fix martial battle master initial pool from 3 to 4 --- SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs b/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs index e4638a6291..83fa8e7883 100644 --- a/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs +++ b/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs @@ -33,7 +33,7 @@ public MartialTactician() .Create(Name) .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.MartialTactician, 256)) - .AddFeaturesAtLevel(3, BuildSharpMind(), BuildGambitPoolIncrease(3, Name), + .AddFeaturesAtLevel(3, BuildSharpMind(), BuildGambitPoolIncrease(4, Name), GambitsBuilders.Learn3Gambit, GambitsBuilders.GambitPool) .AddFeaturesAtLevel(7, BuildHonedCraft(), BuildGambitPoolIncrease(), From b98acd2c55897d387b204d904501c740c23f48db Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 13:59:30 -0700 Subject: [PATCH 09/91] refactor College of Swords custom behavior to improve MP compatibility under complex scenarios --- .../UnfinishedBusinessBlueprints/Assets.txt | 4 +- ...ureSetCollegeOfAudacityMasterfulWhirl.json | 3 +- .../PowerCollegeOfAudacityAudaciousWhirl.json | 2 +- .../PowerCollegeOfAudacityDefensiveWhirl.json | 2 +- .../PowerCollegeOfAudacityMobileWhirl.json | 2 +- .../PowerCollegeOfAudacitySlashingWhirl.json | 2 +- ...CollegeOfAudacitySlashingWhirlDamage.json} | 54 ++- ...lPowerCollegeOfAudacityDefensiveWhirl.json | 2 +- ...pellPowerCollegeOfAudacityMobileWhirl.json | 2 +- ...llPowerCollegeOfAudacitySlashingWhirl.json | 2 +- .../Api/GameExtensions/EnumExtensions.cs | 3 +- .../RulesetImplementationManagerPatcher.cs | 17 +- .../Subclasses/CollegeOfAudacity.cs | 434 ++++++++++-------- 13 files changed, 302 insertions(+), 227 deletions(-) rename Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/{PowerCollegeOfAudacityMasterfulWhirl.json => PowerCollegeOfAudacitySlashingWhirlDamage.json} (87%) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 0faeaf9f93..0339547a50 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -3052,9 +3052,9 @@ PowerClericDivineInterventionImprovementWizard FeatureDefinitionPower FeatureDef PowerClericTurnUndead17 FeatureDefinitionPower FeatureDefinition 99897e79-a7cf-59f2-9ebb-0e835fa832f9 PowerCollegeOfAudacityAudaciousWhirl FeatureDefinitionPower FeatureDefinition 6cbd417e-e3ae-591b-9a60-218423f41191 PowerCollegeOfAudacityDefensiveWhirl FeatureDefinitionPower FeatureDefinition f65588e2-f61c-5696-a8cc-37ae9b68d963 -PowerCollegeOfAudacityMasterfulWhirl FeatureDefinitionPower FeatureDefinition 28130938-f181-5e81-a4b1-6dada78c7f2d PowerCollegeOfAudacityMobileWhirl FeatureDefinitionPower FeatureDefinition d25f08e6-bf49-5263-a074-21f469070669 PowerCollegeOfAudacitySlashingWhirl FeatureDefinitionPower FeatureDefinition 406a2915-7e83-5195-b545-989256071521 +PowerCollegeOfAudacitySlashingWhirlDamage FeatureDefinitionPower FeatureDefinition 75e28f91-6725-5ff1-b803-908a90664530 PowerCollegeOfEleganceAmazingDisplay FeatureDefinitionPower FeatureDefinition 1f5ddcc3-fc67-5649-b3f1-45c76bae6fbc PowerCollegeOfEleganceAmazingDisplayEnemy FeatureDefinitionPower FeatureDefinition 5dc2d4d2-d794-5cb9-a3e9-c4b1dd61973c PowerCollegeOfEleganceDash FeatureDefinitionPower FeatureDefinition 68a9b74d-5071-57f8-a3d4-c777f46e89c4 @@ -5872,9 +5872,9 @@ PowerClericDivineInterventionImprovementWizard FeatureDefinitionPower FeatureDef PowerClericTurnUndead17 FeatureDefinitionPower FeatureDefinitionPower 99897e79-a7cf-59f2-9ebb-0e835fa832f9 PowerCollegeOfAudacityAudaciousWhirl FeatureDefinitionPower FeatureDefinitionPower 6cbd417e-e3ae-591b-9a60-218423f41191 PowerCollegeOfAudacityDefensiveWhirl FeatureDefinitionPower FeatureDefinitionPower f65588e2-f61c-5696-a8cc-37ae9b68d963 -PowerCollegeOfAudacityMasterfulWhirl FeatureDefinitionPower FeatureDefinitionPower 28130938-f181-5e81-a4b1-6dada78c7f2d PowerCollegeOfAudacityMobileWhirl FeatureDefinitionPower FeatureDefinitionPower d25f08e6-bf49-5263-a074-21f469070669 PowerCollegeOfAudacitySlashingWhirl FeatureDefinitionPower FeatureDefinitionPower 406a2915-7e83-5195-b545-989256071521 +PowerCollegeOfAudacitySlashingWhirlDamage FeatureDefinitionPower FeatureDefinitionPower 75e28f91-6725-5ff1-b803-908a90664530 PowerCollegeOfEleganceAmazingDisplay FeatureDefinitionPower FeatureDefinitionPower 1f5ddcc3-fc67-5649-b3f1-45c76bae6fbc PowerCollegeOfEleganceAmazingDisplayEnemy FeatureDefinitionPower FeatureDefinitionPower 5dc2d4d2-d794-5cb9-a3e9-c4b1dd61973c PowerCollegeOfEleganceDash FeatureDefinitionPower FeatureDefinitionPower 68a9b74d-5071-57f8-a3d4-c777f46e89c4 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetCollegeOfAudacityMasterfulWhirl.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetCollegeOfAudacityMasterfulWhirl.json index 1cf8a28f79..c56e5bcfcd 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetCollegeOfAudacityMasterfulWhirl.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetCollegeOfAudacityMasterfulWhirl.json @@ -1,8 +1,7 @@ { "$type": "FeatureDefinitionFeatureSet, Assembly-CSharp", "featureSet": [ - "Definition:ActionAffinityMasterfulWhirlToggle:1aa8d4ea-4e03-589b-91ef-4c6b8adaa679", - "Definition:PowerCollegeOfAudacityMasterfulWhirl:28130938-f181-5e81-a4b1-6dada78c7f2d" + "Definition:ActionAffinityMasterfulWhirlToggle:1aa8d4ea-4e03-589b-91ef-4c6b8adaa679" ], "mode": "Union", "ancestryDamageTypeMap": [], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityAudaciousWhirl.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityAudaciousWhirl.json index f7d1f93b2e..fe1aaeae70 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityAudaciousWhirl.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityAudaciousWhirl.json @@ -264,7 +264,7 @@ "delegatedToAction": false, "surrogateToSpell": null, "triggeredBySpecialMove": false, - "activationTime": "OnAttackHitMelee", + "activationTime": "NoCost", "autoActivationRequiredTargetSenseType": "None", "autoActivationRequiredTargetCreatureTag": "", "autoActivationPowerTag": "", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityDefensiveWhirl.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityDefensiveWhirl.json index a6250f31fd..7c13be817a 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityDefensiveWhirl.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityDefensiveWhirl.json @@ -299,7 +299,7 @@ "includeBaseDescription": false, "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, + "hidden": true, "title": "Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle", "description": "Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription", "spriteReference": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityMobileWhirl.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityMobileWhirl.json index 2124e8f59c..bf616a9c2d 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityMobileWhirl.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityMobileWhirl.json @@ -299,7 +299,7 @@ "includeBaseDescription": false, "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, + "hidden": true, "title": "Feature/&PowerCollegeOfAudacityMobileWhirlTitle", "description": "Feature/&PowerCollegeOfAudacityMobileWhirlDescription", "spriteReference": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacitySlashingWhirl.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacitySlashingWhirl.json index 4dd7cb6b16..bebb74ec10 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacitySlashingWhirl.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacitySlashingWhirl.json @@ -299,7 +299,7 @@ "includeBaseDescription": false, "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, + "hidden": true, "title": "Feature/&PowerCollegeOfAudacitySlashingWhirlTitle", "description": "Feature/&PowerCollegeOfAudacitySlashingWhirlDescription", "spriteReference": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityMasterfulWhirl.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacitySlashingWhirlDamage.json similarity index 87% rename from Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityMasterfulWhirl.json rename to Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacitySlashingWhirlDamage.json index 77ce509b68..66c32accab 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacityMasterfulWhirl.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerCollegeOfAudacitySlashingWhirlDamage.json @@ -31,9 +31,9 @@ "targetConditionName": "", "targetConditionAsset": null, "targetSide": "Enemy", - "durationType": "Round", - "durationParameter": 0, - "endOfEffect": "StartOfTurn", + "durationType": "Instantaneous", + "durationParameter": 1, + "endOfEffect": "EndOfTurn", "hasSavingThrow": false, "disableSavingThrowOnAllies": false, "savingThrowAbility": "Dexterity", @@ -60,7 +60,43 @@ "effectPoolAmount": 60, "effectApplication": "All", "effectFormFilters": [], - "effectForms": [], + "effectForms": [ + { + "$type": "EffectForm, Assembly-CSharp", + "formType": "Damage", + "addBonusMode": "None", + "applyLevel": "No", + "levelType": "ClassLevel", + "levelMultiplier": 1, + "diceByLevelTable": [], + "createdByCharacter": true, + "createdByCondition": false, + "hasSavingThrow": false, + "savingThrowAffinity": "None", + "dcModifier": 0, + "canSaveToCancel": false, + "saveOccurence": "EndOfTurn", + "damageForm": { + "$type": "DamageForm, Assembly-CSharp", + "versatile": false, + "diceNumber": 1, + "dieType": "D6", + "overrideWithBardicInspirationDie": false, + "versatileDieType": "D1", + "bonusDamage": 0, + "damageType": "DamageBludgeoning", + "ancestryType": "Sorcerer", + "healFromInflictedDamage": "Never", + "hitPointsFloor": 0, + "forceKillOnZeroHp": false, + "specialDeathCondition": null, + "ignoreFlyingCharacters": false, + "ignoreCriticalDoubleDice": false + }, + "hasFilterId": false, + "filterId": 0 + } + ], "specialFormsDescription": "", "effectAdvancement": { "$type": "EffectAdvancement, Assembly-CSharp", @@ -264,7 +300,7 @@ "delegatedToAction": false, "surrogateToSpell": null, "triggeredBySpecialMove": false, - "activationTime": "OnAttackHitMelee", + "activationTime": "NoCost", "autoActivationRequiredTargetSenseType": "None", "autoActivationRequiredTargetCreatureTag": "", "autoActivationPowerTag": "", @@ -300,8 +336,8 @@ "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", + "title": "Feature/&PowerCollegeOfAudacitySlashingWhirlTitle", + "description": "Feature/&PowerCollegeOfAudacitySlashingWhirlDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", "m_AssetGUID": "", @@ -321,7 +357,7 @@ "usedInValleyDLC": false }, "contentCopyright": "UserContent", - "guid": "28130938-f181-5e81-a4b1-6dada78c7f2d", + "guid": "75e28f91-6725-5ff1-b803-908a90664530", "contentPack": 9999, - "name": "PowerCollegeOfAudacityMasterfulWhirl" + "name": "PowerCollegeOfAudacitySlashingWhirlDamage" } \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacityDefensiveWhirl.json b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacityDefensiveWhirl.json index 0aab22893e..ed72deba55 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacityDefensiveWhirl.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacityDefensiveWhirl.json @@ -165,7 +165,7 @@ "vocalSpellSemeType": "None", "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, + "hidden": true, "title": "Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle", "description": "Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription", "spriteReference": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacityMobileWhirl.json b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacityMobileWhirl.json index 635c90dc35..93ea54a623 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacityMobileWhirl.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacityMobileWhirl.json @@ -165,7 +165,7 @@ "vocalSpellSemeType": "None", "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, + "hidden": true, "title": "Feature/&PowerCollegeOfAudacityMobileWhirlTitle", "description": "Feature/&PowerCollegeOfAudacityMobileWhirlDescription", "spriteReference": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacitySlashingWhirl.json b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacitySlashingWhirl.json index 455b850c74..ab1a8527b1 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacitySlashingWhirl.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SpellPowerCollegeOfAudacitySlashingWhirl.json @@ -165,7 +165,7 @@ "vocalSpellSemeType": "None", "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, + "hidden": true, "title": "Feature/&PowerCollegeOfAudacitySlashingWhirlTitle", "description": "Feature/&PowerCollegeOfAudacitySlashingWhirlDescription", "spriteReference": { diff --git a/SolastaUnfinishedBusiness/Api/GameExtensions/EnumExtensions.cs b/SolastaUnfinishedBusiness/Api/GameExtensions/EnumExtensions.cs index 2ecf3d1e14..794e3c3c36 100644 --- a/SolastaUnfinishedBusiness/Api/GameExtensions/EnumExtensions.cs +++ b/SolastaUnfinishedBusiness/Api/GameExtensions/EnumExtensions.cs @@ -118,7 +118,8 @@ internal enum ExtraAdditionalDamageValueDetermination internal enum ExtraAncestryType { PathOfTheElements = 9000, - WayOfTheDragon + WayOfTheDragon, + CollegeOfAudacityDefensiveWhirl } internal enum ExtraCombatAffinityValueDetermination diff --git a/SolastaUnfinishedBusiness/Patches/RulesetImplementationManagerPatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetImplementationManagerPatcher.cs index ab7fd7db28..93c8920c80 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetImplementationManagerPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetImplementationManagerPatcher.cs @@ -258,14 +258,21 @@ private static int RollDamage( canRerollDice = true; } - //PATCH: supports different critical damage algorithms + int damage; + if (!criticalSuccess) { - return rulesetActor.RollDamage( + damage = rulesetActor.RollDamage( damageForm, addDice, false, additionalDamage, damageRollReduction, damageMultiplier, maximumDamage, useVersatileDamage, attackModeDamage, rolledValues, canRerollDice); + + //PATCH: supports College of Audacity defensive whirl + CollegeOfAudacity.HandleDefensiveWhirl(formsParams.sourceCharacter, damageForm, damage); + + return damage; } + //PATCH: supports different critical damage algorithms var rollDamageOption = rulesetActor.Side switch { Side.Ally => Main.Settings.CriticalHitModeAllies, @@ -282,7 +289,7 @@ private static int RollDamage( rollDamageOption = 2; } - var damage = rollDamageOption switch + damage = rollDamageOption switch { 1 => RollDamageOption1( rulesetActor, damageForm, addDice, additionalDamage, damageRollReduction, damageMultiplier, @@ -298,10 +305,12 @@ private static int RollDamage( useVersatileDamage, attackModeDamage, rolledValues, canRerollDice) }; + //PATCH: supports College of Audacity defensive whirl + CollegeOfAudacity.HandleDefensiveWhirl(formsParams.sourceCharacter, damageForm, damage); + return damage; } - [NotNull] [UsedImplicitly] public static IEnumerable Transpiler([NotNull] IEnumerable instructions) { diff --git a/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs b/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs index bc262a2aa3..65f3a4cc81 100644 --- a/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs +++ b/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs @@ -1,8 +1,9 @@ using System.Collections; using System.Collections.Generic; +using System.Linq; using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; -using SolastaUnfinishedBusiness.Api.LanguageExtensions; +using SolastaUnfinishedBusiness.Api.Helpers; using SolastaUnfinishedBusiness.Behaviors; using SolastaUnfinishedBusiness.Behaviors.Specific; using SolastaUnfinishedBusiness.Builders; @@ -23,10 +24,10 @@ namespace SolastaUnfinishedBusiness.Subclasses; public sealed class CollegeOfAudacity : AbstractSubclass { private const string Name = "CollegeOfAudacity"; - private const string WhirlMarker = "Whirl"; - + private const string ConditionDefensiveWhirl = $"Condition{Name}DefensiveWhirl"; private const ActionDefinitions.Id AudaciousWhirlToggle = (ActionDefinitions.Id)ExtraActionId.AudaciousWhirlToggle; private const ActionDefinitions.Id MasterfulWhirlToggle = (ActionDefinitions.Id)ExtraActionId.MasterfulWhirlToggle; + private const string WhirlDamage = "WhirlDamage"; public CollegeOfAudacity() { @@ -68,24 +69,23 @@ public CollegeOfAudacity() // Defensive Whirl - var attributeModifierDefensiveWhirl = FeatureDefinitionAttributeModifierBuilder - .Create($"AttributeModifier{Name}DefensiveWhirl") - .SetGuiPresentation(Category.Feature) - .SetAddConditionAmount(AttributeDefinitions.ArmorClass) - .AddToDB(); - - var conditionDefensiveWhirl = ConditionDefinitionBuilder - .Create($"Condition{Name}DefensiveWhirl") + _ = ConditionDefinitionBuilder + .Create(ConditionDefensiveWhirl) .SetGuiPresentation($"AttributeModifier{Name}DefensiveWhirl", Category.Feature, Gui.NoLocalization, ConditionDefinitions.ConditionMagicallyArmored.GuiPresentation.SpriteReference) .SetPossessive() - .SetFeatures(attributeModifierDefensiveWhirl) + .SetFeatures( + FeatureDefinitionAttributeModifierBuilder + .Create($"AttributeModifier{Name}DefensiveWhirl") + .SetGuiPresentation(Category.Feature) + .SetAddConditionAmount(AttributeDefinitions.ArmorClass) + .AddToDB()) .SetAmountOrigin(ConditionDefinition.OriginOfAmount.Fixed) .AddToDB(); var powerDefensiveWhirl = FeatureDefinitionPowerBuilder .Create($"Power{Name}DefensiveWhirl") - .SetGuiPresentation(Category.Feature) + .SetGuiPresentation(Category.Feature, hidden: true) .SetUsesFixed(ActivationTime.NoCost) .SetEffectDescription( EffectDescriptionBuilder @@ -93,14 +93,13 @@ public CollegeOfAudacity() .SetDurationData(DurationType.Round, 1, TurnOccurenceType.StartOfTurn) .SetTargetingData(Side.Enemy, RangeType.Distance, 1, TargetType.Individuals) .Build()) - .AddCustomSubFeatures(ModifyPowerVisibility.Hidden) .AddToDB(); // Mobile Whirl var powerMobileWhirl = FeatureDefinitionPowerBuilder .Create($"Power{Name}MobileWhirl") - .SetGuiPresentation(Category.Feature) + .SetGuiPresentation(Category.Feature, hidden: true) .SetUsesFixed(ActivationTime.NoCost) .SetEffectDescription( EffectDescriptionBuilder @@ -108,21 +107,31 @@ public CollegeOfAudacity() .SetDurationData(DurationType.Round, 0, TurnOccurenceType.StartOfTurn) .SetTargetingData(Side.Enemy, RangeType.Distance, 1, TargetType.Individuals) .Build()) - .AddCustomSubFeatures(ModifyPowerVisibility.Hidden) .AddToDB(); // Slashing Whirl + var powerSlashingWhirlDamage = FeatureDefinitionPowerBuilder + .Create($"Power{Name}SlashingWhirlDamage") + .SetGuiPresentation($"Power{Name}SlashingWhirl", Category.Feature, hidden: true) + .SetUsesFixed(ActivationTime.NoCost) + .SetEffectDescription( + EffectDescriptionBuilder + .Create() + .SetTargetingData(Side.Enemy, RangeType.Distance, 1, TargetType.Individuals) + .SetEffectForms(EffectFormBuilder.DamageForm(DamageTypeBludgeoning, 1, DieType.D6)) + .Build()) + .AddToDB(); + var powerSlashingWhirl = FeatureDefinitionPowerBuilder .Create($"Power{Name}SlashingWhirl") - .SetGuiPresentation(Category.Feature) + .SetGuiPresentation(Category.Feature, hidden: true) .SetUsesFixed(ActivationTime.NoCost) .SetEffectDescription( EffectDescriptionBuilder .Create() .SetTargetingData(Side.Enemy, RangeType.Distance, 1, TargetType.Individuals) .Build()) - .AddCustomSubFeatures(ModifyPowerVisibility.Hidden) .AddToDB(); // Audacious Whirl @@ -149,7 +158,7 @@ public CollegeOfAudacity() var powerAudaciousWhirl = FeatureDefinitionPowerBuilder .Create($"Power{Name}AudaciousWhirl") .SetGuiPresentationNoContent(true) - .SetUsesFixed(ActivationTime.OnAttackHitMelee, RechargeRate.BardicInspiration) + .SetUsesFixed(ActivationTime.NoCost, RechargeRate.BardicInspiration) .SetEffectDescription( EffectDescriptionBuilder .Create() @@ -159,20 +168,14 @@ public CollegeOfAudacity() .AddToDB(); powerAudaciousWhirl.AddCustomSubFeatures( - new CustomBehaviorWhirl( - conditionAudaciousWhirlExtraMovement, - conditionDefensiveWhirl, - powerDefensiveWhirl, - powerSlashingWhirl, - powerMobileWhirl), ReactionResourceBardicInspiration.Instance, - new RestrictReactionAttackMode((_, attacker, _, _, _) => - attacker.OnceInMyTurnIsValid(WhirlMarker) && - attacker.RulesetCharacter.IsToggleEnabled(AudaciousWhirlToggle))); + new CustomBehaviorAudaciousWhirl( + powerAudaciousWhirl, powerSlashingWhirl, powerSlashingWhirlDamage, + conditionAudaciousWhirlExtraMovement)); PowerBundle.RegisterPowerBundle( powerAudaciousWhirl, - true, + false, powerDefensiveWhirl, powerSlashingWhirl, powerMobileWhirl); @@ -192,29 +195,6 @@ public CollegeOfAudacity() // Masterful Whirl - var powerMasterfulWhirl = FeatureDefinitionPowerBuilder - .Create($"Power{Name}MasterfulWhirl") - .SetGuiPresentationNoContent(true) - .SetUsesFixed(ActivationTime.OnAttackHitMelee) - .SetEffectDescription( - EffectDescriptionBuilder - .Create() - .SetDurationData(DurationType.Round, 0, TurnOccurenceType.StartOfTurn) - .SetTargetingData(Side.Enemy, RangeType.Distance, 1, TargetType.Individuals) - .Build()) - .AddToDB(); - - powerMasterfulWhirl.AddCustomSubFeatures( - new CustomBehaviorWhirl( - conditionAudaciousWhirlExtraMovement, - conditionDefensiveWhirl, - powerDefensiveWhirl, - powerSlashingWhirl, - powerMobileWhirl), - new RestrictReactionAttackMode((_, attacker, _, _, _) => - attacker.OnceInMyTurnIsValid(WhirlMarker) && - attacker.RulesetCharacter.IsToggleEnabled(MasterfulWhirlToggle))); - var actionAffinityMasterfulWhirlToggle = FeatureDefinitionActionAffinityBuilder .Create(ActionAffinitySorcererMetamagicToggle, "ActionAffinityMasterfulWhirlToggle") .SetGuiPresentationNoContent(true) @@ -224,7 +204,7 @@ public CollegeOfAudacity() var featureSetMasterfulWhirl = FeatureDefinitionFeatureSetBuilder .Create($"FeatureSet{Name}MasterfulWhirl") .SetGuiPresentation(Category.Feature) - .AddFeatureSet(actionAffinityMasterfulWhirlToggle, powerMasterfulWhirl) + .AddFeatureSet(actionAffinityMasterfulWhirlToggle) .AddToDB(); // MAIN @@ -247,175 +227,106 @@ public CollegeOfAudacity() // ReSharper disable once UnassignedGetOnlyAutoProperty internal override DeityDefinition DeityDefinition { get; } - private sealed class CustomBehaviorWhirl( - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - ConditionDefinition conditionExtraMovement, - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - ConditionDefinition conditionDefensiveWhirl, - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - FeatureDefinitionPower powerDefensiveWhirl, - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - FeatureDefinitionPower powerSlashingWhirl, - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - FeatureDefinitionPower powerMobileWhirl) - : IActionFinishedByMe, IPhysicalAttackBeforeHitConfirmedOnEnemy, IPhysicalAttackFinishedByMe + internal static void HandleDefensiveWhirl(RulesetCharacter rulesetCharacter, DamageForm damageForm, int damage) { - private readonly List _tags = []; - private bool _criticalHit; - private string _damageType; - - public IEnumerator OnActionFinishedByMe(CharacterAction characterAction) + if (damageForm.AncestryType != (AncestryType)ExtraAncestryType.CollegeOfAudacityDefensiveWhirl) { - if (_damageType == null) - { - yield break; - } - - if (characterAction is not CharacterActionSpendPower actionSpendPower) - { - yield break; - } + return; + } - var power = actionSpendPower.activePower.PowerDefinition; + var character = GameLocationCharacter.GetFromActor(rulesetCharacter); - if (power != powerDefensiveWhirl && - power != powerSlashingWhirl && - power != powerMobileWhirl) - { - yield break; - } + character.UsedSpecialFeatures.TryAdd(WhirlDamage, 0); + character.UsedSpecialFeatures[WhirlDamage] = damage; + } - var actingCharacter = actionSpendPower.ActingCharacter; - var rulesetCharacter = actingCharacter.RulesetCharacter; + private sealed class CustomBehaviorAudaciousWhirl( + FeatureDefinitionPower powerAudaciousWhirl, + FeatureDefinitionPower powerSlashingWhirl, + FeatureDefinitionPower powerSlashingWhirlDamage, + ConditionDefinition conditionExtraMovement) + : IMagicEffectBeforeHitConfirmedOnEnemy, IModifyEffectDescription, + IPhysicalAttackBeforeHitConfirmedOnEnemy, IPhysicalAttackFinishedByMe + { + private const string WhirlMarker = "WhirlMarker"; + private const string WhirlDamageType = "WhirlDamageType"; + private const string WhirlSelectedPower = "WhirlSelectedPower"; - if (rulesetCharacter is not { IsDeadOrDyingOrUnconscious: false }) + public IEnumerator OnMagicEffectBeforeHitConfirmedOnEnemy( + GameLocationBattleManager battleManager, + GameLocationCharacter attacker, + GameLocationCharacter defender, + ActionModifier actionModifier, + RulesetEffect rulesetEffect, + List actualEffectForms, + bool firstTarget, + bool criticalHit) + { + if (rulesetEffect.SourceDefinition != powerSlashingWhirl) { yield break; } - actingCharacter.UsedSpecialFeatures.TryAdd(WhirlMarker, 1); + var rulesetAttacker = attacker.RulesetCharacter; + var implementationManager = + ServiceRepository.GetService() as RulesetImplementationManager; - // targets - var targetCharacters = new List(); + var targets = Gui.Battle.GetContenders(attacker, withinRange: 1).Where(x => x != defender).ToList(); - // masterful whirl? - var isMasterfulWhirl = rulesetCharacter.IsToggleEnabled(MasterfulWhirlToggle); + var actionModifiers = new List(); - // damage roll - var dieType = isMasterfulWhirl ? DieType.D6 : rulesetCharacter.GetBardicInspirationDieValue(); - var damageForm = new DamageForm + for (var i = 0; i < targets.Count; i++) { - DamageType = _damageType, DieType = dieType, DiceNumber = 1, BonusDamage = 0 - }; - var rolls = new List(); - var damageRoll = - rulesetCharacter.RollDamage(damageForm, 0, _criticalHit, 0, 0, 1, false, false, false, rolls); + actionModifiers.Add(new ActionModifier()); + } - // add damage whirl condition and target - if (power == powerDefensiveWhirl) + var usablePower = PowerProvider.Get(powerSlashingWhirlDamage, rulesetAttacker); + var actionParams = new CharacterActionParams(attacker, ActionDefinitions.Id.SpendPower) { - targetCharacters.Add(actionSpendPower.ActionParams.TargetCharacters[0]); - - var firstRoll = rolls[0]; + ActionModifiers = actionModifiers, + RulesetEffect = implementationManager + .MyInstantiateEffectPower(rulesetAttacker, usablePower, false), + UsablePower = usablePower, + targetCharacters = targets + }; - rulesetCharacter.InflictCondition( - conditionDefensiveWhirl.Name, - DurationType.Round, - 1, - TurnOccurenceType.StartOfTurn, - AttributeDefinitions.TagEffect, - rulesetCharacter.guid, - rulesetCharacter.CurrentFaction.Name, - 1, - conditionDefensiveWhirl.Name, - firstRoll, - 0, - 0); - } + ServiceRepository.GetService()? + .ExecuteAction(actionParams, null, true); + } - // add mobile whirl condition and target - else if (power == powerMobileWhirl) - { - targetCharacters.Add(actionSpendPower.ActionParams.TargetCharacters[0]); + public bool IsValid(BaseDefinition definition, RulesetCharacter character, EffectDescription effectDescription) + { + return definition == powerSlashingWhirlDamage; + } - rulesetCharacter.InflictCondition( - ConditionDisengaging, - DurationType.Round, - 0, - TurnOccurenceType.EndOfTurn, - // all disengaging in game is set under TagCombat (why?) - AttributeDefinitions.TagCombat, - rulesetCharacter.guid, - rulesetCharacter.CurrentFaction.Name, - 1, - ConditionDisengaging, - 0, - 0, - 0); - } + public EffectDescription GetEffectDescription( + BaseDefinition definition, + EffectDescription effectDescription, + RulesetCharacter rulesetCharacter, + RulesetEffect rulesetEffect) + { + var character = GameLocationCharacter.GetFromActor(rulesetCharacter); - // add slashing whirl targets - else if (power == powerSlashingWhirl) + if (character == null) { - if (Gui.Battle != null) - { - targetCharacters.AddRange(Gui.Battle - .GetContenders(actingCharacter, hasToPerceiveTarget: true, withinRange: 1)); - } + return effectDescription; } - // apply damage to targets - var isFirstTarget = true; - - foreach (var defender in targetCharacters) + if (character.UsedSpecialFeatures.TryGetValue(WhirlDamageType, out var damageIndex)) { - if (isFirstTarget) - { - isFirstTarget = false; - } - // reroll for each target on Slashing Whirl scenario - else - { - rolls = []; - damageRoll = - rulesetCharacter.RollDamage(damageForm, 0, _criticalHit, 0, 0, 1, false, false, false, rolls); - } + var damageTypeDefinition = + DatabaseRepository.GetDatabase().ToList().ElementAt(damageIndex); - var rulesetDefender = defender.RulesetActor; - var applyFormsParams = new RulesetImplementationDefinitions.ApplyFormsParams - { - sourceCharacter = rulesetCharacter, - targetCharacter = rulesetDefender, - position = defender.LocationPosition - }; - - RulesetActor.InflictDamage( - damageRoll, - damageForm, - _damageType, - applyFormsParams, - rulesetDefender, - false, - rulesetCharacter.Guid, - false, - _tags, - new RollInfo(dieType, rolls, 0), - false, - out _); + effectDescription.EffectForms[0].DamageForm.DamageType = damageTypeDefinition.Name; } - // consume bardic inspiration if not a masterful whirl - if (isMasterfulWhirl) - { - yield break; - } + var isMasterfulWhirl = rulesetCharacter.IsToggleEnabled(MasterfulWhirlToggle); - rulesetCharacter.UsedBardicInspiration++; - rulesetCharacter.BardicInspirationAltered?.Invoke( - rulesetCharacter, rulesetCharacter.RemainingBardicInspirations); + effectDescription.EffectForms[0].DamageForm.OverrideWithBardicInspirationDie = !isMasterfulWhirl; + + return effectDescription; } - // collect damage type public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( GameLocationBattleManager battleManager, GameLocationCharacter attacker, @@ -428,16 +339,89 @@ public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( bool firstTarget, bool criticalHit) { - var damageForm = attackMode.EffectDescription.FindFirstDamageForm(); + var actionManager = + ServiceRepository.GetService() as GameLocationActionManager; + + var rulesetAttacker = attacker.RulesetCharacter; + var usablePower = PowerProvider.Get(powerAudaciousWhirl, rulesetAttacker); + var isAudaciousWhirl = rulesetAttacker.IsToggleEnabled(AudaciousWhirlToggle); + var isMasterfulWhirl = rulesetAttacker.IsToggleEnabled(MasterfulWhirlToggle); + + if (!actionManager || + !attacker.OnceInMyTurnIsValid(WhirlMarker) || + rulesetAttacker.GetRemainingUsesOfPower(usablePower) == 0 || + !(isAudaciousWhirl || isMasterfulWhirl)) + { + yield break; + } - _damageType = damageForm?.damageType; - _criticalHit = criticalHit; - _tags.SetRange(attackMode.AttackTags); + var implementationManager = + ServiceRepository.GetService() as RulesetImplementationManager; + + + var actionParams = + new CharacterActionParams(attacker, ActionDefinitions.Id.SpendPower) + { + ActionModifiers = { new ActionModifier() }, + StringParameter = powerAudaciousWhirl.Name, + RulesetEffect = implementationManager + .MyInstantiateEffectPower(rulesetAttacker, usablePower, false), + UsablePower = usablePower, + TargetCharacters = { defender } + }; + var count = actionManager.PendingReactionRequestGroups.Count; + var reactionRequest = new ReactionRequestSpendBundlePower(actionParams); - yield break; + actionManager.AddInterruptRequest(reactionRequest); + + yield return battleManager.WaitForReactions(attacker, actionManager, count); + + attacker.UsedSpecialFeatures.TryAdd(WhirlSelectedPower, -1); + + if (!actionParams.ReactionValidated) + { + yield break; + } + + attacker.UsedSpecialFeatures[WhirlSelectedPower] = reactionRequest.SelectedSubOption; + attacker.UsedSpecialFeatures.TryAdd(WhirlMarker, 1); + + var firstDamageForm = actualEffectForms.FirstOrDefault(x => x.FormType == EffectForm.EffectFormType.Damage); + + if (firstDamageForm != null) + { + var damageType = firstDamageForm.DamageForm.DamageType; + var effectDamageForm = EffectFormBuilder.DamageForm(damageType, 1, DieType.D6); + + effectDamageForm.DamageForm.OverrideWithBardicInspirationDie = !isMasterfulWhirl; + + if (reactionRequest.SelectedSubOption == 0) + { + effectDamageForm.DamageForm.AncestryType = + (AncestryType)ExtraAncestryType.CollegeOfAudacityDefensiveWhirl; + } + + var index = actualEffectForms.IndexOf(firstDamageForm); + + actualEffectForms.Insert(index + 1, effectDamageForm); + + var damageTypes = DatabaseRepository.GetDatabase().ToList(); + var damageTypeDefinition = damageTypes.FirstOrDefault(x => x.Name == damageType); + var damageIndex = damageTypes.IndexOf(damageTypeDefinition); + + attacker.UsedSpecialFeatures.TryAdd(WhirlDamageType, damageIndex); + } + + if (isMasterfulWhirl) + { + yield break; + } + + rulesetAttacker.UsedBardicInspiration++; + rulesetAttacker.BardicInspirationAltered?.Invoke( + rulesetAttacker, rulesetAttacker.RemainingBardicInspirations); } - // add extra movement on any attack public IEnumerator OnPhysicalAttackFinishedByMe( GameLocationBattleManager battleManager, CharacterAction action, @@ -447,17 +431,17 @@ public IEnumerator OnPhysicalAttackFinishedByMe( RollOutcome rollOutcome, int damageAmount) { - var rulesetCharacter = attacker.RulesetCharacter; + var rulesetAttacker = attacker.RulesetCharacter; - if (rulesetCharacter is not { IsDeadOrDyingOrUnconscious: false }) + if (rulesetAttacker is not { IsDeadOrDyingOrUnconscious: false }) { yield break; } - if (!rulesetCharacter.HasConditionOfCategoryAndType( + if (!rulesetAttacker.HasConditionOfCategoryAndType( AttributeDefinitions.TagEffect, conditionExtraMovement.Name)) { - rulesetCharacter.InflictCondition( + rulesetAttacker.InflictCondition( conditionExtraMovement.Name, DurationType.Round, 0, @@ -471,6 +455,52 @@ public IEnumerator OnPhysicalAttackFinishedByMe( 0, 0); } + + if (!attacker.UsedSpecialFeatures.TryGetValue(WhirlSelectedPower, out var value)) + { + yield break; + } + + attacker.UsedSpecialFeatures.Remove(WhirlSelectedPower); + + switch (value) + { + case 0 when + attacker.UsedSpecialFeatures.TryGetValue(WhirlDamage, out var damage): + rulesetAttacker.InflictCondition( + ConditionDefensiveWhirl, + DurationType.Round, + 1, + TurnOccurenceType.StartOfTurn, + AttributeDefinitions.TagEffect, + rulesetAttacker.guid, + rulesetAttacker.CurrentFaction.Name, + 1, + ConditionDefensiveWhirl, + damage, + 0, + 0); + break; + case 1: + rulesetAttacker.LogCharacterUsedPower(powerSlashingWhirl); + break; + case 2: + rulesetAttacker.InflictCondition( + ConditionDisengaging, + DurationType.Round, + 0, + TurnOccurenceType.EndOfTurn, + // all disengaging in game is set under TagCombat (why?) + AttributeDefinitions.TagCombat, + rulesetAttacker.guid, + rulesetAttacker.CurrentFaction.Name, + 1, + ConditionDisengaging, + 0, + 0, + 0); + break; + } } } } From 5a75ea26e7cfa50d428cbe7ae9e6b3af3cf11331 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 13:59:43 -0700 Subject: [PATCH 10/91] update collaterals --- .../CharacterSubclassDefinition/DomainNature.json | 6 +++--- .../CharacterSubclassDefinition/DomainTempest.json | 6 +++--- SolastaUnfinishedBusiness/ChangelogHistory.txt | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/DomainNature.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/DomainNature.json index 915d616562..8e913217bd 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/DomainNature.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/DomainNature.json @@ -51,9 +51,9 @@ "description": "Subclass/&DomainNatureDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "05db759cf66168b4495b148ea71ec6c5", - "m_SubObjectName": "Wizard_Sylvan_Mage", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "cbd74311-3727-5bd4-a573-797100be050d", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/DomainTempest.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/DomainTempest.json index d3788c374b..d29aad5816 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/DomainTempest.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/DomainTempest.json @@ -51,9 +51,9 @@ "description": "Subclass/&DomainTempestDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "7b10e54d6037d314e93fd7e7f81c4798", - "m_SubObjectName": "Spellblade", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "ef1c8e62-edc3-54de-b4e9-741b11d41d0f", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 71f16eefb6..ffe30e2b9a 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,6 +1,9 @@ 1.5.97.20: -- fixed Ring of Knifes missing spell casting modifiers on bonus power +- added subclasses unique sprites [by otearaisu] +- fixed 'Export Hero' and RESPEC effects termination logic [auras, infusions, etc.] +- fixed Martial Battle Master initial pool set to 3 instead of 4 +- fixed Ring of Knifes spell missing to-hit casting modifiers on power 1.5.97.19: From bcd761321829bef79a61fb433002ea53bc5dd97e Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 15:27:50 -0700 Subject: [PATCH 11/91] improve Audacious Whirl behavior --- .../Models/CustomActionIdContext.cs | 7 ------- .../Subclasses/CollegeOfAudacity.cs | 16 +++++++++++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/SolastaUnfinishedBusiness/Models/CustomActionIdContext.cs b/SolastaUnfinishedBusiness/Models/CustomActionIdContext.cs index 7288138083..79427eb40f 100644 --- a/SolastaUnfinishedBusiness/Models/CustomActionIdContext.cs +++ b/SolastaUnfinishedBusiness/Models/CustomActionIdContext.cs @@ -231,13 +231,6 @@ void DoReorder(Id actionId, int overrideIndex = -1) private static void BuildCustomToggleActions() { - ActionDefinitionBuilder - .Create(MetamagicToggle, "AudaciousWhirlToggle") - .SetOrUpdateGuiPresentation(Category.Action) - .RequiresAuthorization() - .SetActionId(ExtraActionId.AudaciousWhirlToggle) - .AddToDB(); - ActionDefinitionBuilder .Create(MetamagicToggle, "BrutalStrikeToggle") .SetOrUpdateGuiPresentation(Category.Action) diff --git a/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs b/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs index 65f3a4cc81..df783ba207 100644 --- a/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs +++ b/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs @@ -11,8 +11,10 @@ using SolastaUnfinishedBusiness.CustomUI; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Properties; +using SolastaUnfinishedBusiness.Validators; using static RuleDefinitions; using static SolastaUnfinishedBusiness.Api.DatabaseHelper; +using static SolastaUnfinishedBusiness.Api.DatabaseHelper.ActionDefinitions; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionActionAffinitys; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionSubclassChoices; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.WeaponTypeDefinitions; @@ -180,6 +182,15 @@ public CollegeOfAudacity() powerSlashingWhirl, powerMobileWhirl); + _ = ActionDefinitionBuilder + .Create(MetamagicToggle, "AudaciousWhirlToggle") + .SetOrUpdateGuiPresentation(Category.Action) + .RequiresAuthorization() + .SetActionId(ExtraActionId.AudaciousWhirlToggle) + .AddCustomSubFeatures( + new ValidateDefinitionApplication(ValidatorsCharacter.HasAvailablePowerUsage(powerAudaciousWhirl))) + .AddToDB(); + var featureSetAudaciousWhirl = FeatureDefinitionFeatureSetBuilder .Create($"FeatureSet{Name}AudaciousWhirl") .SetGuiPresentation(Category.Feature) @@ -345,12 +356,12 @@ public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( var rulesetAttacker = attacker.RulesetCharacter; var usablePower = PowerProvider.Get(powerAudaciousWhirl, rulesetAttacker); var isAudaciousWhirl = rulesetAttacker.IsToggleEnabled(AudaciousWhirlToggle); + var hasAvailablePowerUses = rulesetAttacker.GetRemainingUsesOfPower(usablePower) > 0; var isMasterfulWhirl = rulesetAttacker.IsToggleEnabled(MasterfulWhirlToggle); if (!actionManager || !attacker.OnceInMyTurnIsValid(WhirlMarker) || - rulesetAttacker.GetRemainingUsesOfPower(usablePower) == 0 || - !(isAudaciousWhirl || isMasterfulWhirl)) + !((isAudaciousWhirl && hasAvailablePowerUses) || isMasterfulWhirl)) { yield break; } @@ -358,7 +369,6 @@ public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( var implementationManager = ServiceRepository.GetService() as RulesetImplementationManager; - var actionParams = new CharacterActionParams(attacker, ActionDefinitions.Id.SpendPower) { From 8941bf99db5e5f8d778d29c3ae3131f552494390 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 15:28:36 -0700 Subject: [PATCH 12/91] change Arcane Archer to trigger after attack hits - fix #4805 --- .../Subclasses/MartialArcaneArcher.cs | 101 +++++++++++------- 1 file changed, 60 insertions(+), 41 deletions(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs b/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs index 42b4a469df..408bf752ae 100644 --- a/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs +++ b/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs @@ -25,10 +25,28 @@ public sealed class MartialArcaneArcher : AbstractSubclass private const string Name = "MartialArcaneArcher"; private const ActionDefinitions.Id ArcaneArcherToggle = (ActionDefinitions.Id)ExtraActionId.ArcaneArcherToggle; - // referenced by feat Arcane Archer Adept - internal static FeatureDefinitionPower PowerArcaneShot; - internal static FeatureDefinitionActionAffinity ActionAffinityArcaneArcherToggle; - internal static FeatureDefinitionCustomInvocationPool InvocationPoolArcaneShotChoice2; + internal static readonly FeatureDefinitionPower PowerArcaneShot = FeatureDefinitionPowerBuilder + .Create($"Power{Name}ArcaneShot") + .SetGuiPresentation($"FeatureSet{Name}ArcaneShot", Category.Feature) + .SetUsesFixed(ActivationTime.NoCost, RechargeRate.ShortRest, 1, 0) + .DelegatedToAction() + .AddToDB(); + + internal static readonly FeatureDefinitionActionAffinity ActionAffinityArcaneArcherToggle = + FeatureDefinitionActionAffinityBuilder + .Create(ActionAffinitySorcererMetamagicToggle, "ActionAffinityArcaneArcherToggle") + .SetGuiPresentationNoContent(true) + .SetAuthorizedActions(ArcaneArcherToggle) + .AddCustomSubFeatures( + new ValidateDefinitionApplication(ValidatorsCharacter.HasAvailablePowerUsage(PowerArcaneShot))) + .AddToDB(); + + internal static readonly FeatureDefinitionCustomInvocationPool InvocationPoolArcaneShotChoice2 = + CustomInvocationPoolDefinitionBuilder + .Create("InvocationPoolArcaneShotChoice2") + .SetGuiPresentation(Category.Feature) + .Setup(InvocationPoolTypeCustom.Pools.ArcaneShotChoice, 2) + .AddToDB(); public MartialArcaneArcher() { @@ -75,19 +93,12 @@ public MartialArcaneArcher() // Arcane Shot - PowerArcaneShot = FeatureDefinitionPowerBuilder - .Create($"Power{Name}ArcaneShot") - .SetGuiPresentation($"FeatureSet{Name}ArcaneShot", Category.Feature) - .SetUsesFixed(ActivationTime.NoCost, RechargeRate.ShortRest, 1, 0) - .DelegatedToAction() - .AddToDB(); - var arcaneShotPowers = BuildArcaneShotPowers(PowerArcaneShot, out var powerBurstingArrow, out var powerBurstingArrowDamage); PowerArcaneShot.AddCustomSubFeatures( HasModifiedUses.Marker, - new PhysicalAttackFinishedByMeArcaneShot(powerBurstingArrow, powerBurstingArrowDamage)); + new CustomBehaviorArcaneShot(powerBurstingArrow, powerBurstingArrowDamage)); PowerBundle.RegisterPowerBundle(PowerArcaneShot, false, arcaneShotPowers); @@ -99,14 +110,6 @@ public MartialArcaneArcher() .SetActivatedPower(PowerArcaneShot) .AddToDB(); - ActionAffinityArcaneArcherToggle = FeatureDefinitionActionAffinityBuilder - .Create(ActionAffinitySorcererMetamagicToggle, "ActionAffinityArcaneArcherToggle") - .SetGuiPresentationNoContent(true) - .SetAuthorizedActions(ArcaneArcherToggle) - .AddCustomSubFeatures( - new ValidateDefinitionApplication(ValidatorsCharacter.HasAvailablePowerUsage(PowerArcaneShot))) - .AddToDB(); - var powerArcaneShotAdditionalUse2 = FeatureDefinitionPowerUseModifierBuilder .Create($"PowerUseModifier{Name}ArcaneShotUse2") .SetGuiPresentationNoContent(true) @@ -120,13 +123,6 @@ public MartialArcaneArcher() .Setup(InvocationPoolTypeCustom.Pools.ArcaneShotChoice) .AddToDB(); - InvocationPoolArcaneShotChoice2 = - CustomInvocationPoolDefinitionBuilder - .Create("InvocationPoolArcaneShotChoice2") - .SetGuiPresentation(Category.Feature) - .Setup(InvocationPoolTypeCustom.Pools.ArcaneShotChoice, 2) - .AddToDB(); - var featureSetArcaneShot = FeatureDefinitionFeatureSetBuilder .Create($"FeatureSet{Name}ArcaneShot") .SetGuiPresentation(Category.Feature) @@ -590,25 +586,32 @@ private static List BuildArcaneShotPowers( // Arcane Shot // - private sealed class PhysicalAttackFinishedByMeArcaneShot( + private sealed class CustomBehaviorArcaneShot( FeatureDefinitionPower powerBurstingArrow, - FeatureDefinitionPower powerBurstingArrowDamage) : IPhysicalAttackFinishedByMe + FeatureDefinitionPower powerBurstingArrowDamage) + : IPhysicalAttackBeforeHitConfirmedOnEnemy, IPhysicalAttackFinishedByMe { private const string ArcaneShotMarker = "ArcaneShot"; - public IEnumerator OnPhysicalAttackFinishedByMe( + public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( GameLocationBattleManager battleManager, - CharacterAction action, GameLocationCharacter attacker, GameLocationCharacter defender, + ActionModifier actionModifier, RulesetAttackMode attackMode, - RollOutcome rollOutcome, - int damageAmount) + bool rangedAttack, + AdvantageType advantageType, + List actualEffectForms, + bool firstTarget, + bool criticalHit) { - if (rollOutcome is not (RollOutcome.Success or RollOutcome.CriticalSuccess) || - !attacker.OnceInMyTurnIsValid(ArcaneShotMarker) || + var rulesetAttacker = attacker.RulesetCharacter; + var usablePower = PowerProvider.Get(PowerArcaneShot, rulesetAttacker); + + if (!attacker.OnceInMyTurnIsValid(ArcaneShotMarker) || !attacker.RulesetCharacter.IsToggleEnabled(ArcaneArcherToggle) || - !IsBow(attackMode, null, null)) + !IsBow(attackMode, null, null) || + rulesetAttacker.GetRemainingUsesOfPower(usablePower) == 0) { yield break; } @@ -624,9 +627,6 @@ public IEnumerator OnPhysicalAttackFinishedByMe( var implementationManager = ServiceRepository.GetService() as RulesetImplementationManager; - var rulesetAttacker = attacker.RulesetCharacter; - var usablePower = PowerProvider.Get(PowerArcaneShot, rulesetAttacker); - var actionParams = new CharacterActionParams(GameLocationCharacter.GetFromActor(rulesetAttacker), ActionDefinitions.Id.SpendPower) @@ -645,6 +645,8 @@ public IEnumerator OnPhysicalAttackFinishedByMe( yield return battleManager.WaitForReactions(attacker, actionManager, count); + attacker.UsedSpecialFeatures.TryAdd(powerBurstingArrow.Name, -1); + if (!actionParams.ReactionValidated) { yield break; @@ -658,8 +660,25 @@ public IEnumerator OnPhysicalAttackFinishedByMe( if (subPowers != null && subPowers[option] == powerBurstingArrow) { - HandleBurstingArrow(attacker, defender); + attacker.UsedSpecialFeatures[powerBurstingArrow.Name] = 0; + } + } + + public IEnumerator OnPhysicalAttackFinishedByMe( + GameLocationBattleManager battleManager, + CharacterAction action, + GameLocationCharacter attacker, + GameLocationCharacter defender, + RulesetAttackMode attackMode, + RollOutcome rollOutcome, + int damageAmount) + { + if (!attacker.UsedSpecialFeatures.TryGetValue(powerBurstingArrow.Name, out var value) || value < 0) + { + yield break; } + + HandleBurstingArrow(attacker, defender); } private void HandleBurstingArrow(GameLocationCharacter attacker, GameLocationCharacter defender) @@ -680,7 +699,7 @@ private void HandleBurstingArrow(GameLocationCharacter attacker, GameLocationCha } var usablePower = PowerProvider.Get(powerBurstingArrowDamage, rulesetAttacker); - var actionParams = new CharacterActionParams(attacker, ActionDefinitions.Id.PowerNoCost) + var actionParams = new CharacterActionParams(attacker, ActionDefinitions.Id.SpendPower) { ActionModifiers = actionModifiers, RulesetEffect = implementationManager From c3f6ac4a8e44d16d47fbc0beebfac2ee2c136104 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 15:32:33 -0700 Subject: [PATCH 13/91] fix scatter behavior - fix #4806 --- .../Patches/CursorLocationSelectTargetPatcher.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SolastaUnfinishedBusiness/Patches/CursorLocationSelectTargetPatcher.cs b/SolastaUnfinishedBusiness/Patches/CursorLocationSelectTargetPatcher.cs index b6d6ea3213..ae2137f57f 100644 --- a/SolastaUnfinishedBusiness/Patches/CursorLocationSelectTargetPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CursorLocationSelectTargetPatcher.cs @@ -129,6 +129,7 @@ public static void Prefix(params object[] parameters) rulesetEffect.EffectDescription.TargetType = TargetType.IndividualsUnique; rulesetEffect.EffectDescription.TargetSide = modifyTeleportEffectBehavior.AllyOnly ? Side.Ally : Side.All; rulesetEffect.EffectDescription.targetExcludeCaster = modifyTeleportEffectBehavior.TeleportSelf; + rulesetEffect.EffectDescription.inviteOptionalAlly = modifyTeleportEffectBehavior.AllyOnly; } [UsedImplicitly] @@ -164,6 +165,7 @@ public static void Prefix(CursorLocationSelectTarget __instance) rulesetEffect.EffectDescription.TargetType = TargetType.Position; rulesetEffect.EffectDescription.TargetSide = Side.Ally; rulesetEffect.EffectDescription.targetExcludeCaster = false; + rulesetEffect.EffectDescription.inviteOptionalAlly = true; } } From 7e9310720aaf4a52df8fb132af90f1973c68b1bb Mon Sep 17 00:00:00 2001 From: otearaisu Date: Fri, 12 Jul 2024 07:00:51 +0800 Subject: [PATCH 14/91] fixed description of Infectious Fury to indicate the number of uses and recharge rate --- .../Translations/en/SubClasses/PathOfTheBeast-en.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SolastaUnfinishedBusiness/Translations/en/SubClasses/PathOfTheBeast-en.txt b/SolastaUnfinishedBusiness/Translations/en/SubClasses/PathOfTheBeast-en.txt index 6a051675a4..2b80715ff9 100644 --- a/SolastaUnfinishedBusiness/Translations/en/SubClasses/PathOfTheBeast-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/SubClasses/PathOfTheBeast-en.txt @@ -24,7 +24,7 @@ Feature/&PowerPathOfTheBeastFormOfTheBeastTailTitle=Form: Tail Feature/&PowerPathOfTheBeastFormOfTheBeastTitle=Form of the Beast Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeDescription=Target attacks another creature of your choice within the target's reach. Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeTitle=Infectious Fury: Compelled Strike -Feature/&PowerPathOfTheBeastInfectiousFuryDescription=When you hit a creature with your natural weapons while you are raging, the beast within you can curse your target with rabid fury. The target must succeed on a Wisdom saving throw (DC equal to 8 + your Constitution modifier + your proficiency bonus) or suffer one of the following effects (your choice). +Feature/&PowerPathOfTheBeastInfectiousFuryDescription=When you hit a creature with your natural weapons while you are raging, the beast within you can curse your target with rabid fury. The target must succeed on a Wisdom saving throw (DC equal to 8 + your Constitution modifier + your proficiency bonus) or suffer one of the following effects (your choice).\n\nYou can use this feature a number of times equal to your proficiency bonus, and you regain all expended uses when you finish a long rest. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashDescription=Target takes 2d12 Psychic Damage. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashTitle=Infectious Fury: Mindlash Feature/&PowerPathOfTheBeastInfectiousFuryTitle=Infectious Fury From 19e06d19d105536e24ac50522d4698d718739f2e Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 16:23:53 -0700 Subject: [PATCH 15/91] add custom portraits --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 3 +++ .../Portraits/ElvenDruid3.png | Bin 0 -> 57452 bytes .../Portraits/ElvenRogue9.png | Bin 0 -> 49807 bytes 3 files changed, 3 insertions(+) create mode 100644 SolastaUnfinishedBusiness/Portraits/ElvenDruid3.png create mode 100644 SolastaUnfinishedBusiness/Portraits/ElvenRogue9.png diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index ffe30e2b9a..4a43cd155f 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,9 +1,12 @@ 1.5.97.20: +- added sample heroes portraits [by Artyoan] - added subclasses unique sprites [by otearaisu] - fixed 'Export Hero' and RESPEC effects termination logic [auras, infusions, etc.] +- fixed Martial Arcane Archer arcane shot to trigger just after attack hits - fixed Martial Battle Master initial pool set to 3 instead of 4 - fixed Ring of Knifes spell missing to-hit casting modifiers on power +- fixed Scatter spell not allowing enemies selection 1.5.97.19: diff --git a/SolastaUnfinishedBusiness/Portraits/ElvenDruid3.png b/SolastaUnfinishedBusiness/Portraits/ElvenDruid3.png new file mode 100644 index 0000000000000000000000000000000000000000..1a420f82ab9bbf9273c2f59775595384170afedf GIT binary patch literal 57452 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 Date: Thu, 11 Jul 2024 16:24:54 -0700 Subject: [PATCH 16/91] remove ApplyEffectForms dependency from Path of the Beast call the hunt and beast bite --- .../Subclasses/PathOfTheBeast.cs | 53 ++----------------- 1 file changed, 5 insertions(+), 48 deletions(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/PathOfTheBeast.cs b/SolastaUnfinishedBusiness/Subclasses/PathOfTheBeast.cs index 99616fadc9..b3c175b4c2 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PathOfTheBeast.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PathOfTheBeast.cs @@ -286,32 +286,9 @@ public IEnumerator OnPhysicalAttackFinishedByMe( var rulesetAttacker = attacker.RulesetCharacter; var bonus = rulesetAttacker.TryGetAttributeValue(AttributeDefinitions.ProficiencyBonus); - var applyFormsParams = new ApplyFormsParams - { - sourceCharacter = rulesetAttacker, - targetCharacter = rulesetAttacker, - position = attacker.LocationPosition - }; - - var healingForm = new HealingForm - { - healingComputation = HealingComputation.Dice, - bonusHealing = bonus, - diceNumber = 0, - healingCap = HealingCap.HalfMaximumHitPoints - }; - - var implementationService = ServiceRepository.GetService(); - - implementationService.ApplyEffectForms( - [new EffectForm { healingForm = healingForm, formType = EffectForm.EffectFormType.Healing }], - applyFormsParams, - [], - out _, - out _); - - EffectHelpers.StartVisualEffect(attacker, attacker, SpellDefinitions.CureWounds, - EffectHelpers.EffectType.Effect); + EffectHelpers.StartVisualEffect( + attacker, attacker, SpellDefinitions.CureWounds, EffectHelpers.EffectType.Effect); + rulesetAttacker.ReceiveHealing(bonus, true, rulesetAttacker.Guid, HealingCap.HalfMaximumHitPoints); } protected override AttackModeOrder GetOrder(RulesetCharacter character) @@ -988,27 +965,7 @@ public IEnumerator OnActionFinishedByMe(CharacterAction characterAction) yield break; } - var applyFormsParams = new ApplyFormsParams - { - sourceCharacter = rulesetCharacter, - targetCharacter = rulesetCharacter, - position = character.locationPosition - }; - - _ = implementationManager!.ApplyEffectForms( - [ - new EffectForm - { - formType = EffectForm.EffectFormType.TemporaryHitPoints, - temporaryHitPointsForm = new TemporaryHitPointsForm - { - applyToSelf = true, bonusHitPoints = 15, diceNumber = 0 - } - } - ], - applyFormsParams, - [], - out _, - out _); + rulesetCharacter.ReceiveTemporaryHitPoints( + 15, DurationType.UntilAnyRest, 1, TurnOccurenceType.EndOfTurn, rulesetCharacter.Guid); } } From 4a4eee022c89583ff6a193bd5bb1e01dc62c750f Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 16:36:27 -0700 Subject: [PATCH 17/91] remove ApplyEffectForms dependency from Malakh angelic radiance --- .../UnfinishedBusinessBlueprints/Assets.txt | 2 + .../ConditionMalakhAngelicRadiance.json | 3 +- .../PowerMalakhAngelicRadianceDamage.json | 363 ++++++++++++++++++ SolastaUnfinishedBusiness/Races/Malakh.cs | 122 ++++-- 4 files changed, 449 insertions(+), 41 deletions(-) create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerMalakhAngelicRadianceDamage.json diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 0339547a50..bce74b8c48 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -3528,6 +3528,7 @@ PowerLightningArrowLeap FeatureDefinitionPower FeatureDefinition 5a02449f-aac5-5 PowerLizardfolkHungryJaws FeatureDefinitionPower FeatureDefinition 4a3567e3-1747-59b1-a62e-93d3fd8cb32d PowerMalakhAngelicFlight FeatureDefinitionPower FeatureDefinition 43d93184-e3fe-5e9d-ada6-fc9bdcfec9a1 PowerMalakhAngelicRadiance FeatureDefinitionPower FeatureDefinition da692cfd-2a1e-5c2d-a919-3dafe53ab2cc +PowerMalakhAngelicRadianceDamage FeatureDefinitionPower FeatureDefinition edec8afa-5a52-5ec1-9bff-7f3e0b96d80d PowerMalakhAngelicVisage FeatureDefinitionPower FeatureDefinition d71f91ca-035b-583c-b612-6478801b8a3d PowerMalakhHealingTouch FeatureDefinitionPower FeatureDefinition 76546263-34e5-5f4c-a0f4-1b1bf26d5c45 PowerMartialArcaneArcherArcaneShot FeatureDefinitionPower FeatureDefinition 3bd8b406-0722-5aa1-9e50-f2e5b2d100ae @@ -6348,6 +6349,7 @@ PowerLightningArrowLeap FeatureDefinitionPower FeatureDefinitionPower 5a02449f-a PowerLizardfolkHungryJaws FeatureDefinitionPower FeatureDefinitionPower 4a3567e3-1747-59b1-a62e-93d3fd8cb32d PowerMalakhAngelicFlight FeatureDefinitionPower FeatureDefinitionPower 43d93184-e3fe-5e9d-ada6-fc9bdcfec9a1 PowerMalakhAngelicRadiance FeatureDefinitionPower FeatureDefinitionPower da692cfd-2a1e-5c2d-a919-3dafe53ab2cc +PowerMalakhAngelicRadianceDamage FeatureDefinitionPower FeatureDefinitionPower edec8afa-5a52-5ec1-9bff-7f3e0b96d80d PowerMalakhAngelicVisage FeatureDefinitionPower FeatureDefinitionPower d71f91ca-035b-583c-b612-6478801b8a3d PowerMalakhHealingTouch FeatureDefinitionPower FeatureDefinitionPower 76546263-34e5-5f4c-a0f4-1b1bf26d5c45 PowerMartialArcaneArcherArcaneShot FeatureDefinitionPower FeatureDefinitionPower 3bd8b406-0722-5aa1-9e50-f2e5b2d100ae diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionMalakhAngelicRadiance.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionMalakhAngelicRadiance.json index ce8ea3d1f1..1885f237e5 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionMalakhAngelicRadiance.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionMalakhAngelicRadiance.json @@ -4,7 +4,8 @@ "parentCondition": null, "conditionType": "Beneficial", "features": [ - "Definition:AdditionalDamageMalakhAngelicForm:e7f6ba68-8bdb-524d-b7af-33f4b608b1ea" + "Definition:AdditionalDamageMalakhAngelicForm:e7f6ba68-8bdb-524d-b7af-33f4b608b1ea", + "Definition:PowerMalakhAngelicRadianceDamage:edec8afa-5a52-5ec1-9bff-7f3e0b96d80d" ], "allowMultipleInstances": false, "silentWhenAdded": false, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerMalakhAngelicRadianceDamage.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerMalakhAngelicRadianceDamage.json new file mode 100644 index 0000000000..229674df2c --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerMalakhAngelicRadianceDamage.json @@ -0,0 +1,363 @@ +{ + "$type": "FeatureDefinitionPower, Assembly-CSharp", + "effectDescription": { + "$type": "EffectDescription, Assembly-CSharp", + "rangeType": "Distance", + "rangeParameter": 6, + "halfDamageOnAMiss": false, + "hitAffinitiesByTargetTag": [], + "targetType": "IndividualsUnique", + "itemSelectionType": "None", + "targetParameter": 1, + "targetParameter2": 2, + "emissiveBorder": "None", + "emissiveParameter": 1, + "requiresTargetProximity": false, + "targetProximityDistance": 6, + "targetExcludeCaster": false, + "canBePlacedOnCharacter": true, + "affectOnlyGround": false, + "targetFilteringMethod": "CharacterOnly", + "targetFilteringTag": "No", + "requiresVisibilityForPosition": true, + "inviteOptionalAlly": false, + "slotTypes": [], + "recurrentEffect": "No", + "retargetAfterDeath": false, + "retargetActionType": "Bonus", + "poolFilterDiceNumber": 5, + "poolFilterDieType": "D8", + "trapRangeType": "Triggerer", + "targetConditionName": "", + "targetConditionAsset": null, + "targetSide": "Enemy", + "durationType": "Instantaneous", + "durationParameter": 1, + "endOfEffect": "EndOfTurn", + "hasSavingThrow": false, + "disableSavingThrowOnAllies": false, + "savingThrowAbility": "Dexterity", + "ignoreCover": false, + "grantedConditionOnSave": null, + "rollSaveOnlyIfRelevantForms": false, + "hasShoveRoll": false, + "createdByCharacter": true, + "difficultyClassComputation": "SpellCastingFeature", + "savingThrowDifficultyAbility": "Wisdom", + "fixedSavingThrowDifficultyClass": 15, + "savingThrowAffinitiesBySense": [], + "savingThrowAffinitiesByFamily": [], + "damageAffinitiesByFamily": [], + "advantageForEnemies": false, + "canBeDispersed": false, + "hasVelocity": false, + "velocityCellsPerRound": 2, + "velocityType": "AwayFromSourceOriginalPosition", + "restrictedCreatureFamilies": [], + "immuneCreatureFamilies": [], + "restrictedCharacterSizes": [], + "hasLimitedEffectPool": false, + "effectPoolAmount": 60, + "effectApplication": "All", + "effectFormFilters": [], + "effectForms": [ + { + "$type": "EffectForm, Assembly-CSharp", + "formType": "Damage", + "addBonusMode": "None", + "applyLevel": "No", + "levelType": "ClassLevel", + "levelMultiplier": 1, + "diceByLevelTable": [], + "createdByCharacter": true, + "createdByCondition": false, + "hasSavingThrow": false, + "savingThrowAffinity": "None", + "dcModifier": 0, + "canSaveToCancel": false, + "saveOccurence": "EndOfTurn", + "damageForm": { + "$type": "DamageForm, Assembly-CSharp", + "versatile": false, + "diceNumber": 1, + "dieType": "D4", + "overrideWithBardicInspirationDie": false, + "versatileDieType": "D1", + "bonusDamage": 0, + "damageType": "DamageRadiant", + "ancestryType": "Sorcerer", + "healFromInflictedDamage": "Never", + "hitPointsFloor": 0, + "forceKillOnZeroHp": false, + "specialDeathCondition": null, + "ignoreFlyingCharacters": false, + "ignoreCriticalDoubleDice": false + }, + "hasFilterId": false, + "filterId": 0 + } + ], + "specialFormsDescription": "", + "effectAdvancement": { + "$type": "EffectAdvancement, Assembly-CSharp", + "effectIncrementMethod": "None", + "incrementMultiplier": 1, + "additionalTargetsPerIncrement": 0, + "additionalSubtargetsPerIncrement": 0, + "additionalDicePerIncrement": 0, + "additionalSpellLevelPerIncrement": 0, + "additionalSummonsPerIncrement": 0, + "additionalHPPerIncrement": 0, + "additionalTempHPPerIncrement": 0, + "additionalTargetCellsPerIncrement": 0, + "additionalItemBonus": 0, + "additionalWeaponDie": 0, + "alteredDuration": "None" + }, + "speedType": "Instant", + "speedParameter": 10.0, + "offsetImpactTimeBasedOnDistance": false, + "offsetImpactTimeBasedOnDistanceFactor": 0.1, + "offsetImpactTimePerTarget": 0.0, + "effectParticleParameters": { + "$type": "EffectParticleParameters, Assembly-CSharp", + "casterParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "81560ac3813217d4d9fd281d5e73c234", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "casterSelfParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "casterQuickSpellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "targetParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "effectParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "effectSubTargetParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "zoneParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "beforeImpactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "impactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "5cdd6944009a9f14eae5a1f5e9bc0a82", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectImpactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceParticlePerIndex": "", + "activeEffectSurfaceParticlePerIndexCount": 0, + "emissiveBorderCellStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderCellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderCellEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "forceApplyZoneParticle": false, + "applyEmissionColorOnWeapons": false, + "emissionColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "emissionColorFadeInDuration": 0.0, + "emissionColorFadeOutDuration": 0.0 + }, + "effectAIParameters": { + "$type": "EffectAIParameters, Assembly-CSharp", + "aoeScoreMultiplier": 1.0, + "cooldownForCaster": 0, + "cooldownForBattle": 0, + "sortingScoreMultiplier": 1.0, + "dynamicCooldown": false + }, + "animationMagicEffect": "Animation0", + "lightCounterDispellsEffect": false, + "hideSavingThrowAnimation": false + }, + "delegatedToAction": false, + "surrogateToSpell": null, + "triggeredBySpecialMove": false, + "activationTime": "NoCost", + "autoActivationRequiredTargetSenseType": "None", + "autoActivationRequiredTargetCreatureTag": "", + "autoActivationPowerTag": "", + "triggeringPower": null, + "copyTargetingFromTriggeringPower": false, + "reactionContext": "None", + "damageTypes": [], + "reactionName": "", + "reactionActingCharacterParamIdx": 0, + "reactionAttackerParamIdx": -1, + "hasCastingFailure": false, + "castingSuccessComputation": "CasterLevel", + "canUseInDialog": false, + "disableIfConditionIsOwned": null, + "disableIfTargetConditionIsOwned": null, + "rechargeRate": "AtWill", + "costPerUse": 1, + "spellcastingFeature": null, + "usesDetermination": "Fixed", + "abilityScoreDetermination": "Explicit", + "usesAbilityScoreName": "Charisma", + "fixedUsesPerRecharge": 1, + "abilityScore": "Intelligence", + "attackHitComputation": "AbilityScore", + "fixedAttackHit": 0, + "abilityScoreBonusToAttack": false, + "proficiencyBonusToAttack": false, + "uniqueInstance": false, + "showCasting": false, + "shortTitleOverride": "", + "overriddenPower": null, + "includeBaseDescription": false, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&PowerMalakhAngelicRadianceTitle", + "description": "Feature/&PowerMalakhAngelicRadianceDescription", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "edec8afa-5a52-5ec1-9bff-7f3e0b96d80d", + "contentPack": 9999, + "name": "PowerMalakhAngelicRadianceDamage" +} \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Races/Malakh.cs b/SolastaUnfinishedBusiness/Races/Malakh.cs index 6352c8cba7..ed0302238b 100644 --- a/SolastaUnfinishedBusiness/Races/Malakh.cs +++ b/SolastaUnfinishedBusiness/Races/Malakh.cs @@ -1,4 +1,5 @@ -using JetBrains.Annotations; +using System.Collections.Generic; +using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Api.Helpers; using SolastaUnfinishedBusiness.Api.LanguageExtensions; @@ -230,14 +231,34 @@ private static FeatureDefinitionPower BuildAngelicFlight(FeatureDefinition addit private static FeatureDefinitionPower BuildAngelicRadiance(FeatureDefinition additionalDamageMalakhAngelicForm) { + var powerMalakhAngelicRadianceDamage = FeatureDefinitionPowerBuilder + .Create($"Power{Name}AngelicRadianceDamage") + .SetGuiPresentation($"Power{Name}AngelicRadiance", Category.Feature, hidden: true) + .SetUsesFixed(ActivationTime.NoCost) + .SetShowCasting(false) + .SetEffectDescription( + EffectDescriptionBuilder + .Create() + .SetTargetingData(Side.Enemy, RangeType.Distance, 6, TargetType.IndividualsUnique) + .SetEffectForms(EffectFormBuilder.DamageForm(DamageTypeRadiant, 1, DieType.D4)) + .SetImpactEffectParameters(FeatureDefinitionAdditionalDamages.AdditionalDamageBrandingSmite.impactParticleReference) + .Build()) + .AddToDB(); + + powerMalakhAngelicRadianceDamage.AddCustomSubFeatures( + new ModifyEffectDescriptionAngelicRadianceDamage(powerMalakhAngelicRadianceDamage)); + var conditionAngelicRadiance = ConditionDefinitionBuilder .Create($"Condition{Name}AngelicRadiance") .SetGuiPresentation(Category.Condition, ConditionDefinitions.ConditionDivineFavor) .SetConditionType(ConditionType.Beneficial) - .AddFeatures(additionalDamageMalakhAngelicForm) - .AddCustomSubFeatures(new CharacterTurnEndListenerAngelicRadiance()) + .AddFeatures(additionalDamageMalakhAngelicForm, powerMalakhAngelicRadianceDamage) .AddToDB(); + conditionAngelicRadiance.AddCustomSubFeatures( + AddUsablePowersFromCondition.Marker, + new CharacterTurnEndListenerAngelicRadiance(conditionAngelicRadiance, powerMalakhAngelicRadianceDamage)); + var faerieFireLightSource = SpellDefinitions.FaerieFire.EffectDescription.GetFirstFormOfType(EffectForm.EffectFormType.LightSource); @@ -265,7 +286,39 @@ private static FeatureDefinitionPower BuildAngelicRadiance(FeatureDefinition add return powerMalakhAngelicRadiance; } - private class CharacterTurnEndListenerAngelicRadiance : ICharacterBeforeTurnEndListener + private sealed class ModifyEffectDescriptionAngelicRadianceDamage(FeatureDefinitionPower powerDamage) + : IModifyEffectDescription + { + public bool IsValid(BaseDefinition definition, RulesetCharacter character, EffectDescription effectDescription) + { + return definition == powerDamage; + } + + public EffectDescription GetEffectDescription( + BaseDefinition definition, + EffectDescription effectDescription, + RulesetCharacter character, + RulesetEffect rulesetEffect) + { + var levels = character.TryGetAttributeValue(AttributeDefinitions.CharacterLevel); + var dieType = levels switch + { + < 5 => DieType.D4, + < 9 => DieType.D6, + < 13 => DieType.D8, + < 17 => DieType.D10, + _ => DieType.D12 + }; + + effectDescription.EffectForms[0].DamageForm.DieType = dieType; + + return effectDescription; + } + } + + private sealed class CharacterTurnEndListenerAngelicRadiance( + ConditionDefinition conditionAngelicRadiance, + FeatureDefinitionPower powerAngelicRadianceDamage) : ICharacterBeforeTurnEndListener { public void OnCharacterBeforeTurnEnded(GameLocationCharacter locationCharacter) { @@ -274,52 +327,41 @@ public void OnCharacterBeforeTurnEnded(GameLocationCharacter locationCharacter) return; } - var rulesetCharacter = locationCharacter.RulesetCharacter; + var rulesetDefender = locationCharacter.RulesetCharacter; - if (rulesetCharacter is not { IsDeadOrDyingOrUnconscious: false }) + if (rulesetDefender is not { IsDeadOrDyingOrUnconscious: false } || + rulesetDefender.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionAngelicRadiance.Name, out var activeCondition)) { return; } - var characterLevel = rulesetCharacter.TryGetAttributeValue(AttributeDefinitions.CharacterLevel); - var dieType = characterLevel switch - { - < 5 => DieType.D4, - < 9 => DieType.D6, - < 13 => DieType.D8, - < 17 => DieType.D10, - _ => DieType.D12 - }; + var rulesetAttacker = EffectHelpers.GetCharacterByGuid(activeCondition.SourceGuid); + var attacker = GameLocationCharacter.GetFromActor(rulesetAttacker); + var implementationManager = + ServiceRepository.GetService() as RulesetImplementationManager; - var damageForm = new DamageForm - { - DamageType = DamageTypeRadiant, - DieType = dieType, - DiceNumber = 1, - BonusDamage = 0, - IgnoreCriticalDoubleDice = true - }; + var targets = Gui.Battle.GetContenders(locationCharacter, withinRange: 3); - var implementationService = ServiceRepository.GetService(); + var actionModifiers = new List(); - // ReSharper disable once ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator - foreach (var enemy in Gui.Battle.GetContenders(locationCharacter, withinRange: 3)) + for (var i = 0; i < targets.Count; i++) { - var applyFormsParams = new RulesetImplementationDefinitions.ApplyFormsParams - { - sourceCharacter = rulesetCharacter, - targetCharacter = enemy.RulesetCharacter, - position = enemy.LocationPosition - }; - - EffectHelpers.StartVisualEffect(locationCharacter, enemy, SpellDefinitions.BrandingSmite); - implementationService.ApplyEffectForms( - [new EffectForm { damageForm = damageForm }], - applyFormsParams, - [DamageTypeRadiant], - out _, - out _); + actionModifiers.Add(new ActionModifier()); } + + var usablePower = PowerProvider.Get(powerAngelicRadianceDamage, rulesetAttacker); + var actionParams = new CharacterActionParams(attacker, ActionDefinitions.Id.SpendPower) + { + ActionModifiers = actionModifiers, + RulesetEffect = implementationManager + .MyInstantiateEffectPower(rulesetAttacker, usablePower, false), + UsablePower = usablePower, + targetCharacters = targets + }; + + ServiceRepository.GetService()? + .ExecuteAction(actionParams, null, true); } } } From 365d247e937685a31f3e23cbce04c224d92261fd Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 16:36:42 -0700 Subject: [PATCH 18/91] update portraits --- .../Portraits/TieflingMale3.png | Bin 0 -> 57260 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 SolastaUnfinishedBusiness/Portraits/TieflingMale3.png diff --git a/SolastaUnfinishedBusiness/Portraits/TieflingMale3.png b/SolastaUnfinishedBusiness/Portraits/TieflingMale3.png new file mode 100644 index 0000000000000000000000000000000000000000..879ea654252e15e1fe7d3dc99eaab186822540fe GIT binary patch literal 57260 zcmWh!Wn9!v7yWP0wS;sm4N^;|uyjg;fJlRcbc)2%-CYtQASfUq4U4pZAR!?glG2^; z^M0B;-|o!(&Y3gk&W+L5R3^Zs#svU?KvhLS7XU#2g&-6*0v zM{8SW>s#aXUA4vEK4#%lGEZ;L%+C*vltiyC_P>1j@^Gpl`Hc|{CN>ldg+Q?Ja0oFl z2}r5fVAwc3?CdZI1Q!gZfDu2T2~}$sFEv>tkD-SQC##;4yp6nsxSR$dqc{>y zhLyr6J4^{TJ+;X{M#2AmezK>vbt)LVtWIhuJ=aGB>0ut;ZeB- zX1ZGVV#aS1QZ%gG@%Xj+^22{trXqDMgVJ+E_3Y1QTikv9FIT%?NQ?6m5QLZ+Fkq58 zI65DX*UnU@S4Vhab13isZf!{kur)I1%nV`0#<{uK_}!3Kj&gI+Rj)}1jD2m|6zjb; z`qeK8<@VYpBr#dY!at+xbC!>Tt+|b z=wi~-Xm)358pzyp0$=`hSm4>)E1`nOw=?tbVNFI z9$k&Ke=4u~Smt85G1r%Ar4}C-{d=@y`SP%NU@#mT)=AEEC?!`)rS*SEFnH-|>H$Pd z4^Q>|wdETP%a(t4f0`@wjhP7QI!jUn}%N9dQzAz_cq~Lws}7`=HJ>Ze)4#!5zF>jSqU%4 z)LHD9>}k2VHVU1KZ3ika^X`;n+nH#?-i75u$kw&=;c2J!)mZR@a9J8VUm=3_W!d{L z;=j#Yl6Ywd28bu)B`v<)-m8x-UGmX)QD)nvF*f~4)FHD?k`A7~@t$zYM~spvaIBQo zZrUQyI}Pv5-*65LfG6?WJLmQXTz-x%H;D1a$M)53&(m!B;fL-}ht9Asz#rM%_A)U( z03)3ZnKGD+h*1IBZ6clFIPxZORGX=oLbp}9+)BvxoN$kgwM5>JQaPwB&)ArCkjx0^ z0C!;W+H0JEFe}RQF{ya^7FXGq`7-PF}}aDj=KA3vzuWhmjXDY@Kn4lS94P_UC$O`(7WE_``_F?6KV?{!Xg&KZ>AJucLlJGGuR+sdN;?loM<-*R9=Yz͐Ap^(ojX(aS3R`#Qjx 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
*+}|V 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 Date: Thu, 11 Jul 2024 17:16:45 -0700 Subject: [PATCH 19/91] remove ApplyEffectForms dependency from Path of the Elements elemental fury --- ...esentation-InvalidSyntaxTranslation-en.txt | 3 + .../UnfinishedBusinessBlueprints/Assets.txt | 6 + .../PowerPathOfTheElementsBlizzard.json | 363 ++++++++++++++++++ .../PowerPathOfTheElementsStorm.json | 363 ++++++++++++++++++ .../PowerPathOfTheElementsWildfire.json | 363 ++++++++++++++++++ .../Subclasses/PathOfTheElements.cs | 187 ++++++--- 6 files changed, 1223 insertions(+), 62 deletions(-) create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsBlizzard.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsStorm.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsWildfire.json diff --git a/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt b/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt index aca2a99609..533301a318 100644 --- a/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt +++ b/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt @@ -1351,6 +1351,9 @@ PowerMetamagicTransmutedSpellDamagePoison Title='Poison Damage'. PowerMetamagicTransmutedSpellDamagePoison Description='Replace the magic effect damage type with Poison Damage.'. PowerMetamagicTransmutedSpellDamageThunder Title='Thunder Damage'. PowerMetamagicTransmutedSpellDamageThunder Description='Replace the magic effect damage type with Thunder Damage.'. +PowerPathOfTheElementsBlizzard Description='While you are raging, all enemy creatures within 5 feet of you at the end of your turn take 1d6 Cold damage. This damage increases to 1d10 at 6th level, 2d6 at 10th level, and 2d10 at 14th level.'. +PowerPathOfTheElementsStorm Description='While you are raging, all enemy creatures within 5 feet of you at the end of your turn take 1d6 Lightning damage. This damage increases to 1d10 at 6th level, 2d6 at 10th level, and 2d10 at 14th level.'. +PowerPathOfTheElementsWildfire Description='While you are raging, all enemy creatures within 5 feet of you at the end of your turn take 1d6 Fire damage. This damage increases to 1d10 at 6th level, 2d6 at 10th level, and 2d10 at 14th level.'. PowerPathOfTheWildMagicDrain Title='Wild Surge: Drain'. PowerPathOfTheWildMagicDrain Description='Each creature within 30 feet of you must succeed on a Constitution saving throw or take 1d12 necrotic damage. You also gain 1d12 temporary hit points.'. PowerPathOfTheWildMagicWildSurgeAura Title='Wild Surge: Aura'. diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index bce74b8c48..6609385b7b 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -3636,6 +3636,7 @@ PowerPathOfTheBeastInfectiousFury FeatureDefinitionPower FeatureDefinition 8ce5b PowerPathOfTheBeastInfectiousFuryCompelledStrike FeatureDefinitionPower FeatureDefinition 10081323-37d2-55f8-8d01-6c5e905025be PowerPathOfTheBeastInfectiousFuryMindlash FeatureDefinitionPower FeatureDefinition ff2e786c-c0ba-5934-a9e2-b5af9a707af4 PowerPathOfTheBeastTailSwipe FeatureDefinitionPower FeatureDefinition c42d99d0-5dfb-5a3a-a798-8626d73bd649 +PowerPathOfTheElementsBlizzard FeatureDefinitionPower FeatureDefinition d7a31d80-842a-501f-be65-27c349571abd PowerPathOfTheElementsElementalBlessingBlizzard FeatureDefinitionPower FeatureDefinition d5620bb2-934e-5aa0-b853-c823c68affc5 PowerPathOfTheElementsElementalBlessingStorm FeatureDefinitionPower FeatureDefinition fcf7651f-439e-5d9c-85e6-a83cc83ebc3c PowerPathOfTheElementsElementalBlessingWildfire FeatureDefinitionPower FeatureDefinition d375a137-21db-559f-9874-69d4d17bf698 @@ -3643,6 +3644,8 @@ PowerPathOfTheElementsElementalBurstBlizzard FeatureDefinitionPower FeatureDefin PowerPathOfTheElementsElementalBurstStorm FeatureDefinitionPower FeatureDefinition c375d81c-2479-5e97-b2a2-a50d80da8e9e PowerPathOfTheElementsElementalBurstWildfire FeatureDefinitionPower FeatureDefinition de072fc8-7fe0-5780-901e-9353517c02a0 PowerPathOfTheElementsElementalConduitStorm FeatureDefinitionPower FeatureDefinition 19b22e60-ee56-5272-97c1-93016008278c +PowerPathOfTheElementsStorm FeatureDefinitionPower FeatureDefinition daeb69ac-02ba-54ee-ba72-8929ebc573cb +PowerPathOfTheElementsWildfire FeatureDefinitionPower FeatureDefinition 316fcbaf-9d5f-5dd7-8a67-cdedbb86b2cb PowerPathOfTheLightEyesOfTruth FeatureDefinitionPower FeatureDefinition 8c1406f1-2959-5141-94fb-474d3f483bf2 PowerPathOfTheLightIlluminatingBurst FeatureDefinitionPower FeatureDefinition e4e99b02-b403-5b0a-9a8b-2b0343d90cf6 PowerPathOfTheLightIlluminatingBurstInitiator FeatureDefinitionPower FeatureDefinition 1b0b222a-d63b-5a1d-a7ff-32e0daee1c22 @@ -6456,6 +6459,7 @@ PowerPathOfTheBeastInfectiousFury FeatureDefinitionPower FeatureDefinitionPower PowerPathOfTheBeastInfectiousFuryCompelledStrike FeatureDefinitionPower FeatureDefinitionPower 10081323-37d2-55f8-8d01-6c5e905025be PowerPathOfTheBeastInfectiousFuryMindlash FeatureDefinitionPower FeatureDefinitionPower ff2e786c-c0ba-5934-a9e2-b5af9a707af4 PowerPathOfTheBeastTailSwipe FeatureDefinitionPower FeatureDefinitionPower c42d99d0-5dfb-5a3a-a798-8626d73bd649 +PowerPathOfTheElementsBlizzard FeatureDefinitionPower FeatureDefinitionPower d7a31d80-842a-501f-be65-27c349571abd PowerPathOfTheElementsElementalBlessingBlizzard FeatureDefinitionPower FeatureDefinitionPower d5620bb2-934e-5aa0-b853-c823c68affc5 PowerPathOfTheElementsElementalBlessingStorm FeatureDefinitionPower FeatureDefinitionPower fcf7651f-439e-5d9c-85e6-a83cc83ebc3c PowerPathOfTheElementsElementalBlessingWildfire FeatureDefinitionPower FeatureDefinitionPower d375a137-21db-559f-9874-69d4d17bf698 @@ -6463,6 +6467,8 @@ PowerPathOfTheElementsElementalBurstBlizzard FeatureDefinitionPower FeatureDefin PowerPathOfTheElementsElementalBurstStorm FeatureDefinitionPower FeatureDefinitionPower c375d81c-2479-5e97-b2a2-a50d80da8e9e PowerPathOfTheElementsElementalBurstWildfire FeatureDefinitionPower FeatureDefinitionPower de072fc8-7fe0-5780-901e-9353517c02a0 PowerPathOfTheElementsElementalConduitStorm FeatureDefinitionPower FeatureDefinitionPower 19b22e60-ee56-5272-97c1-93016008278c +PowerPathOfTheElementsStorm FeatureDefinitionPower FeatureDefinitionPower daeb69ac-02ba-54ee-ba72-8929ebc573cb +PowerPathOfTheElementsWildfire FeatureDefinitionPower FeatureDefinitionPower 316fcbaf-9d5f-5dd7-8a67-cdedbb86b2cb PowerPathOfTheLightEyesOfTruth FeatureDefinitionPower FeatureDefinitionPower 8c1406f1-2959-5141-94fb-474d3f483bf2 PowerPathOfTheLightIlluminatingBurst FeatureDefinitionPower FeatureDefinitionPower e4e99b02-b403-5b0a-9a8b-2b0343d90cf6 PowerPathOfTheLightIlluminatingBurstInitiator FeatureDefinitionPower FeatureDefinitionPower 1b0b222a-d63b-5a1d-a7ff-32e0daee1c22 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsBlizzard.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsBlizzard.json new file mode 100644 index 0000000000..883e44a9bf --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsBlizzard.json @@ -0,0 +1,363 @@ +{ + "$type": "FeatureDefinitionPower, Assembly-CSharp", + "effectDescription": { + "$type": "EffectDescription, Assembly-CSharp", + "rangeType": "Distance", + "rangeParameter": 6, + "halfDamageOnAMiss": false, + "hitAffinitiesByTargetTag": [], + "targetType": "IndividualsUnique", + "itemSelectionType": "None", + "targetParameter": 1, + "targetParameter2": 2, + "emissiveBorder": "None", + "emissiveParameter": 1, + "requiresTargetProximity": false, + "targetProximityDistance": 6, + "targetExcludeCaster": false, + "canBePlacedOnCharacter": true, + "affectOnlyGround": false, + "targetFilteringMethod": "CharacterOnly", + "targetFilteringTag": "No", + "requiresVisibilityForPosition": true, + "inviteOptionalAlly": false, + "slotTypes": [], + "recurrentEffect": "No", + "retargetAfterDeath": false, + "retargetActionType": "Bonus", + "poolFilterDiceNumber": 5, + "poolFilterDieType": "D8", + "trapRangeType": "Triggerer", + "targetConditionName": "", + "targetConditionAsset": null, + "targetSide": "Enemy", + "durationType": "Instantaneous", + "durationParameter": 1, + "endOfEffect": "EndOfTurn", + "hasSavingThrow": false, + "disableSavingThrowOnAllies": false, + "savingThrowAbility": "Dexterity", + "ignoreCover": false, + "grantedConditionOnSave": null, + "rollSaveOnlyIfRelevantForms": false, + "hasShoveRoll": false, + "createdByCharacter": true, + "difficultyClassComputation": "SpellCastingFeature", + "savingThrowDifficultyAbility": "Wisdom", + "fixedSavingThrowDifficultyClass": 15, + "savingThrowAffinitiesBySense": [], + "savingThrowAffinitiesByFamily": [], + "damageAffinitiesByFamily": [], + "advantageForEnemies": false, + "canBeDispersed": false, + "hasVelocity": false, + "velocityCellsPerRound": 2, + "velocityType": "AwayFromSourceOriginalPosition", + "restrictedCreatureFamilies": [], + "immuneCreatureFamilies": [], + "restrictedCharacterSizes": [], + "hasLimitedEffectPool": false, + "effectPoolAmount": 60, + "effectApplication": "All", + "effectFormFilters": [], + "effectForms": [ + { + "$type": "EffectForm, Assembly-CSharp", + "formType": "Damage", + "addBonusMode": "None", + "applyLevel": "No", + "levelType": "ClassLevel", + "levelMultiplier": 1, + "diceByLevelTable": [], + "createdByCharacter": true, + "createdByCondition": false, + "hasSavingThrow": false, + "savingThrowAffinity": "None", + "dcModifier": 0, + "canSaveToCancel": false, + "saveOccurence": "EndOfTurn", + "damageForm": { + "$type": "DamageForm, Assembly-CSharp", + "versatile": false, + "diceNumber": 1, + "dieType": "D6", + "overrideWithBardicInspirationDie": false, + "versatileDieType": "D1", + "bonusDamage": 0, + "damageType": "DamageCold", + "ancestryType": "Sorcerer", + "healFromInflictedDamage": "Never", + "hitPointsFloor": 0, + "forceKillOnZeroHp": false, + "specialDeathCondition": null, + "ignoreFlyingCharacters": false, + "ignoreCriticalDoubleDice": false + }, + "hasFilterId": false, + "filterId": 0 + } + ], + "specialFormsDescription": "", + "effectAdvancement": { + "$type": "EffectAdvancement, Assembly-CSharp", + "effectIncrementMethod": "None", + "incrementMultiplier": 1, + "additionalTargetsPerIncrement": 0, + "additionalSubtargetsPerIncrement": 0, + "additionalDicePerIncrement": 0, + "additionalSpellLevelPerIncrement": 0, + "additionalSummonsPerIncrement": 0, + "additionalHPPerIncrement": 0, + "additionalTempHPPerIncrement": 0, + "additionalTargetCellsPerIncrement": 0, + "additionalItemBonus": 0, + "additionalWeaponDie": 0, + "alteredDuration": "None" + }, + "speedType": "Instant", + "speedParameter": 10.0, + "offsetImpactTimeBasedOnDistance": false, + "offsetImpactTimeBasedOnDistanceFactor": 0.1, + "offsetImpactTimePerTarget": 0.0, + "effectParticleParameters": { + "$type": "EffectParticleParameters, Assembly-CSharp", + "casterParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "81560ac3813217d4d9fd281d5e73c234", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "casterSelfParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "casterQuickSpellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "targetParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "effectParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "effectSubTargetParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "zoneParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "beforeImpactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "impactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "51cf46189b99f0f48bfbf3b8c6e4a355", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectImpactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceParticlePerIndex": "", + "activeEffectSurfaceParticlePerIndexCount": 0, + "emissiveBorderCellStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderCellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderCellEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "forceApplyZoneParticle": false, + "applyEmissionColorOnWeapons": false, + "emissionColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "emissionColorFadeInDuration": 0.0, + "emissionColorFadeOutDuration": 0.0 + }, + "effectAIParameters": { + "$type": "EffectAIParameters, Assembly-CSharp", + "aoeScoreMultiplier": 1.0, + "cooldownForCaster": 0, + "cooldownForBattle": 0, + "sortingScoreMultiplier": 1.0, + "dynamicCooldown": false + }, + "animationMagicEffect": "Animation0", + "lightCounterDispellsEffect": false, + "hideSavingThrowAnimation": false + }, + "delegatedToAction": false, + "surrogateToSpell": null, + "triggeredBySpecialMove": false, + "activationTime": "NoCost", + "autoActivationRequiredTargetSenseType": "None", + "autoActivationRequiredTargetCreatureTag": "", + "autoActivationPowerTag": "", + "triggeringPower": null, + "copyTargetingFromTriggeringPower": false, + "reactionContext": "None", + "damageTypes": [], + "reactionName": "", + "reactionActingCharacterParamIdx": 0, + "reactionAttackerParamIdx": -1, + "hasCastingFailure": false, + "castingSuccessComputation": "CasterLevel", + "canUseInDialog": false, + "disableIfConditionIsOwned": null, + "disableIfTargetConditionIsOwned": null, + "rechargeRate": "AtWill", + "costPerUse": 1, + "spellcastingFeature": null, + "usesDetermination": "Fixed", + "abilityScoreDetermination": "Explicit", + "usesAbilityScoreName": "Charisma", + "fixedUsesPerRecharge": 1, + "abilityScore": "Intelligence", + "attackHitComputation": "AbilityScore", + "fixedAttackHit": 0, + "abilityScoreBonusToAttack": false, + "proficiencyBonusToAttack": false, + "uniqueInstance": false, + "showCasting": false, + "shortTitleOverride": "", + "overriddenPower": null, + "includeBaseDescription": false, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&AncestryPathOfTheElementsWildfireTitle", + "description": "While you are raging, all enemy creatures within 5 feet of you at the end of your turn take 1d6 Cold damage. This damage increases to 1d10 at 6th level, 2d6 at 10th level, and 2d10 at 14th level.", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "d7a31d80-842a-501f-be65-27c349571abd", + "contentPack": 9999, + "name": "PowerPathOfTheElementsBlizzard" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsStorm.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsStorm.json new file mode 100644 index 0000000000..b3c7fb42fc --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsStorm.json @@ -0,0 +1,363 @@ +{ + "$type": "FeatureDefinitionPower, Assembly-CSharp", + "effectDescription": { + "$type": "EffectDescription, Assembly-CSharp", + "rangeType": "Distance", + "rangeParameter": 6, + "halfDamageOnAMiss": false, + "hitAffinitiesByTargetTag": [], + "targetType": "IndividualsUnique", + "itemSelectionType": "None", + "targetParameter": 1, + "targetParameter2": 2, + "emissiveBorder": "None", + "emissiveParameter": 1, + "requiresTargetProximity": false, + "targetProximityDistance": 6, + "targetExcludeCaster": false, + "canBePlacedOnCharacter": true, + "affectOnlyGround": false, + "targetFilteringMethod": "CharacterOnly", + "targetFilteringTag": "No", + "requiresVisibilityForPosition": true, + "inviteOptionalAlly": false, + "slotTypes": [], + "recurrentEffect": "No", + "retargetAfterDeath": false, + "retargetActionType": "Bonus", + "poolFilterDiceNumber": 5, + "poolFilterDieType": "D8", + "trapRangeType": "Triggerer", + "targetConditionName": "", + "targetConditionAsset": null, + "targetSide": "Enemy", + "durationType": "Instantaneous", + "durationParameter": 1, + "endOfEffect": "EndOfTurn", + "hasSavingThrow": false, + "disableSavingThrowOnAllies": false, + "savingThrowAbility": "Dexterity", + "ignoreCover": false, + "grantedConditionOnSave": null, + "rollSaveOnlyIfRelevantForms": false, + "hasShoveRoll": false, + "createdByCharacter": true, + "difficultyClassComputation": "SpellCastingFeature", + "savingThrowDifficultyAbility": "Wisdom", + "fixedSavingThrowDifficultyClass": 15, + "savingThrowAffinitiesBySense": [], + "savingThrowAffinitiesByFamily": [], + "damageAffinitiesByFamily": [], + "advantageForEnemies": false, + "canBeDispersed": false, + "hasVelocity": false, + "velocityCellsPerRound": 2, + "velocityType": "AwayFromSourceOriginalPosition", + "restrictedCreatureFamilies": [], + "immuneCreatureFamilies": [], + "restrictedCharacterSizes": [], + "hasLimitedEffectPool": false, + "effectPoolAmount": 60, + "effectApplication": "All", + "effectFormFilters": [], + "effectForms": [ + { + "$type": "EffectForm, Assembly-CSharp", + "formType": "Damage", + "addBonusMode": "None", + "applyLevel": "No", + "levelType": "ClassLevel", + "levelMultiplier": 1, + "diceByLevelTable": [], + "createdByCharacter": true, + "createdByCondition": false, + "hasSavingThrow": false, + "savingThrowAffinity": "None", + "dcModifier": 0, + "canSaveToCancel": false, + "saveOccurence": "EndOfTurn", + "damageForm": { + "$type": "DamageForm, Assembly-CSharp", + "versatile": false, + "diceNumber": 1, + "dieType": "D6", + "overrideWithBardicInspirationDie": false, + "versatileDieType": "D1", + "bonusDamage": 0, + "damageType": "DamageLightning", + "ancestryType": "Sorcerer", + "healFromInflictedDamage": "Never", + "hitPointsFloor": 0, + "forceKillOnZeroHp": false, + "specialDeathCondition": null, + "ignoreFlyingCharacters": false, + "ignoreCriticalDoubleDice": false + }, + "hasFilterId": false, + "filterId": 0 + } + ], + "specialFormsDescription": "", + "effectAdvancement": { + "$type": "EffectAdvancement, Assembly-CSharp", + "effectIncrementMethod": "None", + "incrementMultiplier": 1, + "additionalTargetsPerIncrement": 0, + "additionalSubtargetsPerIncrement": 0, + "additionalDicePerIncrement": 0, + "additionalSpellLevelPerIncrement": 0, + "additionalSummonsPerIncrement": 0, + "additionalHPPerIncrement": 0, + "additionalTempHPPerIncrement": 0, + "additionalTargetCellsPerIncrement": 0, + "additionalItemBonus": 0, + "additionalWeaponDie": 0, + "alteredDuration": "None" + }, + "speedType": "Instant", + "speedParameter": 10.0, + "offsetImpactTimeBasedOnDistance": false, + "offsetImpactTimeBasedOnDistanceFactor": 0.1, + "offsetImpactTimePerTarget": 0.0, + "effectParticleParameters": { + "$type": "EffectParticleParameters, Assembly-CSharp", + "casterParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "81560ac3813217d4d9fd281d5e73c234", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "casterSelfParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "casterQuickSpellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "targetParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "effectParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "effectSubTargetParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "zoneParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "beforeImpactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "impactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "7ee946178940d56438b69281484e7a39", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectImpactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceParticlePerIndex": "", + "activeEffectSurfaceParticlePerIndexCount": 0, + "emissiveBorderCellStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderCellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderCellEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "forceApplyZoneParticle": false, + "applyEmissionColorOnWeapons": false, + "emissionColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "emissionColorFadeInDuration": 0.0, + "emissionColorFadeOutDuration": 0.0 + }, + "effectAIParameters": { + "$type": "EffectAIParameters, Assembly-CSharp", + "aoeScoreMultiplier": 1.0, + "cooldownForCaster": 0, + "cooldownForBattle": 0, + "sortingScoreMultiplier": 1.0, + "dynamicCooldown": false + }, + "animationMagicEffect": "Animation0", + "lightCounterDispellsEffect": false, + "hideSavingThrowAnimation": false + }, + "delegatedToAction": false, + "surrogateToSpell": null, + "triggeredBySpecialMove": false, + "activationTime": "NoCost", + "autoActivationRequiredTargetSenseType": "None", + "autoActivationRequiredTargetCreatureTag": "", + "autoActivationPowerTag": "", + "triggeringPower": null, + "copyTargetingFromTriggeringPower": false, + "reactionContext": "None", + "damageTypes": [], + "reactionName": "", + "reactionActingCharacterParamIdx": 0, + "reactionAttackerParamIdx": -1, + "hasCastingFailure": false, + "castingSuccessComputation": "CasterLevel", + "canUseInDialog": false, + "disableIfConditionIsOwned": null, + "disableIfTargetConditionIsOwned": null, + "rechargeRate": "AtWill", + "costPerUse": 1, + "spellcastingFeature": null, + "usesDetermination": "Fixed", + "abilityScoreDetermination": "Explicit", + "usesAbilityScoreName": "Charisma", + "fixedUsesPerRecharge": 1, + "abilityScore": "Intelligence", + "attackHitComputation": "AbilityScore", + "fixedAttackHit": 0, + "abilityScoreBonusToAttack": false, + "proficiencyBonusToAttack": false, + "uniqueInstance": false, + "showCasting": false, + "shortTitleOverride": "", + "overriddenPower": null, + "includeBaseDescription": false, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&AncestryPathOfTheElementsWildfireTitle", + "description": "While you are raging, all enemy creatures within 5 feet of you at the end of your turn take 1d6 Lightning damage. This damage increases to 1d10 at 6th level, 2d6 at 10th level, and 2d10 at 14th level.", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "daeb69ac-02ba-54ee-ba72-8929ebc573cb", + "contentPack": 9999, + "name": "PowerPathOfTheElementsStorm" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsWildfire.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsWildfire.json new file mode 100644 index 0000000000..6faa6ce7f1 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheElementsWildfire.json @@ -0,0 +1,363 @@ +{ + "$type": "FeatureDefinitionPower, Assembly-CSharp", + "effectDescription": { + "$type": "EffectDescription, Assembly-CSharp", + "rangeType": "Distance", + "rangeParameter": 6, + "halfDamageOnAMiss": false, + "hitAffinitiesByTargetTag": [], + "targetType": "IndividualsUnique", + "itemSelectionType": "None", + "targetParameter": 1, + "targetParameter2": 2, + "emissiveBorder": "None", + "emissiveParameter": 1, + "requiresTargetProximity": false, + "targetProximityDistance": 6, + "targetExcludeCaster": false, + "canBePlacedOnCharacter": true, + "affectOnlyGround": false, + "targetFilteringMethod": "CharacterOnly", + "targetFilteringTag": "No", + "requiresVisibilityForPosition": true, + "inviteOptionalAlly": false, + "slotTypes": [], + "recurrentEffect": "No", + "retargetAfterDeath": false, + "retargetActionType": "Bonus", + "poolFilterDiceNumber": 5, + "poolFilterDieType": "D8", + "trapRangeType": "Triggerer", + "targetConditionName": "", + "targetConditionAsset": null, + "targetSide": "Enemy", + "durationType": "Instantaneous", + "durationParameter": 1, + "endOfEffect": "EndOfTurn", + "hasSavingThrow": false, + "disableSavingThrowOnAllies": false, + "savingThrowAbility": "Dexterity", + "ignoreCover": false, + "grantedConditionOnSave": null, + "rollSaveOnlyIfRelevantForms": false, + "hasShoveRoll": false, + "createdByCharacter": true, + "difficultyClassComputation": "SpellCastingFeature", + "savingThrowDifficultyAbility": "Wisdom", + "fixedSavingThrowDifficultyClass": 15, + "savingThrowAffinitiesBySense": [], + "savingThrowAffinitiesByFamily": [], + "damageAffinitiesByFamily": [], + "advantageForEnemies": false, + "canBeDispersed": false, + "hasVelocity": false, + "velocityCellsPerRound": 2, + "velocityType": "AwayFromSourceOriginalPosition", + "restrictedCreatureFamilies": [], + "immuneCreatureFamilies": [], + "restrictedCharacterSizes": [], + "hasLimitedEffectPool": false, + "effectPoolAmount": 60, + "effectApplication": "All", + "effectFormFilters": [], + "effectForms": [ + { + "$type": "EffectForm, Assembly-CSharp", + "formType": "Damage", + "addBonusMode": "None", + "applyLevel": "No", + "levelType": "ClassLevel", + "levelMultiplier": 1, + "diceByLevelTable": [], + "createdByCharacter": true, + "createdByCondition": false, + "hasSavingThrow": false, + "savingThrowAffinity": "None", + "dcModifier": 0, + "canSaveToCancel": false, + "saveOccurence": "EndOfTurn", + "damageForm": { + "$type": "DamageForm, Assembly-CSharp", + "versatile": false, + "diceNumber": 1, + "dieType": "D6", + "overrideWithBardicInspirationDie": false, + "versatileDieType": "D1", + "bonusDamage": 0, + "damageType": "DamageFire", + "ancestryType": "Sorcerer", + "healFromInflictedDamage": "Never", + "hitPointsFloor": 0, + "forceKillOnZeroHp": false, + "specialDeathCondition": null, + "ignoreFlyingCharacters": false, + "ignoreCriticalDoubleDice": false + }, + "hasFilterId": false, + "filterId": 0 + } + ], + "specialFormsDescription": "", + "effectAdvancement": { + "$type": "EffectAdvancement, Assembly-CSharp", + "effectIncrementMethod": "None", + "incrementMultiplier": 1, + "additionalTargetsPerIncrement": 0, + "additionalSubtargetsPerIncrement": 0, + "additionalDicePerIncrement": 0, + "additionalSpellLevelPerIncrement": 0, + "additionalSummonsPerIncrement": 0, + "additionalHPPerIncrement": 0, + "additionalTempHPPerIncrement": 0, + "additionalTargetCellsPerIncrement": 0, + "additionalItemBonus": 0, + "additionalWeaponDie": 0, + "alteredDuration": "None" + }, + "speedType": "Instant", + "speedParameter": 10.0, + "offsetImpactTimeBasedOnDistance": false, + "offsetImpactTimeBasedOnDistanceFactor": 0.1, + "offsetImpactTimePerTarget": 0.0, + "effectParticleParameters": { + "$type": "EffectParticleParameters, Assembly-CSharp", + "casterParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "81560ac3813217d4d9fd281d5e73c234", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "casterSelfParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "casterQuickSpellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "targetParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "effectParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "effectSubTargetParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "zoneParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "beforeImpactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "impactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "e446eddf529bfc94c9b972fc384b9986", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectImpactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceParticlePerIndex": "", + "activeEffectSurfaceParticlePerIndexCount": 0, + "emissiveBorderCellStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderCellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderCellEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "forceApplyZoneParticle": false, + "applyEmissionColorOnWeapons": false, + "emissionColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "emissionColorFadeInDuration": 0.0, + "emissionColorFadeOutDuration": 0.0 + }, + "effectAIParameters": { + "$type": "EffectAIParameters, Assembly-CSharp", + "aoeScoreMultiplier": 1.0, + "cooldownForCaster": 0, + "cooldownForBattle": 0, + "sortingScoreMultiplier": 1.0, + "dynamicCooldown": false + }, + "animationMagicEffect": "Animation0", + "lightCounterDispellsEffect": false, + "hideSavingThrowAnimation": false + }, + "delegatedToAction": false, + "surrogateToSpell": null, + "triggeredBySpecialMove": false, + "activationTime": "NoCost", + "autoActivationRequiredTargetSenseType": "None", + "autoActivationRequiredTargetCreatureTag": "", + "autoActivationPowerTag": "", + "triggeringPower": null, + "copyTargetingFromTriggeringPower": false, + "reactionContext": "None", + "damageTypes": [], + "reactionName": "", + "reactionActingCharacterParamIdx": 0, + "reactionAttackerParamIdx": -1, + "hasCastingFailure": false, + "castingSuccessComputation": "CasterLevel", + "canUseInDialog": false, + "disableIfConditionIsOwned": null, + "disableIfTargetConditionIsOwned": null, + "rechargeRate": "AtWill", + "costPerUse": 1, + "spellcastingFeature": null, + "usesDetermination": "Fixed", + "abilityScoreDetermination": "Explicit", + "usesAbilityScoreName": "Charisma", + "fixedUsesPerRecharge": 1, + "abilityScore": "Intelligence", + "attackHitComputation": "AbilityScore", + "fixedAttackHit": 0, + "abilityScoreBonusToAttack": false, + "proficiencyBonusToAttack": false, + "uniqueInstance": false, + "showCasting": false, + "shortTitleOverride": "", + "overriddenPower": null, + "includeBaseDescription": false, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&AncestryPathOfTheElementsWildfireTitle", + "description": "While you are raging, all enemy creatures within 5 feet of you at the end of your turn take 1d6 Fire damage. This damage increases to 1d10 at 6th level, 2d6 at 10th level, and 2d10 at 14th level.", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "316fcbaf-9d5f-5dd7-8a67-cdedbb86b2cb", + "contentPack": 9999, + "name": "PowerPathOfTheElementsWildfire" +} \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Subclasses/PathOfTheElements.cs b/SolastaUnfinishedBusiness/Subclasses/PathOfTheElements.cs index 5a2e193a53..9cc79d6143 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PathOfTheElements.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PathOfTheElements.cs @@ -1,4 +1,5 @@ using System.Collections; +using System.Collections.Generic; using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Api.Helpers; @@ -38,6 +39,24 @@ public PathOfTheElements() // Elemental Fury + var powerStorm = FeatureDefinitionPowerBuilder + .Create($"Power{Name}Storm") + .SetGuiPresentation($"Ancestry{Name}Wildfire", Category.Feature, + Gui.Format($"Feature/&Ancestry{Name}AllDescription", Gui.Localize("Rules/&DamageLightningTitle")), + hidden: true) + .SetUsesFixed(ActivationTime.NoCost) + .SetShowCasting(false) + .SetEffectDescription( + EffectDescriptionBuilder + .Create() + .SetTargetingData(Side.Enemy, RangeType.Distance, 6, TargetType.IndividualsUnique) + .SetEffectForms(EffectFormBuilder.DamageForm(DamageTypeLightning, 1, DieType.D6)) + .SetImpactEffectParameters(SpellDefinitions.LightningBolt) + .Build()) + .AddToDB(); + + powerStorm.AddCustomSubFeatures(new ModifyEffectDescriptionElementalFuryDamage(powerStorm)); + var ancestryStorm = FeatureDefinitionAncestryBuilder .Create($"Ancestry{Name}Storm") .SetGuiPresentation(Category.Feature, @@ -46,8 +65,25 @@ public PathOfTheElements() .SetDamageType(DamageTypeLightning) .AddToDB(); - ancestryStorm.AddCustomSubFeatures( - new CharacterTurnEndedElementalFury(ancestryStorm, SpellDefinitions.LightningBolt)); + ancestryStorm.AddCustomSubFeatures(new CharacterTurnEndedElementalFury(powerStorm)); + + var powerBlizzard = FeatureDefinitionPowerBuilder + .Create($"Power{Name}Blizzard") + .SetGuiPresentation($"Ancestry{Name}Wildfire", Category.Feature, + Gui.Format($"Feature/&Ancestry{Name}AllDescription", Gui.Localize("Rules/&DamageColdTitle")), + hidden: true) + .SetUsesFixed(ActivationTime.NoCost) + .SetShowCasting(false) + .SetEffectDescription( + EffectDescriptionBuilder + .Create() + .SetTargetingData(Side.Enemy, RangeType.Distance, 6, TargetType.IndividualsUnique) + .SetEffectForms(EffectFormBuilder.DamageForm(DamageTypeCold, 1, DieType.D6)) + .SetImpactEffectParameters(SpellDefinitions.RayOfFrost) + .Build()) + .AddToDB(); + + powerBlizzard.AddCustomSubFeatures(new ModifyEffectDescriptionElementalFuryDamage(powerBlizzard)); var ancestryBlizzard = FeatureDefinitionAncestryBuilder .Create($"Ancestry{Name}Blizzard") @@ -57,8 +93,25 @@ public PathOfTheElements() .SetDamageType(DamageTypeCold) .AddToDB(); - ancestryBlizzard.AddCustomSubFeatures( - new CharacterTurnEndedElementalFury(ancestryBlizzard, SpellDefinitions.RayOfFrost)); + ancestryBlizzard.AddCustomSubFeatures(new CharacterTurnEndedElementalFury(powerBlizzard)); + + var powerWildfire = FeatureDefinitionPowerBuilder + .Create($"Power{Name}Wildfire") + .SetGuiPresentation($"Ancestry{Name}Wildfire", Category.Feature, + Gui.Format($"Feature/&Ancestry{Name}AllDescription", Gui.Localize("Rules/&DamageFireTitle")), + hidden: true) + .SetUsesFixed(ActivationTime.NoCost) + .SetShowCasting(false) + .SetEffectDescription( + EffectDescriptionBuilder + .Create() + .SetTargetingData(Side.Enemy, RangeType.Distance, 6, TargetType.IndividualsUnique) + .SetEffectForms(EffectFormBuilder.DamageForm(DamageTypeFire, 1, DieType.D6)) + .SetImpactEffectParameters(SpellDefinitions.FireBolt) + .Build()) + .AddToDB(); + + powerWildfire.AddCustomSubFeatures(new ModifyEffectDescriptionElementalFuryDamage(powerWildfire)); var ancestryWildfire = FeatureDefinitionAncestryBuilder .Create($"Ancestry{Name}Wildfire") @@ -68,8 +121,7 @@ public PathOfTheElements() .SetDamageType(DamageTypeFire) .AddToDB(); - ancestryWildfire.AddCustomSubFeatures( - new CharacterTurnEndedElementalFury(ancestryWildfire, SpellDefinitions.FireBolt)); + ancestryWildfire.AddCustomSubFeatures(new CharacterTurnEndedElementalFury(powerWildfire)); // keep sorted FeatureSetElementalFury.FeatureSet.Add(ancestryBlizzard); @@ -418,9 +470,52 @@ public PathOfTheElements() // Elemental Fury // - private sealed class CharacterTurnEndedElementalFury( - FeatureDefinitionAncestry ancestry, - IMagicEffect magicEffect) + private sealed class ModifyEffectDescriptionElementalFuryDamage(FeatureDefinitionPower powerDamage) + : IModifyEffectDescription + { + public bool IsValid(BaseDefinition definition, RulesetCharacter character, EffectDescription effectDescription) + { + return definition == powerDamage; + } + + public EffectDescription GetEffectDescription( + BaseDefinition definition, + EffectDescription effectDescription, + RulesetCharacter character, + RulesetEffect rulesetEffect) + { + var classLevel = character.GetClassLevel(CharacterClassDefinitions.Barbarian); + int diceNumber; + DieType dieType; + + switch (classLevel) + { + case < 6: + diceNumber = 1; + dieType = DieType.D6; + break; + case < 10: + diceNumber = 1; + dieType = DieType.D10; + break; + case < 14: + diceNumber = 2; + dieType = DieType.D6; + break; + default: + diceNumber = 2; + dieType = DieType.D10; + break; + } + + effectDescription.EffectForms[0].DamageForm.DiceNumber = diceNumber; + effectDescription.EffectForms[0].DamageForm.DieType = dieType; + + return effectDescription; + } + } + + private sealed class CharacterTurnEndedElementalFury(FeatureDefinitionPower powerDamage) : ICharacterBeforeTurnEndListener { public void OnCharacterBeforeTurnEnded(GameLocationCharacter locationCharacter) @@ -437,63 +532,31 @@ public void OnCharacterBeforeTurnEnded(GameLocationCharacter locationCharacter) return; } - foreach (var targetLocationCharacter in Gui.Battle - .GetContenders(locationCharacter, withinRange: 1)) - { - var rulesetDefender = targetLocationCharacter.RulesetCharacter; - var classLevel = rulesetAttacker.GetClassLevel(CharacterClassDefinitions.Barbarian); - int diceNumber; - DieType dieType; - - switch (classLevel) - { - case < 6: - diceNumber = 1; - dieType = DieType.D6; - break; - case < 10: - diceNumber = 1; - dieType = DieType.D10; - break; - case < 14: - diceNumber = 2; - dieType = DieType.D6; - break; - default: - diceNumber = 2; - dieType = DieType.D10; - break; - } - - var applyFormsParams = new RulesetImplementationDefinitions.ApplyFormsParams - { - sourceCharacter = rulesetAttacker, - targetCharacter = rulesetDefender, - position = targetLocationCharacter.LocationPosition - }; - - var damageForm = new DamageForm - { - DamageType = ancestry.damageType, - DieType = dieType, - DiceNumber = diceNumber, - BonusDamage = 0, - IgnoreCriticalDoubleDice = true - }; - - EffectHelpers.StartVisualEffect(locationCharacter, targetLocationCharacter, magicEffect); + var implementationManager = + ServiceRepository.GetService() as RulesetImplementationManager; - var implementationService = ServiceRepository.GetService(); + var targets = Gui.Battle.GetContenders(locationCharacter, withinRange: 1); - implementationService.ApplyEffectForms( - [new EffectForm { damageForm = damageForm }], - applyFormsParams, - [ancestry.damageType], - out _, - out _); + var actionModifiers = new List(); - rulesetAttacker.LogCharacterUsedFeature(ancestry); + for (var i = 0; i < targets.Count; i++) + { + actionModifiers.Add(new ActionModifier()); } + + var usablePower = PowerProvider.Get(powerDamage, rulesetAttacker); + var actionParams = new CharacterActionParams(locationCharacter, ActionDefinitions.Id.SpendPower) + { + ActionModifiers = actionModifiers, + RulesetEffect = implementationManager + .MyInstantiateEffectPower(rulesetAttacker, usablePower, false), + UsablePower = usablePower, + targetCharacters = targets + }; + + rulesetAttacker.LogCharacterUsedPower(powerDamage); + ServiceRepository.GetService()? + .ExecuteAction(actionParams, null, true); } } From 22f98cbdd7df87005f0bb3a027ece0b37a3f05e4 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 17:17:06 -0700 Subject: [PATCH 20/91] tweak lightning arrow custom behavior --- SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs index 0985cdc30f..79a9e75da0 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel03.cs @@ -1468,14 +1468,14 @@ public IEnumerator OnPhysicalAttackFinishedByMe( }; RulesetActor.InflictDamage( - damageRoll / 2, + damageRoll, damageForm, damageForm.DamageType, applyFormsParams, rulesetDefender, false, rulesetAttacker.Guid, - false, + true, attackMode.AttackTags, new RollInfo(damageForm.DieType, rolls, 0), false, From 2da7e6c13686dcb4757428558f8e46350da32a77 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 17:27:36 -0700 Subject: [PATCH 21/91] update translations --- .../Translations/de/SubClasses/PathOfTheBeast-de.txt | 2 +- .../Translations/es/SubClasses/PathOfTheBeast-es.txt | 2 +- .../Translations/fr/SubClasses/PathOfTheBeast-fr.txt | 2 +- .../Translations/it/SubClasses/PathOfTheBeast-it.txt | 2 +- .../Translations/ja/SubClasses/PathOfTheBeast-ja.txt | 2 +- .../Translations/ko/SubClasses/PathOfTheBeast-ko.txt | 2 +- .../Translations/pt-BR/SubClasses/PathOfTheBeast-pt-BR.txt | 2 +- .../Translations/zh-CN/SubClasses/PathOfTheBeast-zh-CN.txt | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/de/SubClasses/PathOfTheBeast-de.txt b/SolastaUnfinishedBusiness/Translations/de/SubClasses/PathOfTheBeast-de.txt index 1dcf02ebfd..781503b09e 100644 --- a/SolastaUnfinishedBusiness/Translations/de/SubClasses/PathOfTheBeast-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/SubClasses/PathOfTheBeast-de.txt @@ -24,7 +24,7 @@ Feature/&PowerPathOfTheBeastFormOfTheBeastTailTitle=Form: Schwanz Feature/&PowerPathOfTheBeastFormOfTheBeastTitle=Gestalt des Tieres Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeDescription=Das Ziel greift eine andere Kreatur deiner Wahl innerhalb der Reichweite des Ziels an. Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeTitle=Ansteckende Wut: Erzwungener Schlag -Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Wenn du in deinem Zorn eine Kreatur mit deinen natürlichen Waffen triffst, kann das Biest in dir dein Ziel mit tollwütiger Wut verfluchen. Das Ziel muss einen Weisheitsrettungswurf bestehen (DC entspricht 8 + deinem Konstitutionsmodifikator + deinem Kompetenzbonus) oder einen der folgenden Effekte erleiden (deine Wahl). +Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Wenn du ein Wesen mit deinen natürlichen Waffen triffst, während du wütend bist, kann das Biest in dir dein Ziel mit tollwütiger Wut verfluchen. Das Ziel muss einen Weisheitsrettungswurf bestehen (DC entspricht 8 + deinem Konstitutionsmodifikator + deinem Kompetenzbonus) oder einen der folgenden Effekte erleiden (deine Wahl).\n\nDu kannst diese Funktion so oft verwenden, wie dein Kompetenzbonus beträgt, und du erhältst alle verbrauchten Anwendungen zurück, wenn du eine lange Ruhepause beendest. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashDescription=Das Ziel erleidet 2W12 psychischen Schaden. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashTitle=Ansteckende Wut: Mindlash Feature/&PowerPathOfTheBeastInfectiousFuryTitle=Ansteckende Wut diff --git a/SolastaUnfinishedBusiness/Translations/es/SubClasses/PathOfTheBeast-es.txt b/SolastaUnfinishedBusiness/Translations/es/SubClasses/PathOfTheBeast-es.txt index f0761bc9a0..6cfc77e5cc 100644 --- a/SolastaUnfinishedBusiness/Translations/es/SubClasses/PathOfTheBeast-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/SubClasses/PathOfTheBeast-es.txt @@ -24,7 +24,7 @@ Feature/&PowerPathOfTheBeastFormOfTheBeastTailTitle=Forma: Cola Feature/&PowerPathOfTheBeastFormOfTheBeastTitle=Forma de la bestia Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeDescription=El objetivo ataca a otra criatura de tu elección que esté dentro del alcance del objetivo. Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeTitle=Furia infecciosa: ataque forzado -Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Cuando golpeas a una criatura con tus armas naturales mientras estás furioso, la bestia dentro de ti puede maldecir a tu objetivo con furia rabiosa. El objetivo debe superar una tirada de salvación de Sabiduría (CD igual a 8 + tu modificador de Constitución + tu bonificación de competencia) o sufrir uno de los siguientes efectos (tu elección). +Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Cuando golpeas a una criatura con tus armas naturales mientras estás furioso, la bestia dentro de ti puede maldecir a tu objetivo con furia rabiosa. El objetivo debe superar una tirada de salvación de Sabiduría (CD igual a 8 + tu modificador de Constitución + tu bonificación de competencia) o sufrir uno de los siguientes efectos (tu elección).\n\nPuedes usar esta característica varias veces igual a tu bonificación de competencia, y recuperas todos los usos gastados cuando terminas un descanso prolongado. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashDescription=El objetivo sufre 2d12 de daño psíquico. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashTitle=Furia infecciosa: Mindlash Feature/&PowerPathOfTheBeastInfectiousFuryTitle=Furia infecciosa diff --git a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/PathOfTheBeast-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/PathOfTheBeast-fr.txt index 2417fea6a9..729eac30fa 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/PathOfTheBeast-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/PathOfTheBeast-fr.txt @@ -24,7 +24,7 @@ Feature/&PowerPathOfTheBeastFormOfTheBeastTailTitle=Forme : Queue Feature/&PowerPathOfTheBeastFormOfTheBeastTitle=Forme de la bête Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeDescription=La cible attaque une autre créature de votre choix à sa portée. Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeTitle=Fureur infectieuse : Frappe obligée -Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Lorsque vous frappez une créature avec vos armes naturelles alors que vous êtes enragé, la bête en vous peut maudire votre cible avec une fureur enragée. La cible doit réussir un jet de sauvegarde de Sagesse (DD égal à 8 + votre modificateur de Constitution + votre bonus de maîtrise) ou subir l'un des effets suivants (au choix). +Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Lorsque vous frappez une créature avec vos armes naturelles alors que vous êtes enragé, la bête en vous peut maudire votre cible avec une fureur enragée. La cible doit réussir un jet de sauvegarde de Sagesse (DD égal à 8 + votre modificateur de Constitution + votre bonus de maîtrise) ou subir l'un des effets suivants (votre choix).\n\nVous pouvez utiliser cette fonctionnalité plusieurs fois. égal à votre bonus de maîtrise, et vous récupérez toutes les utilisations dépensées lorsque vous terminez un repos long. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashDescription=La cible subit 2d12 dégâts psychiques. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashTitle=Fureur infectieuse : Mindlash Feature/&PowerPathOfTheBeastInfectiousFuryTitle=Fureur contagieuse diff --git a/SolastaUnfinishedBusiness/Translations/it/SubClasses/PathOfTheBeast-it.txt b/SolastaUnfinishedBusiness/Translations/it/SubClasses/PathOfTheBeast-it.txt index 000ea1af1f..0bc831a808 100644 --- a/SolastaUnfinishedBusiness/Translations/it/SubClasses/PathOfTheBeast-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/SubClasses/PathOfTheBeast-it.txt @@ -24,7 +24,7 @@ Feature/&PowerPathOfTheBeastFormOfTheBeastTailTitle=Forma: coda Feature/&PowerPathOfTheBeastFormOfTheBeastTitle=Forma della Bestia Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeDescription=Il bersaglio attacca un'altra creatura a tua scelta entro la sua portata. Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeTitle=Furia Confettiva: Colpo Obbligato -Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Quando colpisci una creatura con le tue armi naturali mentre sei in preda all'ira, la bestia dentro di te può maledire il tuo bersaglio con furia rabbiosa. Il bersaglio deve superare un tiro salvezza su Saggezza (CD pari a 8 + il tuo modificatore di Costituzione + il tuo bonus di competenza) o subire uno dei seguenti effetti (a tua scelta). +Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Quando colpisci una creatura con le tue armi naturali mentre sei in preda all'ira, la bestia dentro di te può maledire il tuo bersaglio con furia rabbiosa. Il bersaglio deve superare un tiro salvezza su Saggezza (CD pari a 8 + il tuo modificatore di Costituzione + il tuo bonus di competenza) o subire uno dei seguenti effetti (a tua scelta).\n\nPuoi utilizzare questo privilegio un certo numero di volte pari al tuo bonus di competenza, e recuperi tutti gli usi spesi quando termini un riposo lungo. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashDescription=Il bersaglio subisce 2d12 danni psichici. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashTitle=Furia contagiosa: Mindlash Feature/&PowerPathOfTheBeastInfectiousFuryTitle=Furia contagiosa diff --git a/SolastaUnfinishedBusiness/Translations/ja/SubClasses/PathOfTheBeast-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/SubClasses/PathOfTheBeast-ja.txt index 0fe6053fd7..3abc796a1b 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/SubClasses/PathOfTheBeast-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/SubClasses/PathOfTheBeast-ja.txt @@ -24,7 +24,7 @@ Feature/&PowerPathOfTheBeastFormOfTheBeastTailTitle=形状: 尾 Feature/&PowerPathOfTheBeastFormOfTheBeastTitle=獣の姿 Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeDescription=対象は対象の射程範囲内にいるあなたが選んだ別のクリーチャーを攻撃します。 Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeTitle=伝染する怒り:強制攻撃 -Feature/&PowerPathOfTheBeastInfectiousFuryDescription=激怒中に肉体の武器でクリーチャーを攻撃すると、あなたの中の獣がターゲットを狂暴な怒りで呪うことができます。ターゲットは【判断力】セーヴィング スロー (難易度は 8 + あなたの【耐久力】修正値 + あなたの熟練度ボーナス) に成功しなければ、以下の効果のいずれか (選択可能) を受けます。 +Feature/&PowerPathOfTheBeastInfectiousFuryDescription=激怒中に肉体武器でクリーチャーを攻撃すると、あなたの中の獣がターゲットを狂暴な怒りで呪うことができます。ターゲットは【判断力】セーヴィング スロー (難易度は 8 + 【耐久力】修正値 + 習熟ボーナス) に成功しなければ、以下の効果のいずれか (選択可能) を受けます。\n\nこの特徴は習熟ボーナスに等しい回数使用でき、大休憩を終えると消費した使用回数をすべて回復します。 Feature/&PowerPathOfTheBeastInfectiousFuryMindlashDescription=対象は2d12の精神ダメージを受ける。 Feature/&PowerPathOfTheBeastInfectiousFuryMindlashTitle=伝染性の怒り:マインドラッシュ Feature/&PowerPathOfTheBeastInfectiousFuryTitle=伝染する怒り diff --git a/SolastaUnfinishedBusiness/Translations/ko/SubClasses/PathOfTheBeast-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/SubClasses/PathOfTheBeast-ko.txt index 7d7510dc9e..8e57962842 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/SubClasses/PathOfTheBeast-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/SubClasses/PathOfTheBeast-ko.txt @@ -24,7 +24,7 @@ Feature/&PowerPathOfTheBeastFormOfTheBeastTailTitle=형태: 꼬리 Feature/&PowerPathOfTheBeastFormOfTheBeastTitle=야수의 형태 Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeDescription=목표는 목표의 범위 내에 있는 당신이 선택한 다른 생물을 공격합니다. Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeTitle=감염성 분노: 강제 공격 -Feature/&PowerPathOfTheBeastInfectiousFuryDescription=당신이 분노하는 동안 자연 무기로 생물체를 공격하면, 당신 안에 있는 야수가 맹렬한 분노로 목표물을 저주할 수 있습니다. 대상은 지혜 내성 굴림(DC = 8 + 건강 수정치 + 숙련 보너스)에 성공해야 하며, 그렇지 않으면 다음 효과 중 하나를 겪어야 합니다(선택). +Feature/&PowerPathOfTheBeastInfectiousFuryDescription=당신이 분노하는 동안 자연 무기로 생물체를 공격하면, 당신 안에 있는 야수가 맹렬한 분노로 목표물을 저주할 수 있습니다. 대상은 지혜 내성 굴림(DC = 8 + 건강 수정치 + 숙련 보너스)에 성공해야 하며 그렇지 않으면 다음 효과 중 하나를 받아야 합니다(선택).\n\n이 기능은 여러 번 사용할 수 있습니다. 숙련도 보너스와 동일하며, 긴 휴식을 마치면 사용한 모든 사용 횟수를 회복합니다. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashDescription=대상은 2d12의 정신적 피해를 입습니다. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashTitle=전염성 분노: 마인드래쉬 Feature/&PowerPathOfTheBeastInfectiousFuryTitle=전염성 분노 diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/PathOfTheBeast-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/PathOfTheBeast-pt-BR.txt index 411f8404de..c46578885b 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/PathOfTheBeast-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/PathOfTheBeast-pt-BR.txt @@ -24,7 +24,7 @@ Feature/&PowerPathOfTheBeastFormOfTheBeastTailTitle=Forma: Cauda Feature/&PowerPathOfTheBeastFormOfTheBeastTitle=Forma da Besta Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeDescription=O alvo ataca outra criatura de sua escolha dentro do alcance do alvo. Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeTitle=Fúria Infecciosa: Ataque Compelido -Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Quando você atinge uma criatura com suas armas naturais enquanto está em fúria, a fera dentro de você pode amaldiçoar seu alvo com fúria raivosa. O alvo deve ser bem sucedido em um teste de resistência de Sabedoria (CD igual a 8 + seu modificador de Constituição + seu bônus de proficiência) ou sofrerá um dos seguintes efeitos (sua escolha). +Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Quando você atinge uma criatura com suas armas naturais enquanto está em fúria, a fera dentro de você pode amaldiçoar seu alvo com fúria raivosa. O alvo deve ser bem sucedido em um teste de resistência de Sabedoria (CD igual a 8 + seu modificador de Constituição + seu bônus de proficiência) ou sofrerá um dos seguintes efeitos (à sua escolha).\n\nVocê pode usar esse recurso várias vezes. igual ao seu bônus de proficiência e você recupera todos os usos gastos ao terminar um descanso longo. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashDescription=O alvo sofre 2d12 de Dano Psíquico. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashTitle=Fúria Infecciosa: Mindlash Feature/&PowerPathOfTheBeastInfectiousFuryTitle=Fúria Infecciosa diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/PathOfTheBeast-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/PathOfTheBeast-zh-CN.txt index bda892f436..4b747b2582 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/PathOfTheBeast-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/PathOfTheBeast-zh-CN.txt @@ -24,7 +24,7 @@ Feature/&PowerPathOfTheBeastFormOfTheBeastTailTitle=形态:刺尾 Feature/&PowerPathOfTheBeastFormOfTheBeastTitle=野兽形态 Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeDescription=目标攻击其范围内由你选择的另一个生物。 Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeTitle=传染之怒:强制打击 -Feature/&PowerPathOfTheBeastInfectiousFuryDescription=当你在狂暴状态下用你的天生武器攻击生物时,你内心的野兽会用狂暴的怒火诅咒你的目标。目标必须成功通过感知豁免检定(DC 等于 8 + 你的体质调整值 + 你的熟练加值),否则会遭受以下效果之一(由你选择)。 +Feature/&PowerPathOfTheBeastInfectiousFuryDescription=当你在狂暴状态下用你的天生武器攻击生物时,你内心的野兽会用狂暴的怒火诅咒你的目标。目标必须成功通过一次感知豁免检定(DC 等于 8 + 你的体质调整值 + 你的熟练加值),否则会遭受以下效果之一(由你选择)。\n\n你可以使用此功能的次数等于你的熟练加值的次数,当你完成长时间休息时,你可以恢复所有已用过的使用次数。 Feature/&PowerPathOfTheBeastInfectiousFuryMindlashDescription=目标受到 2d12 心灵伤害。 Feature/&PowerPathOfTheBeastInfectiousFuryMindlashTitle=传染之怒:心灵鞭笞 Feature/&PowerPathOfTheBeastInfectiousFuryTitle=传染之怒 From d2ffc5c3477a407977d77e97eb973d7e992d474c Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 18:29:03 -0700 Subject: [PATCH 22/91] update Malakh SFX --- .../ConditionMalakhAngelicRadiance.json | 2 +- .../PowerMalakhAngelicRadiance.json | 2 +- Documentation/Subclasses.md | 6 +++++ SolastaUnfinishedBusiness/Races/Malakh.cs | 27 +++++++------------ 4 files changed, 17 insertions(+), 20 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionMalakhAngelicRadiance.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionMalakhAngelicRadiance.json index 1885f237e5..a7830373c3 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionMalakhAngelicRadiance.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionMalakhAngelicRadiance.json @@ -88,7 +88,7 @@ }, "timeToWaitBeforeApplyingShader": 0.5, "timeToWaitBeforeRemovingShader": 0.5, - "possessive": false, + "possessive": true, "amountOrigin": "None", "baseAmount": 0, "additiveAmount": false, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerMalakhAngelicRadiance.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerMalakhAngelicRadiance.json index 8bd215108d..30de1e3ef7 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerMalakhAngelicRadiance.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerMalakhAngelicRadiance.json @@ -154,7 +154,7 @@ "$type": "EffectParticleParameters, Assembly-CSharp", "casterParticleReference": { "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "81560ac3813217d4d9fd281d5e73c234", + "m_AssetGUID": "35827af9d640e9444bc22fb37cf7e00a", "m_SubObjectName": "", "m_SubObjectType": "" }, diff --git a/Documentation/Subclasses.md b/Documentation/Subclasses.md index 2f3c8e0b71..ab6c585cef 100644 --- a/Documentation/Subclasses.md +++ b/Documentation/Subclasses.md @@ -448,6 +448,8 @@ Once per rest as a free action, you can choose one benefit which will last until When you hit a creature with your natural weapons while you are raging, the beast within you can curse your target with rabid fury. The target must succeed on a Wisdom saving throw (DC equal to 8 + your Constitution modifier + your proficiency bonus) or suffer one of the following effects (your choice). +You can use this feature a number of times equal to your proficiency bonus, and you regain all expended uses when you finish a long rest. + * Infectious Fury: Compelled Strike Target attacks another creature of your choice within the target's reach. @@ -2985,6 +2987,10 @@ For battle masters, a battle is a test of wit as much as a test of might. They e ### Level 3 +* Additional Superiority Die + +You gain an additional superiority die. + * Maneuvers You learn three special techniques called maneuvers. Using a maneuver costs one superiority die. Most maneuvers enhance your attacks in a way and add the superiority die's roll to the attack's damage. You can only have one maneuver active at a time. Some of your maneuvers require your target to make a saving throw to avoid its detrimental effects. The Maneuver DC of these maneuvers is 8 + proficiency bonus + Strength or Dexterity modifier, whichever is higher. diff --git a/SolastaUnfinishedBusiness/Races/Malakh.cs b/SolastaUnfinishedBusiness/Races/Malakh.cs index ed0302238b..a78a346287 100644 --- a/SolastaUnfinishedBusiness/Races/Malakh.cs +++ b/SolastaUnfinishedBusiness/Races/Malakh.cs @@ -1,7 +1,6 @@ using System.Collections.Generic; using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; -using SolastaUnfinishedBusiness.Api.Helpers; using SolastaUnfinishedBusiness.Api.LanguageExtensions; using SolastaUnfinishedBusiness.Behaviors; using SolastaUnfinishedBusiness.Builders; @@ -241,7 +240,8 @@ private static FeatureDefinitionPower BuildAngelicRadiance(FeatureDefinition add .Create() .SetTargetingData(Side.Enemy, RangeType.Distance, 6, TargetType.IndividualsUnique) .SetEffectForms(EffectFormBuilder.DamageForm(DamageTypeRadiant, 1, DieType.D4)) - .SetImpactEffectParameters(FeatureDefinitionAdditionalDamages.AdditionalDamageBrandingSmite.impactParticleReference) + .SetImpactEffectParameters(FeatureDefinitionAdditionalDamages.AdditionalDamageBrandingSmite + .impactParticleReference) .Build()) .AddToDB(); @@ -252,13 +252,13 @@ private static FeatureDefinitionPower BuildAngelicRadiance(FeatureDefinition add .Create($"Condition{Name}AngelicRadiance") .SetGuiPresentation(Category.Condition, ConditionDefinitions.ConditionDivineFavor) .SetConditionType(ConditionType.Beneficial) + .SetPossessive() .AddFeatures(additionalDamageMalakhAngelicForm, powerMalakhAngelicRadianceDamage) + .AddCustomSubFeatures( + AddUsablePowersFromCondition.Marker, + new CharacterTurnEndListenerAngelicRadiance(powerMalakhAngelicRadianceDamage)) .AddToDB(); - conditionAngelicRadiance.AddCustomSubFeatures( - AddUsablePowersFromCondition.Marker, - new CharacterTurnEndListenerAngelicRadiance(conditionAngelicRadiance, powerMalakhAngelicRadianceDamage)); - var faerieFireLightSource = SpellDefinitions.FaerieFire.EffectDescription.GetFirstFormOfType(EffectForm.EffectFormType.LightSource); @@ -280,6 +280,7 @@ private static FeatureDefinitionPower BuildAngelicRadiance(FeatureDefinition add faerieFireLightSource.lightSourceForm.color, faerieFireLightSource.lightSourceForm.graphicsPrefabReference) .Build()) + .SetCasterEffectParameters(SpellDefinitions.BrandingSmite) .Build()) .AddToDB(); @@ -317,7 +318,6 @@ public EffectDescription GetEffectDescription( } private sealed class CharacterTurnEndListenerAngelicRadiance( - ConditionDefinition conditionAngelicRadiance, FeatureDefinitionPower powerAngelicRadianceDamage) : ICharacterBeforeTurnEndListener { public void OnCharacterBeforeTurnEnded(GameLocationCharacter locationCharacter) @@ -327,17 +327,8 @@ public void OnCharacterBeforeTurnEnded(GameLocationCharacter locationCharacter) return; } - var rulesetDefender = locationCharacter.RulesetCharacter; - - if (rulesetDefender is not { IsDeadOrDyingOrUnconscious: false } || - rulesetDefender.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionAngelicRadiance.Name, out var activeCondition)) - { - return; - } + var rulesetAttacker = locationCharacter.RulesetCharacter; - var rulesetAttacker = EffectHelpers.GetCharacterByGuid(activeCondition.SourceGuid); - var attacker = GameLocationCharacter.GetFromActor(rulesetAttacker); var implementationManager = ServiceRepository.GetService() as RulesetImplementationManager; @@ -351,7 +342,7 @@ public void OnCharacterBeforeTurnEnded(GameLocationCharacter locationCharacter) } var usablePower = PowerProvider.Get(powerAngelicRadianceDamage, rulesetAttacker); - var actionParams = new CharacterActionParams(attacker, ActionDefinitions.Id.SpendPower) + var actionParams = new CharacterActionParams(locationCharacter, ActionDefinitions.Id.SpendPower) { ActionModifiers = actionModifiers, RulesetEffect = implementationManager From ab383529c312586c14118c56a06005e34fc46629 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 11 Jul 2024 22:02:32 -0700 Subject: [PATCH 23/91] add spells point system skeleton --- .../UnfinishedBusinessBlueprints/Assets.txt | 6 + .../ConditionUsedSpellLevel6.json | 155 ++++++++++++++ .../ConditionUsedSpellLevel7.json | 155 ++++++++++++++ .../ConditionUsedSpellLevel8.json | 155 ++++++++++++++ .../ConditionUsedSpellLevel9.json | 155 ++++++++++++++ .../PowerSpellPoints.json | 202 ++++++++++++++++++ .../FeatureDefinitionCastSpellBuilder.cs | 19 +- .../ChangelogHistory.txt | 8 +- .../Displays/RulesDisplay.cs | 8 +- .../Models/BootContext.cs | 3 + .../Models/SharedSpellsContext.cs | 2 +- .../Models/SpellPointsContext.cs | 163 ++++++++++++++ SolastaUnfinishedBusiness/Settings.cs | 1 + .../Subclasses/MartialSpellShield.cs | 3 +- .../Subclasses/RoguishArcaneScoundrel.cs | 44 ++-- .../Translations/de/Settings-de.txt | 1 + .../Translations/en/Settings-en.txt | 1 + .../Translations/es/Settings-es.txt | 1 + .../Translations/fr/Settings-fr.txt | 1 + .../Translations/it/Settings-it.txt | 1 + .../Translations/ja/Settings-ja.txt | 1 + .../Translations/ko/Settings-ko.txt | 1 + .../Translations/pt-BR/Settings-pt-BR.txt | 1 + .../Translations/ru/Settings-ru.txt | 1 + .../Translations/zh-CN/Settings-zh-CN.txt | 1 + 25 files changed, 1049 insertions(+), 40 deletions(-) create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel6.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel7.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel8.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel9.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json create mode 100644 SolastaUnfinishedBusiness/Models/SpellPointsContext.cs diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 6609385b7b..332e0f5097 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -1172,6 +1172,10 @@ ConditionTimeStop ConditionDefinition ConditionDefinition e1d29b24-2799-5edd-a86 ConditionTraditionOpenHandQuiveringPalm ConditionDefinition ConditionDefinition fd7fb9c8-b520-585a-afe2-7617cbf3f3b5 ConditionTraditionSurvivalPhysicalPerfection ConditionDefinition ConditionDefinition 8ea61016-4655-5566-8ab4-0091c411dac3 ConditionTreeForestGuardian ConditionDefinition ConditionDefinition 345a53aa-1f78-5f27-b286-8dd263210fda +ConditionUsedSpellLevel6 ConditionDefinition ConditionDefinition 504049b9-3fac-5b27-9050-6b1901278053 +ConditionUsedSpellLevel7 ConditionDefinition ConditionDefinition 8e4e94aa-b248-55e3-a352-93b3a79d2c0a +ConditionUsedSpellLevel8 ConditionDefinition ConditionDefinition be4d2aa5-835e-5009-9545-dfb16948ec6f +ConditionUsedSpellLevel9 ConditionDefinition ConditionDefinition bb77334d-9b67-5221-930a-6b8780d62f73 ConditionVileBrew ConditionDefinition ConditionDefinition 7c519d9b-1391-5b0e-b4ed-bb0f66a14851 ConditionVitriolicSphere ConditionDefinition ConditionDefinition 91941437-a832-54c5-b0b5-b1ee0e9716dd ConditionVoidGrasp ConditionDefinition ConditionDefinition 3a29e018-ae36-546b-95a1-112dcd7a8e7a @@ -3831,6 +3835,7 @@ PowerSoulBladeSoulShield FeatureDefinitionPower FeatureDefinition 66b84def-ee8c- PowerSoulBladeSummonPactWeapon FeatureDefinitionPower FeatureDefinition eb40dd01-76b3-57d1-9d3a-243eef28250a PowerSoulExpulsion FeatureDefinitionPower FeatureDefinition 47f854be-18bc-5b7b-926c-9edf44d24b20 PowerSpellMasterBonusRecovery FeatureDefinitionPower FeatureDefinition 4481cd45-d08e-5964-8c38-e35bf60e168b +PowerSpellPoints FeatureDefinitionPower FeatureDefinition 467fdc6d-1c2e-5a48-983a-60d1a9338da3 PowerSpellShieldArcaneDeflection FeatureDefinitionPower FeatureDefinition 52e64530-4aec-5d0f-a053-4676e7ac6dde PowerSpikeBarrage FeatureDefinitionPower FeatureDefinition 112a3040-00da-5ed4-a93f-7096ac5eb01e PowerSteelWhirlwindTeleport FeatureDefinitionPower FeatureDefinition 8f74fc44-7afd-57f0-9cd4-c9e21998ec51 @@ -6654,6 +6659,7 @@ PowerSoulBladeSoulShield FeatureDefinitionPower FeatureDefinitionPower 66b84def- PowerSoulBladeSummonPactWeapon FeatureDefinitionPower FeatureDefinitionPower eb40dd01-76b3-57d1-9d3a-243eef28250a PowerSoulExpulsion FeatureDefinitionPower FeatureDefinitionPower 47f854be-18bc-5b7b-926c-9edf44d24b20 PowerSpellMasterBonusRecovery FeatureDefinitionPower FeatureDefinitionPower 4481cd45-d08e-5964-8c38-e35bf60e168b +PowerSpellPoints FeatureDefinitionPower FeatureDefinitionPower 467fdc6d-1c2e-5a48-983a-60d1a9338da3 PowerSpellShieldArcaneDeflection FeatureDefinitionPower FeatureDefinitionPower 52e64530-4aec-5d0f-a053-4676e7ac6dde PowerSpikeBarrage FeatureDefinitionPower FeatureDefinitionPower 112a3040-00da-5ed4-a93f-7096ac5eb01e PowerSteelWhirlwindTeleport FeatureDefinitionPower FeatureDefinitionPower 8f74fc44-7afd-57f0-9cd4-c9e21998ec51 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel6.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel6.json new file mode 100644 index 0000000000..1ac7d39044 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel6.json @@ -0,0 +1,155 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Beneficial", + "features": [], + "allowMultipleInstances": false, + "silentWhenAdded": true, + "silentWhenRemoved": true, + "silentWhenRefreshed": false, + "terminateWhenRemoved": false, + "specialDuration": false, + "durationType": "Hour", + "durationParameterDie": "D4", + "durationParameter": 1, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": false, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&NoContentTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "504049b9-3fac-5b27-9050-6b1901278053", + "contentPack": 9999, + "name": "ConditionUsedSpellLevel6" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel7.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel7.json new file mode 100644 index 0000000000..3bef8e22b9 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel7.json @@ -0,0 +1,155 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Beneficial", + "features": [], + "allowMultipleInstances": false, + "silentWhenAdded": true, + "silentWhenRemoved": true, + "silentWhenRefreshed": false, + "terminateWhenRemoved": false, + "specialDuration": false, + "durationType": "Hour", + "durationParameterDie": "D4", + "durationParameter": 1, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": false, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&NoContentTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "8e4e94aa-b248-55e3-a352-93b3a79d2c0a", + "contentPack": 9999, + "name": "ConditionUsedSpellLevel7" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel8.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel8.json new file mode 100644 index 0000000000..2be8567d99 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel8.json @@ -0,0 +1,155 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Beneficial", + "features": [], + "allowMultipleInstances": false, + "silentWhenAdded": true, + "silentWhenRemoved": true, + "silentWhenRefreshed": false, + "terminateWhenRemoved": false, + "specialDuration": false, + "durationType": "Hour", + "durationParameterDie": "D4", + "durationParameter": 1, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": false, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&NoContentTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "be4d2aa5-835e-5009-9545-dfb16948ec6f", + "contentPack": 9999, + "name": "ConditionUsedSpellLevel8" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel9.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel9.json new file mode 100644 index 0000000000..f60308c6f8 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel9.json @@ -0,0 +1,155 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Beneficial", + "features": [], + "allowMultipleInstances": false, + "silentWhenAdded": true, + "silentWhenRemoved": true, + "silentWhenRefreshed": false, + "terminateWhenRemoved": false, + "specialDuration": false, + "durationType": "Hour", + "durationParameterDie": "D4", + "durationParameter": 1, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": false, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&NoContentTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "bb77334d-9b67-5221-930a-6b8780d62f73", + "contentPack": 9999, + "name": "ConditionUsedSpellLevel9" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json new file mode 100644 index 0000000000..5df1bee1da --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json @@ -0,0 +1,202 @@ +{ + "$type": "FeatureDefinitionPower, Assembly-CSharp", + "effectDescription": { + "$type": "EffectDescription, Assembly-CSharp", + "rangeType": "Self", + "rangeParameter": 0, + "halfDamageOnAMiss": false, + "hitAffinitiesByTargetTag": [], + "targetType": "Self", + "itemSelectionType": "Equiped", + "targetParameter": 1, + "targetParameter2": 2, + "emissiveBorder": "None", + "emissiveParameter": 1, + "requiresTargetProximity": false, + "targetProximityDistance": 6, + "targetExcludeCaster": false, + "canBePlacedOnCharacter": true, + "affectOnlyGround": false, + "targetFilteringMethod": "AllCharacterAndGadgets", + "targetFilteringTag": "No", + "requiresVisibilityForPosition": true, + "inviteOptionalAlly": false, + "slotTypes": [], + "recurrentEffect": "No", + "retargetAfterDeath": false, + "retargetActionType": "Bonus", + "poolFilterDiceNumber": 5, + "poolFilterDieType": "D8", + "trapRangeType": "Triggerer", + "targetConditionName": "", + "targetConditionAsset": null, + "targetSide": "Enemy", + "durationType": "Instantaneous", + "durationParameter": 1, + "endOfEffect": "EndOfTurn", + "hasSavingThrow": false, + "disableSavingThrowOnAllies": false, + "savingThrowAbility": "Dexterity", + "ignoreCover": false, + "grantedConditionOnSave": null, + "rollSaveOnlyIfRelevantForms": false, + "hasShoveRoll": false, + "createdByCharacter": false, + "difficultyClassComputation": "SpellCastingFeature", + "savingThrowDifficultyAbility": "Wisdom", + "fixedSavingThrowDifficultyClass": 15, + "savingThrowAffinitiesBySense": [], + "savingThrowAffinitiesByFamily": [], + "damageAffinitiesByFamily": [], + "advantageForEnemies": false, + "canBeDispersed": false, + "hasVelocity": false, + "velocityCellsPerRound": 2, + "velocityType": "AwayFromSourceOriginalPosition", + "restrictedCreatureFamilies": [], + "immuneCreatureFamilies": [], + "restrictedCharacterSizes": [], + "hasLimitedEffectPool": false, + "effectPoolAmount": 60, + "effectApplication": "All", + "effectFormFilters": [], + "effectForms": [], + "specialFormsDescription": "", + "effectAdvancement": { + "$type": "EffectAdvancement, Assembly-CSharp", + "effectIncrementMethod": "None", + "incrementMultiplier": 1, + "additionalTargetsPerIncrement": 0, + "additionalSubtargetsPerIncrement": 0, + "additionalDicePerIncrement": 0, + "additionalSpellLevelPerIncrement": 0, + "additionalSummonsPerIncrement": 0, + "additionalHPPerIncrement": 0, + "additionalTempHPPerIncrement": 0, + "additionalTargetCellsPerIncrement": 0, + "additionalItemBonus": 0, + "additionalWeaponDie": 0, + "alteredDuration": "None" + }, + "speedType": "Instant", + "speedParameter": 10.0, + "offsetImpactTimeBasedOnDistance": false, + "offsetImpactTimeBasedOnDistanceFactor": 0.1, + "offsetImpactTimePerTarget": 0.0, + "effectParticleParameters": { + "$type": "EffectParticleParameters, Assembly-CSharp", + "casterParticleReference": null, + "casterSelfParticleReference": null, + "casterQuickSpellParticleReference": null, + "targetParticleReference": null, + "effectParticleReference": null, + "effectSubTargetParticleReference": null, + "zoneParticleReference": null, + "beforeImpactParticleReference": null, + "impactParticleReference": null, + "activeEffectImpactParticleReference": null, + "activeEffectCellStartParticleReference": null, + "activeEffectCellParticleReference": null, + "activeEffectCellEndParticleReference": null, + "activeEffectSurfaceStartParticleReference": null, + "activeEffectSurfaceParticleReference": null, + "activeEffectSurfaceEndParticleReference": null, + "activeEffectSurfaceParticlePerIndex": "", + "activeEffectSurfaceParticlePerIndexCount": 0, + "emissiveBorderCellStartParticleReference": null, + "emissiveBorderCellParticleReference": null, + "emissiveBorderCellEndParticleReference": null, + "emissiveBorderSurfaceStartParticleReference": null, + "emissiveBorderSurfaceParticleReference": null, + "emissiveBorderSurfaceEndParticleReference": null, + "conditionStartParticleReference": null, + "conditionParticleReference": null, + "conditionEndParticleReference": null, + "forceApplyZoneParticle": false, + "applyEmissionColorOnWeapons": false, + "emissionColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "emissionColorFadeInDuration": 0.0, + "emissionColorFadeOutDuration": 0.0 + }, + "effectAIParameters": { + "$type": "EffectAIParameters, Assembly-CSharp", + "aoeScoreMultiplier": 1.0, + "cooldownForCaster": 0, + "cooldownForBattle": 0, + "sortingScoreMultiplier": 1.0, + "dynamicCooldown": false + }, + "animationMagicEffect": "Animation0", + "lightCounterDispellsEffect": false, + "hideSavingThrowAnimation": false + }, + "delegatedToAction": false, + "surrogateToSpell": null, + "triggeredBySpecialMove": false, + "activationTime": "NoCost", + "autoActivationRequiredTargetSenseType": "None", + "autoActivationRequiredTargetCreatureTag": "", + "autoActivationPowerTag": "", + "triggeringPower": null, + "copyTargetingFromTriggeringPower": false, + "reactionContext": "None", + "damageTypes": [], + "reactionName": "", + "reactionActingCharacterParamIdx": 0, + "reactionAttackerParamIdx": -1, + "hasCastingFailure": false, + "castingSuccessComputation": "CasterLevel", + "canUseInDialog": false, + "disableIfConditionIsOwned": null, + "disableIfTargetConditionIsOwned": null, + "rechargeRate": "AtWill", + "costPerUse": 1, + "spellcastingFeature": null, + "usesDetermination": "Fixed", + "abilityScoreDetermination": "Explicit", + "usesAbilityScoreName": "Charisma", + "fixedUsesPerRecharge": 1, + "abilityScore": "Intelligence", + "attackHitComputation": "AbilityScore", + "fixedAttackHit": 0, + "abilityScoreBonusToAttack": false, + "proficiencyBonusToAttack": false, + "uniqueInstance": false, + "showCasting": true, + "shortTitleOverride": "", + "overriddenPower": null, + "includeBaseDescription": false, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&NoContentTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "467fdc6d-1c2e-5a48-983a-60d1a9338da3", + "contentPack": 9999, + "name": "PowerSpellPoints" +} \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Builders/Features/FeatureDefinitionCastSpellBuilder.cs b/SolastaUnfinishedBusiness/Builders/Features/FeatureDefinitionCastSpellBuilder.cs index 4e63d073f0..6a71e22299 100644 --- a/SolastaUnfinishedBusiness/Builders/Features/FeatureDefinitionCastSpellBuilder.cs +++ b/SolastaUnfinishedBusiness/Builders/Features/FeatureDefinitionCastSpellBuilder.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.Diagnostics; using SolastaUnfinishedBusiness.Api.LanguageExtensions; @@ -95,7 +96,8 @@ internal static void EnumerateKnownSpells( internal static void EnumerateSlotsPerLevel( CasterProgression progression, - List slotsPerLevels) + List slotsPerLevels, + bool forceOnes = false) { slotsPerLevels.Clear(); @@ -126,7 +128,10 @@ internal static void EnumerateSlotsPerLevel( { var slotsForLevel = new FeatureDefinitionCastSpell.SlotsByLevelDuplet { - Level = level, Slots = SlotsByCasterLevel[level - startingLevel + 1] + Level = level, + Slots = SlotsByCasterLevel[level - startingLevel + 1] + .Select(x => forceOnes ? 1 : x) + .ToList() }; slotsPerLevels.Add(slotsForLevel); @@ -139,7 +144,10 @@ internal static void EnumerateSlotsPerLevel( { var slotsForLevel = new FeatureDefinitionCastSpell.SlotsByLevelDuplet { - Level = level, Slots = SlotsByCasterLevel[((level - startingLevel + 1) / 2) + 1] + Level = level, + Slots = SlotsByCasterLevel[((level - startingLevel + 1) / 2) + 1] + .Select(x => forceOnes ? 1 : x) + .ToList() }; slotsPerLevels.Add(slotsForLevel); @@ -151,7 +159,10 @@ internal static void EnumerateSlotsPerLevel( { var slotsForLevel = new FeatureDefinitionCastSpell.SlotsByLevelDuplet { - Level = level, Slots = SlotsByCasterLevel[((level - startingLevel + 2) / 3) + 1] + Level = level, + Slots = SlotsByCasterLevel[((level - startingLevel + 2) / 3) + 1] + .Select(x => forceOnes ? 1 : x) + .ToList() }; slotsPerLevels.Add(slotsForLevel); diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 4a43cd155f..f258320cc4 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,12 +1,12 @@ 1.5.97.20: -- added sample heroes portraits [by Artyoan] - added subclasses unique sprites [by otearaisu] -- fixed 'Export Hero' and RESPEC effects termination logic [auras, infusions, etc.] +- added variant spell points system +- fixed 'Export Hero' and RESPEC effects termination [auras, infusions, etc.] - fixed Martial Arcane Archer arcane shot to trigger just after attack hits - fixed Martial Battle Master initial pool set to 3 instead of 4 -- fixed Ring of Knifes spell missing to-hit casting modifiers on power -- fixed Scatter spell not allowing enemies selection +- fixed Ring of Knifes spell missing to-hit modifiers on power +- fixed Scatter spell not allowing enemies selection 1.5.97.19: diff --git a/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs b/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs index 46f00893bf..36eb4be21f 100644 --- a/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs +++ b/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs @@ -14,7 +14,13 @@ internal static void DisplayRules() UI.Label(Gui.Localize("ModUi/&SRD")); UI.Label(); - var toggle = Main.Settings.UseOfficialAdvantageDisadvantageRules; + var toggle = Main.Settings.UseAlternateSpellPointsSystem; + if (UI.Toggle(Gui.Localize("ModUi/&UseAlternateSpellPointsSystem"), ref toggle, UI.AutoWidth())) + { + SpellPointsContext.SwitchFeatureDefinitionCastSpellSlots(); + } + + toggle = Main.Settings.UseOfficialAdvantageDisadvantageRules; if (UI.Toggle(Gui.Localize("ModUi/&UseOfficialAdvantageDisadvantageRules"), ref toggle, UI.AutoWidth())) { Main.Settings.UseOfficialAdvantageDisadvantageRules = toggle; diff --git a/SolastaUnfinishedBusiness/Models/BootContext.cs b/SolastaUnfinishedBusiness/Models/BootContext.cs index 1c48f7d287..942d85043e 100644 --- a/SolastaUnfinishedBusiness/Models/BootContext.cs +++ b/SolastaUnfinishedBusiness/Models/BootContext.cs @@ -132,6 +132,9 @@ internal static void Startup() // Save by location initialization depends on services to be ready SaveByLocationContext.LateLoad(); + // Spell Points should load closer to the bottom after all other blueprints initiated + SpellPointsContext.LateLoad(); + // Recache all gui collections GuiWrapperContext.Recache(); diff --git a/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs b/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs index d9ecd7cd83..e3b3bd9c00 100644 --- a/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs @@ -54,7 +54,7 @@ internal static class SharedSpellsContext }; // supports auto prepared spells scenarios on subs - private static CasterProgression GetCasterTypeForClassOrSubclass( + internal static CasterProgression GetCasterTypeForClassOrSubclass( [CanBeNull] string characterClassDefinition, string characterSubclassDefinition) { diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs new file mode 100644 index 0000000000..b2ef493227 --- /dev/null +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -0,0 +1,163 @@ +using System.Collections.Generic; +using System.Linq; +using SolastaUnfinishedBusiness.Api; +using SolastaUnfinishedBusiness.Api.GameExtensions; +using SolastaUnfinishedBusiness.Behaviors; +using SolastaUnfinishedBusiness.Builders; +using SolastaUnfinishedBusiness.Builders.Features; +using SolastaUnfinishedBusiness.Classes; +using SolastaUnfinishedBusiness.Interfaces; +using SolastaUnfinishedBusiness.Subclasses; +using static SolastaUnfinishedBusiness.Builders.Features.FeatureDefinitionCastSpellBuilder; +using static FeatureDefinitionCastSpell; + +namespace SolastaUnfinishedBusiness.Models; + +internal static class SpellPointsContext +{ + private const string ConditionUsedSpellLevel = "ConditionUsedSpellLevel"; + internal const string ConditionUsedSpellLevel6 = $"{ConditionUsedSpellLevel}6"; + internal const string ConditionUsedSpellLevel7 = $"{ConditionUsedSpellLevel}7"; + internal const string ConditionUsedSpellLevel8 = $"{ConditionUsedSpellLevel}8"; + internal const string ConditionUsedSpellLevel9 = $"{ConditionUsedSpellLevel}9"; + + private static readonly List SpellCostByLevel = [0, 2, 3, 5, 6, 7, 9, 10, 11, 13]; + private static readonly List FullCastingSlots = []; + private static readonly List HalfCastingSlots = []; + private static readonly List HalfRoundUpCastingSlots = []; + private static readonly List OneThirdCastingSlots = []; + private static readonly List SpellPointsFullCastingSlots = []; + private static readonly List SpellPointsHalfCastingSlots = []; + private static readonly List SpellPointsHalfRoundUpCastingSlots = []; + private static readonly List SpellPointsOneThirdCastingSlots = []; + + private static readonly List<(string, List, List)> + FeatureDefinitionCastSpellTab = + [ + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellBard.Name, FullCastingSlots, + SpellPointsFullCastingSlots), + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellCleric.Name, FullCastingSlots, + SpellPointsFullCastingSlots), + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellDruid.Name, FullCastingSlots, + SpellPointsFullCastingSlots), + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellPaladin.Name, HalfCastingSlots, + SpellPointsHalfCastingSlots), + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellRanger.Name, HalfCastingSlots, + SpellPointsHalfCastingSlots), + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellSorcerer.Name, FullCastingSlots, + SpellPointsFullCastingSlots), + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellWizard.Name, FullCastingSlots, + SpellPointsFullCastingSlots), + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellMartialSpellBlade.Name, OneThirdCastingSlots, + SpellPointsOneThirdCastingSlots), + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellShadowcaster.Name, OneThirdCastingSlots, + SpellPointsOneThirdCastingSlots), + (InventorClass.SpellCasting.Name, HalfRoundUpCastingSlots, SpellPointsHalfRoundUpCastingSlots), + (RoguishArcaneScoundrel.CastSpellName, OneThirdCastingSlots, SpellPointsOneThirdCastingSlots), + (MartialSpellShield.CastSpellName, OneThirdCastingSlots, SpellPointsOneThirdCastingSlots) + ]; + + private static readonly FeatureDefinitionPower PowerSpellPoints = FeatureDefinitionPowerBuilder + .Create("PowerSpellPoints") + .SetGuiPresentationNoContent(true) + .SetUsesFixed(RuleDefinitions.ActivationTime.NoCost) + .AddCustomSubFeatures( + HasModifiedUses.Marker, + new ModifyPowerPoolAmountPowerSpellPoints()) + .AddToDB(); + + internal static void LateLoad() + { + // create conditions used to ensure only one spell per level above level 6 can be cast + for (var i = 6; i <= 9; i++) + { + _ = ConditionDefinitionBuilder + .Create($"{ConditionUsedSpellLevel}{i}") + .SetGuiPresentationNoContent(true) + .SetSilent(Silent.WhenAddedOrRemoved) + .AddToDB(); + } + + EnumerateSlotsPerLevel(CasterProgression.Full, FullCastingSlots); + EnumerateSlotsPerLevel(CasterProgression.Half, HalfCastingSlots); + EnumerateSlotsPerLevel(CasterProgression.HalfRoundUp, HalfRoundUpCastingSlots); + EnumerateSlotsPerLevel(CasterProgression.OneThird, OneThirdCastingSlots); + EnumerateSlotsPerLevel(CasterProgression.Full, SpellPointsFullCastingSlots, true); + EnumerateSlotsPerLevel(CasterProgression.Half, SpellPointsHalfCastingSlots, true); + EnumerateSlotsPerLevel(CasterProgression.HalfRoundUp, SpellPointsHalfRoundUpCastingSlots, true); + EnumerateSlotsPerLevel(CasterProgression.OneThird, SpellPointsOneThirdCastingSlots, true); + + SwitchFeatureDefinitionCastSpellSlots(); + } + + internal static void SwitchFeatureDefinitionCastSpellSlots() + { + var db = DatabaseRepository.GetDatabase(); + + foreach (var (name, slotsVanilla, slotsSpellPoints) in FeatureDefinitionCastSpellTab) + { + var featureCastSpell = db.GetElement(name); + + featureCastSpell.slotsPerLevels = + Main.Settings.UseAlternateSpellPointsSystem ? slotsSpellPoints : slotsVanilla; + } + } + + private sealed class ModifyPowerPoolAmountPowerSpellPoints : IModifyPowerPoolAmount + { + private static readonly List SpellPointsByLevel = + [ + 0, 4, 6, 14, 17, + // 5 + 27, 32, 38, 44, 57, + // 10 + 64, 73, 73, 83, 83, + // 15 + 94, 94, 107, 114, 123, + // 20 + 133 + ]; + + public FeatureDefinitionPower PowerPool => PowerSpellPoints; + + public int PoolChangeAmount(RulesetCharacter character) + { + var hero = character.GetOriginalHero(); + var casterLevel = GetCasterLevel(hero); + + return SpellPointsByLevel[casterLevel]; + } + + private static int GetCasterLevel(RulesetCharacterHero hero) + { + if (SharedSpellsContext.IsMulticaster(hero)) + { + return SharedSpellsContext.GetSharedCasterLevel(hero); + } + + var spellRepertoire = hero.SpellRepertoires.FirstOrDefault(x => + x.SpellCastingFeature.SpellCastingOrigin + is CastingOrigin.Class + or CastingOrigin.Subclass); + + if (spellRepertoire == null) + { + return 0; + } + + var characterLevel = hero.TryGetAttributeValue(AttributeDefinitions.CharacterLevel); + var casterType = SharedSpellsContext.GetCasterTypeForClassOrSubclass( + spellRepertoire.SpellCastingClass?.Name, spellRepertoire.SpellCastingSubclass?.Name); + + return casterType switch + { + CasterProgression.Full => characterLevel, + CasterProgression.Half when characterLevel <= 1 => 0, + CasterProgression.Half => (characterLevel + 1) / 2, + CasterProgression.HalfRoundUp => (characterLevel + 1) / 2, + CasterProgression.OneThird => (characterLevel + 2) / 3, + _ => 0 + }; + } + } +} diff --git a/SolastaUnfinishedBusiness/Settings.cs b/SolastaUnfinishedBusiness/Settings.cs index 094f373456..62633ad24c 100644 --- a/SolastaUnfinishedBusiness/Settings.cs +++ b/SolastaUnfinishedBusiness/Settings.cs @@ -237,6 +237,7 @@ public class Settings : UnityModManager.ModSettings // // SRD + public bool UseAlternateSpellPointsSystem { get; set; } public bool UseOfficialAdvantageDisadvantageRules { get; set; } public bool UseOfficialFlankingRules { get; set; } public bool UseMathFlankingRules { get; set; } diff --git a/SolastaUnfinishedBusiness/Subclasses/MartialSpellShield.cs b/SolastaUnfinishedBusiness/Subclasses/MartialSpellShield.cs index d5be05e406..07eccba66b 100644 --- a/SolastaUnfinishedBusiness/Subclasses/MartialSpellShield.cs +++ b/SolastaUnfinishedBusiness/Subclasses/MartialSpellShield.cs @@ -20,6 +20,7 @@ namespace SolastaUnfinishedBusiness.Subclasses; public sealed class MartialSpellShield : AbstractSubclass { private const string Name = "SpellShield"; + internal const string CastSpellName = $"CastSpell{Name}"; internal const string FullName = $"Martial{Name}"; public MartialSpellShield() @@ -27,7 +28,7 @@ public MartialSpellShield() // Spell Casting var castSpell = FeatureDefinitionCastSpellBuilder - .Create($"CastSpell{Name}") + .Create(CastSpellName) .SetGuiPresentation(Category.Feature) .SetSpellCastingOrigin(FeatureDefinitionCastSpell.CastingOrigin.Subclass) .SetSpellCastingAbility(Intelligence) diff --git a/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs b/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs index ffd377aff8..bfac969889 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs @@ -23,6 +23,7 @@ public sealed class RoguishArcaneScoundrel : AbstractSubclass { internal const string Name = "RoguishArcaneScoundrel"; internal const int DistractingAmbushLevel = 9; + internal const string CastSpellName = $"CastSpell{Name}"; private const string DistractingAmbush = "DistractingAmbush"; private const string ConditionDistractingAmbushName = $"Condition{Name}{DistractingAmbush}"; @@ -34,7 +35,7 @@ public RoguishArcaneScoundrel() // Spell Casting var castSpell = FeatureDefinitionCastSpellBuilder - .Create($"CastSpell{Name}") + .Create(CastSpellName) .SetGuiPresentation(Category.Feature) .SetSpellCastingOrigin(FeatureDefinitionCastSpell.CastingOrigin.Subclass) .SetSpellCastingAbility(AttributeDefinitions.Intelligence) @@ -134,7 +135,7 @@ public RoguishArcaneScoundrel() powerArcaneBackslashCounterSpell.AddCustomSubFeatures( new ModifyEffectDescriptionArcaneBackslashCounterSpell(powerArcaneBackslashCounterSpell)); - var powerArcaneBacklash = FeatureDefinitionPowerBuilder + var powerArcaneBacklashSneakDamage = FeatureDefinitionPowerBuilder .Create($"Power{Name}ArcaneBackslash") .SetGuiPresentation(Category.Feature) .SetUsesFixed(ActivationTime.NoCost) @@ -154,9 +155,10 @@ public RoguishArcaneScoundrel() .Build()) .AddToDB(); - powerArcaneBacklash.AddCustomSubFeatures( + powerArcaneBacklashSneakDamage.AddCustomSubFeatures( ModifyPowerVisibility.Hidden, - new ActionFinishedByMeArcaneBackslash(powerArcaneBacklash, powerArcaneBackslashCounterSpell)); + new MagicEffectFinishedByMeArcaneBackslash( + powerArcaneBacklashSneakDamage, powerArcaneBackslashCounterSpell)); // LEVEL 17 @@ -223,7 +225,7 @@ public RoguishArcaneScoundrel() .AddFeaturesAtLevel(9, additionalDamageDistractingAmbush) .AddFeaturesAtLevel(13, - autoPreparedSpellsArcaneBackslash, powerArcaneBacklash, powerArcaneBackslashCounterSpell) + autoPreparedSpellsArcaneBackslash, powerArcaneBacklashSneakDamage, powerArcaneBackslashCounterSpell) .AddFeaturesAtLevel(17, featureSetTricksOfTheTrade) .AddToDB(); @@ -267,7 +269,6 @@ private static bool CanUseEssenceTheft(RulesetCharacter character) } private sealed class ModifyEffectDescriptionArcaneBackslashCounterSpell( - // ReSharper disable once SuggestBaseTypeForParameterInConstructor FeatureDefinitionPower powerArcaneBackslashCounterSpell) : IModifyEffectDescription { public bool IsValid( @@ -275,8 +276,8 @@ public bool IsValid( RulesetCharacter character, EffectDescription effectDescription) { - return definition == powerArcaneBackslashCounterSpell - && character.GetClassLevel(CharacterClassDefinitions.Rogue) >= 19; + return definition == powerArcaneBackslashCounterSpell && + character.GetClassLevel(CharacterClassDefinitions.Rogue) >= 19; } public EffectDescription GetEffectDescription( @@ -291,9 +292,8 @@ public EffectDescription GetEffectDescription( } } - private sealed class ActionFinishedByMeArcaneBackslash( + private sealed class MagicEffectFinishedByMeArcaneBackslash( FeatureDefinitionPower powerArcaneBackslash, - // ReSharper disable once SuggestBaseTypeForParameterInConstructor FeatureDefinitionPower powerCounterSpell) : IMagicEffectFinishedByMe { public IEnumerator OnMagicEffectFinishedByMe( @@ -341,11 +341,8 @@ public IEnumerator OnMagicEffectFinishedByMe( } private sealed class CustomBehaviorEssenceTheft( - // ReSharper disable once SuggestBaseTypeForParameterInConstructor FeatureDefinitionPower powerEssenceTheft, - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - ConditionDefinition conditionPossessed) - : IFilterTargetingCharacter, IModifyEffectDescription + ConditionDefinition conditionPossessed) : IFilterTargetingCharacter, IModifyEffectDescription { public bool EnforceFullSelection => false; @@ -379,22 +376,11 @@ public EffectDescription GetEffectDescription( { var hero = character.GetOriginalHero(); - if (hero == null) + if (hero != null && + (hero.TrainedFeats.Contains(ClassFeats.CloseQuartersDex) || + hero.TrainedFeats.Contains(ClassFeats.CloseQuartersInt))) { - return effectDescription; - } - - var damageForm = effectDescription.FindFirstDamageForm(); - - if (damageForm == null) - { - return effectDescription; - } - - if (hero.TrainedFeats.Contains(ClassFeats.CloseQuartersDex) || - hero.TrainedFeats.Contains(ClassFeats.CloseQuartersInt)) - { - damageForm.DieType = DieType.D8; + effectDescription.EffectForms[0].DamageForm.DieType = DieType.D8; } return effectDescription; diff --git a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt index d0aa7776e9..5cd5a293dc 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt @@ -317,6 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Fügen Sie leuchtende Augenfarben hinzu ModUi/&UnlockMarkAndTattoosForAllCharacters=Schalte Zauberer-Ursprungsmarkierungen und Tätowierungen für alle Charaktere frei ModUi/&UnlockSkinColors=Schalte Hautfarben frei ModUi/&Update=Aktualisieren +ModUi/&UseAlternateSpellPointsSystem=Verwenden Sie das alternative Zauberpunkte-System [http://dnd5e.wikidot.com/spell-points] ModUi/&UseElfFaceModelsOnTieflings=Verwenden Sie Elfen-Gesichtsmodelle für Tieflings ModUi/&UseHeightOneCylinderEffect=Verwenden Sie einen Zylindereffekt der Höhe 1, wenn Sie Black Tentacles, Entangle, Grease [square] oder Spike Growth [round] ModUi/&UseMathFlankingRules=+ Verwenden Sie präzise Mathematik, um flankierende [kann sich auf langsamen Maschinen auf die Leistung auswirken] zu bestimmen diff --git a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt index b105c4ab74..271cbab5d5 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt @@ -317,6 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Add glowing eye colors ModUi/&UnlockMarkAndTattoosForAllCharacters=Unlock Sorcerer origin markings and tattoos for all characters ModUi/&UnlockSkinColors=Unlock skin colors ModUi/&Update=Update +ModUi/&UseAlternateSpellPointsSystem=Use variant Spell Points system [http://dnd5e.wikidot.com/spell-points] ModUi/&UseElfFaceModelsOnTieflings=Use Elf face models on Tieflings ModUi/&UseHeightOneCylinderEffect=Use a height 1 cylinder effect when casting Black Tentacles, Entangle, Grease [square] or Spike Growth [round] ModUi/&UseMathFlankingRules=+ Use precise math to determine flanking [may have a performance impact on slow machines] diff --git a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt index 76be61026c..89a3a591e7 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt @@ -317,6 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Añade colores de ojos brillantes ModUi/&UnlockMarkAndTattoosForAllCharacters=Desbloquea marcas de origen y tatuajes de Hechicero para todos los personajes. ModUi/&UnlockSkinColors=Desbloquear colores de piel ModUi/&Update=Actualizar +ModUi/&UseAlternateSpellPointsSystem=Utilice la variante Spell Points del sistema [http://dnd5e.wikidot.com/spell-points] ModUi/&UseElfFaceModelsOnTieflings=Utilice modelos de cara de Elfo en Teflings ModUi/&UseHeightOneCylinderEffect=Utilice un efecto de cilindro de altura 1 al lanzar Tentáculos negros, Enredar, Grasa [cuadrado] o Crecimiento máximo [ronda] ModUi/&UseMathFlankingRules=+ Utilice matemáticas precisas para determinar el flanqueo [puede tener un impacto en el rendimiento en máquinas lentas] diff --git a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt index d67dba3f76..e56f7e1d5f 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt @@ -317,6 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Ajoutez des couleurs d'yeux éclatantes ModUi/&UnlockMarkAndTattoosForAllCharacters=Débloquez les marques et tatouages d'origine Sorcier pour tous les personnages. ModUi/&UnlockSkinColors=Débloquez les couleurs de peau ModUi/&Update=Mise à jour +ModUi/&UseAlternateSpellPointsSystem=Utilisez la variante du système Spell Points [http://dnd5e.wikidot.com/spell-points] ModUi/&UseElfFaceModelsOnTieflings=Utilisez des modèles de visage Elfe sur les Tieflings ModUi/&UseHeightOneCylinderEffect=Utilisez un effet de cylindre de hauteur 1 lors du lancement de Tentacules noires, enchevêtrement, graisse [carré] ou Pic de croissance [rond] ModUi/&UseMathFlankingRules=+ Utilisez des calculs précis pour déterminer le contournement [peut avoir un impact sur les performances sur les machines lentes] diff --git a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt index 899d45aef1..9fb889d99e 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt @@ -317,6 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Aggiungi colori luminosi per gli occhi ModUi/&UnlockMarkAndTattoosForAllCharacters=Sblocca i segni di origine e i tatuaggi Stregone per tutti i personaggi ModUi/&UnlockSkinColors=Sblocca i colori della pelle ModUi/&Update=Aggiorna +ModUi/&UseAlternateSpellPointsSystem=Utilizza la variante Punti incantesimo del sistema [http://dnd5e.wikidot.com/spell-points] ModUi/&UseElfFaceModelsOnTieflings=Usa i modelli del volto di Elfo su Tiefling ModUi/&UseHeightOneCylinderEffect=Usa un effetto del cilindro di altezza 1 quando lanci Tentacoli neri, Intralciare, Ungere [quadrato] o Picco di crescita [turno] ModUi/&UseMathFlankingRules=+ Utilizza calcoli precisi per determinare il fiancheggiamento [potrebbe avere un impatto sulle prestazioni sulle macchine lente] diff --git a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt index 838a6a70c5..c2abf15436 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt @@ -317,6 +317,7 @@ ModUi/&UnlockGlowingEyeColors=輝く目の色を追加する ModUi/&UnlockMarkAndTattoosForAllCharacters=すべてのキャラクターのソーサラーのオリジンマークとタトゥーをロック解除する ModUi/&UnlockSkinColors=肌の色のロックを解除する ModUi/&Update=更新 +ModUi/&UseAlternateSpellPointsSystem=バリアント スペルポイント システム [http://dnd5e.wikidot.com/spell-points] を使用します。 ModUi/&UseElfFaceModelsOnTieflings=ティーフリングでエルフの顔モデルを使用する ModUi/&UseHeightOneCylinderEffect=黒い触手、絡まり、グリース [square] または スパイク成長 [ラウンド] ModUi/&UseMathFlankingRules=+ 正確な計算を使用して側面攻撃を決定します[遅いマシンではパフォーマンスに影響を与える可能性があります] diff --git a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt index b3a23a6916..c4b3ae6420 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt @@ -317,6 +317,7 @@ ModUi/&UnlockGlowingEyeColors=빛나는 눈 색깔 추가 ModUi/&UnlockMarkAndTattoosForAllCharacters=모든 캐릭터의 소서러 원산지 표시와 문신을 잠금 해제하세요. ModUi/&UnlockSkinColors=피부색 잠금 해제 ModUi/&Update=업데이트 +ModUi/&UseAlternateSpellPointsSystem=변형 주문 포인트 시스템 사용 [http://dnd5e.wikidot.com/spell-points] ModUi/&UseElfFaceModelsOnTieflings=티플링에서 엘프 얼굴 모델을 사용하세요. ModUi/&UseHeightOneCylinderEffect=Black Tentacles, Entangle, Grease [square] 또는 를 시전할 때 높이 1 원통 효과를 사용하세요. 급상승 [round] ModUi/&UseMathFlankingRules=+ 정확한 수학을 사용하여 측면 공격 결정 [느린 시스템에서는 성능에 영향을 미칠 수 있음] diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt index bfeab31e46..f37e5ec8c2 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt @@ -317,6 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Adicione cores de olhos brilhantes ModUi/&UnlockMarkAndTattoosForAllCharacters=Desbloqueie marcas de origem e tatuagens do Feiticeiro para todos os personagens ModUi/&UnlockSkinColors=Desbloquear cores de pele ModUi/&Update=Atualização +ModUi/&UseAlternateSpellPointsSystem=Use o sistema variante de pontos de feitiço [http://dnd5e.wikidot.com/spell-points] ModUi/&UseElfFaceModelsOnTieflings=Use modelos de rosto de Elfo em Tieflings ModUi/&UseHeightOneCylinderEffect=Use um efeito de cilindro de altura 1 ao lançar Black Tentacles, Entangle, Grease [square] ou Pico de crescimento [rodada] ModUi/&UseMathFlankingRules=+ Use matemática precisa para determinar o flanqueamento [pode ter um impacto no desempenho em máquinas lentas] diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index 1598a678fa..614de70644 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -317,6 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Добавить светящиеся цвета ModUi/&UnlockMarkAndTattoosForAllCharacters=Разблокировать родовые отметины и татуировки Чародея для всех персонажей ModUi/&UnlockSkinColors=Разблокировать цвета кожи ModUi/&Update=Обновить +ModUi/&UseAlternateSpellPointsSystem=Используйте вариант системы Очки заклинаний [http://dnd5e.wikidot.com/spell-points] ModUi/&UseElfFaceModelsOnTieflings=Использовать Эльфийские лица на Тифлингах ModUi/&UseHeightOneCylinderEffect=Ограничить высоту эффекта одним уровнем при накладывании Чёрных щупалец, Опутывания, Смазки [квадрат] или Шипов [круг] ModUi/&UseMathFlankingRules=+ Использовать точную математику для определения окружения [может повлиять на производительность на медленных компьютерах] diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt index d456e48b82..fce2ab0cee 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt @@ -317,6 +317,7 @@ ModUi/&UnlockGlowingEyeColors=添加亮色的眼睛 ModUi/&UnlockMarkAndTattoosForAllCharacters=解锁所有角色的术士起源标记和纹身 ModUi/&UnlockSkinColors=解锁肤色 ModUi/&Update=更新 +ModUi/&UseAlternateSpellPointsSystem=使用变体法术点数系统[http://dnd5e.wikidot.com/spell-points] ModUi/&UseElfFaceModelsOnTieflings=在提夫林上使用精灵的面部模型 ModUi/&UseHeightOneCylinderEffect=施放黑色触手、纠缠、油腻[方形]荆棘丛生[圆形]时使用高度为1的立体效果 ModUi/&UseMathFlankingRules=+ 使用精确的数学来确定侧翼 [可能会对慢速机器产生性能影响] From 94241e1c9221a01465dd66699a1e01d438f89b18 Mon Sep 17 00:00:00 2001 From: Dovel Date: Fri, 12 Jul 2024 13:48:11 +0300 Subject: [PATCH 24/91] update russian translation --- SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt | 2 +- .../Translations/ru/SubClasses/PathOfTheBeast-ru.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index 614de70644..5ae77ec78a 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Добавить светящиеся цвета ModUi/&UnlockMarkAndTattoosForAllCharacters=Разблокировать родовые отметины и татуировки Чародея для всех персонажей ModUi/&UnlockSkinColors=Разблокировать цвета кожи ModUi/&Update=Обновить -ModUi/&UseAlternateSpellPointsSystem=Используйте вариант системы Очки заклинаний [http://dnd5e.wikidot.com/spell-points] +ModUi/&UseAlternateSpellPointsSystem=Использовать вариант системы Очков заклинаний [http://dnd5e.wikidot.com/spell-points] ModUi/&UseElfFaceModelsOnTieflings=Использовать Эльфийские лица на Тифлингах ModUi/&UseHeightOneCylinderEffect=Ограничить высоту эффекта одним уровнем при накладывании Чёрных щупалец, Опутывания, Смазки [квадрат] или Шипов [круг] ModUi/&UseMathFlankingRules=+ Использовать точную математику для определения окружения [может повлиять на производительность на медленных компьютерах] diff --git a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/PathOfTheBeast-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/PathOfTheBeast-ru.txt index e7bb32f8b5..c3953e18b8 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/PathOfTheBeast-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/PathOfTheBeast-ru.txt @@ -24,7 +24,7 @@ Feature/&PowerPathOfTheBeastFormOfTheBeastTailTitle=Форма зверя: хв Feature/&PowerPathOfTheBeastFormOfTheBeastTitle=Форма зверя Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeDescription=Цель совершает рукопашную атаку против другого существа по вашему выбору. Feature/&PowerPathOfTheBeastInfectiousFuryCompelledStrikeTitle=Заразная ярость: Принудительный удар -Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Когда вы в ярости и попадаете по существу своим природным оружием, зверь внутри вас может проклясть цель атаки бешенством. Цель должна преуспеть в спасброске Мудрости (Сл 8 + ваш модификатор Телосложения + ваш бонус мастерства), иначе получит один из следующих эффектов (по вашему выбору). +Feature/&PowerPathOfTheBeastInfectiousFuryDescription=Когда вы в ярости и попадаете по существу своим природным оружием, зверь внутри вас может проклясть цель атаки бешенством. Цель должна преуспеть в спасброске Мудрости (Сл 8 + ваш модификатор Телосложения + ваш бонус мастерства), иначе получит один из следующих эффектов (по вашему выбору).\n\nВы можете использовать это умение количество раз, равное вашему бонусу мастерства, вы восстанавливаете все использования по окончании продолжительного отдыха. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashDescription=Цель получает 2d12 урона психической энергией. Feature/&PowerPathOfTheBeastInfectiousFuryMindlashTitle=Заразная ярость: Взрыв разума Feature/&PowerPathOfTheBeastInfectiousFuryTitle=Заразная ярость From 1f4efc78060944a0bea3ed9ac90adfd83f54299e Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Fri, 12 Jul 2024 16:11:12 -0700 Subject: [PATCH 25/91] add custom portraits --- SolastaUnfinishedBusiness/Portraits/Achtung.png | Bin 0 -> 46777 bytes SolastaUnfinishedBusiness/Portraits/Bawwit.png | Bin 0 -> 52676 bytes .../Portraits/Haveruss.png | Bin 0 -> 52099 bytes SolastaUnfinishedBusiness/Portraits/Kirian.png | Bin 0 -> 50577 bytes SolastaUnfinishedBusiness/Portraits/Sohrden.png | Bin 0 -> 53149 bytes SolastaUnfinishedBusiness/Portraits/Thaelen.png | Bin 0 -> 57013 bytes SolastaUnfinishedBusiness/Portraits/Tijiriu.png | Bin 0 -> 40315 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 SolastaUnfinishedBusiness/Portraits/Achtung.png create mode 100644 SolastaUnfinishedBusiness/Portraits/Bawwit.png create mode 100644 SolastaUnfinishedBusiness/Portraits/Haveruss.png create mode 100644 SolastaUnfinishedBusiness/Portraits/Kirian.png create mode 100644 SolastaUnfinishedBusiness/Portraits/Sohrden.png create mode 100644 SolastaUnfinishedBusiness/Portraits/Thaelen.png create mode 100644 SolastaUnfinishedBusiness/Portraits/Tijiriu.png diff --git a/SolastaUnfinishedBusiness/Portraits/Achtung.png b/SolastaUnfinishedBusiness/Portraits/Achtung.png new file mode 100644 index 0000000000000000000000000000000000000000..ceba862e7ce45b8d1aa2b9a989e8dbbe6a71c7e3 GIT binary patch literal 46777 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%0AcxbgJ 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%0Du8jOetqj>wUMjJ6eW@Py<8%6#|~#QWv&MX^1_x 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 Z^9SFcWU_6p=DGj?002ovPDHLkV1gnNI066w literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Portraits/Haveruss.png b/SolastaUnfinishedBusiness/Portraits/Haveruss.png new file mode 100644 index 0000000000000000000000000000000000000000..d13de10560247abe6db402a02f69eda2b9696af4 GIT binary patch literal 52099 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

+ /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] SickeningRadiance { + get { + object obj = ResourceManager.GetObject("SickeningRadiance", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// diff --git a/SolastaUnfinishedBusiness/Properties/Resources.resx b/SolastaUnfinishedBusiness/Properties/Resources.resx index 58512c2ac6..ded93647a3 100644 --- a/SolastaUnfinishedBusiness/Properties/Resources.resx +++ b/SolastaUnfinishedBusiness/Properties/Resources.resx @@ -152,6 +152,11 @@ PublicKeyToken=b77a5c561934e089 + + ../Resources/Spells/SickeningRadiance.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + ../Resources/Spells/ShelterFromEnergy.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 diff --git a/SolastaUnfinishedBusiness/Resources/Spells/SickeningRadiance.png b/SolastaUnfinishedBusiness/Resources/Spells/SickeningRadiance.png new file mode 100644 index 0000000000000000000000000000000000000000..a59bc55a07b1fa8d63140741e0ee82f20647774f GIT binary patch literal 14022 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 literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs index b56621d2eb..238f5219fe 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs @@ -7,7 +7,7 @@ using SolastaUnfinishedBusiness.Builders.Features; using SolastaUnfinishedBusiness.CustomUI; using SolastaUnfinishedBusiness.Interfaces; -using SolastaUnfinishedBusiness.Properties; +using UnityEngine; using UnityEngine.AddressableAssets; using static ActionDefinitions; using static RuleDefinitions; @@ -17,6 +17,7 @@ using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionConditionAffinitys; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionDamageAffinitys; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionPowers; +using Resources = SolastaUnfinishedBusiness.Properties.Resources; namespace SolastaUnfinishedBusiness.Spells; @@ -314,6 +315,149 @@ internal static SpellDefinition BuildStaggeringSmite() #endregion + #region Sickening Radiance + + internal static SpellDefinition BuildSickeningRadiance() + { + const string NAME = "SickeningRadiance"; + + var proxy = EffectProxyDefinitionBuilder + .Create(EffectProxyDefinitions.ProxyIndomitableLight, $"Proxy{NAME}") + .SetGuiPresentation(NAME, Category.Spell, Gui.NoLocalization) + .AddToDB(); + + proxy.addLightSource = true; + proxy.lightSourceForm.brightRange = 0; + proxy.lightSourceForm.dimAdditionalRange = 6; + proxy.lightSourceForm.color = new Color(0.5f, 0.7f, 0.3f, 1.0f); + + var condition = ConditionDefinitionBuilder + .Create($"Condition{NAME}") + .SetGuiPresentation(Category.Condition, ConditionBaned) + .SetConditionType(ConditionType.Detrimental) + .SetPossessive() + .SetSpecialDuration(DurationType.Minute, 10) + .SetFeatures( + FeatureDefinitionConditionAffinityBuilder + .Create($"ConditionAffinity{NAME}") + .SetGuiPresentationNoContent(true) + .SetConditionType(ConditionInvisibleBase) + .SetConditionAffinityType(ConditionAffinityType.Immunity) + .AddToDB(), + FeatureDefinitionAbilityCheckAffinitys.AbilityCheckAffinityConditionExhausted) + .AddCustomSubFeatures(new OnConditionAddedOrRemovedSickeningRadiance()) + .AddToDB(); + + condition.silentWhenRefreshed = true; + + var conditionMark = ConditionDefinitionBuilder + .Create($"Condition{NAME}Mark") + .SetGuiPresentationNoContent(true) + .SetSilent(Silent.WhenAddedOrRemoved) + .AddCustomSubFeatures(new OnConditionAddedOrRemovedSickeningRadianceSelf(condition)) + .AddToDB(); + + var spell = SpellDefinitionBuilder + .Create(NAME) + .SetGuiPresentation(Category.Spell, Sprites.GetSprite(NAME, Resources.SickeningRadiance, 128)) + .SetSchoolOfMagic(SchoolOfMagicDefinitions.SchoolEvocation) + .SetSpellLevel(4) + .SetCastingTime(ActivationTime.Action) + .SetMaterialComponent(MaterialComponentType.Mundane) + .SetSomaticComponent(true) + .SetVerboseComponent(true) + .SetVocalSpellSameType(VocalSpellSemeType.Attack) + .SetRequiresConcentration(true) + .SetEffectDescription( + EffectDescriptionBuilder + .Create() + .SetDurationData(DurationType.Minute, 10) + .SetTargetingData(Side.All, RangeType.Distance, 24, TargetType.Sphere, 6) + .SetSavingThrowData( + false, + AttributeDefinitions.Constitution, + true, + EffectDifficultyClassComputation.SpellCastingFeature) + .SetRecurrentEffect(RecurrentEffect.OnEnter | RecurrentEffect.OnTurnStart) + .SetEffectForms( + EffectFormBuilder + .Create() + .HasSavingThrow(EffectSavingThrowType.Negates) + .SetDamageForm(DamageTypeRadiant, 4, DieType.D10) + .Build(), + EffectFormBuilder + .Create() + .HasSavingThrow(EffectSavingThrowType.Negates) + .SetConditionForm(condition, ConditionForm.ConditionOperation.Add) + .Build(), + EffectFormBuilder + .Create() + .SetSummonEffectProxyForm(proxy) + .Build(), + EffectFormBuilder.ConditionForm(conditionMark, ConditionForm.ConditionOperation.Add, true, + true)) + .SetCasterEffectParameters(GuardianOfFaith) + .SetEffectEffectParameters(Sunburst) + .Build()) + .AddToDB(); + + return spell; + } + + private sealed class OnConditionAddedOrRemovedSickeningRadianceSelf(ConditionDefinition conditionSickenedRadiance) + : IOnConditionAddedOrRemoved + { + public void OnConditionAdded(RulesetCharacter target, RulesetCondition rulesetCondition) + { + // empty + } + + public void OnConditionRemoved(RulesetCharacter target, RulesetCondition rulesetCondition) + { + var locationCharacterService = ServiceRepository.GetService(); + var contenders = + Gui.Battle?.AllContenders ?? + locationCharacterService.PartyCharacters.Union(locationCharacterService.GuestCharacters); + + foreach (var contender in contenders) + { + var rulesetContender = contender.RulesetActor; + + if (contender.RulesetCharacter.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionSickenedRadiance.Name, out var activeCondition)) + { + rulesetContender.RemoveCondition(activeCondition); + } + } + } + } + + private sealed class OnConditionAddedOrRemovedSickeningRadiance : IOnConditionAddedOrRemoved + { + public void OnConditionAdded(RulesetCharacter target, RulesetCondition rulesetCondition) + { + var caster = EffectHelpers.GetCharacterByGuid(rulesetCondition.SourceGuid); + + rulesetCondition.RemainingRounds = caster.ConcentratedSpell.RemainingRounds; + + var lightSourceForm = FaerieFire.EffectDescription + .GetFirstFormOfType(EffectForm.EffectFormType.LightSource).LightSourceForm; + + var rulesetLightSource = new RulesetLightSource(new Color(0, 0.6f, 0), 0, 1, + lightSourceForm.GraphicsPrefabAssetGUID, + LightSourceType.Basic, rulesetCondition.effectDefinitionName, target.Guid); + + caster.ConcentratedSpell.TrackedLightSourceGuids.Add(rulesetLightSource.Guid); + } + + public void OnConditionRemoved(RulesetCharacter target, RulesetCondition rulesetCondition) + { + // empty + } + } + + #endregion + #region Vitriolic Sphere internal static SpellDefinition BuildVitriolicSphere() diff --git a/SolastaUnfinishedBusiness/Translations/de/Spells/Spells04-de.txt b/SolastaUnfinishedBusiness/Translations/de/Spells/Spells04-de.txt index 3c843bf257..75acc6be42 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Spells/Spells04-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Spells/Spells04-de.txt @@ -13,6 +13,8 @@ Condition/&ConditionElementalBaneTitle=Elementarfluch: {0} Condition/&ConditionIrresistiblePerformanceDescription=Sie können keine Aktionen ausführen, die Ihre Hände oder Ihren Mund erfordern, können sich aber ansonsten normal verhalten. Condition/&ConditionIrresistiblePerformanceTitle=Dinah-Moe Humm Condition/&ConditionPsionicBlastTitle=Verwirrter Geist +Condition/&ConditionSickeningRadianceDescription=Du erleidest eine Erschöpfungsstufe und strahlst ein schwaches, grünliches Licht in einem Radius von 1,5 Metern aus. Dieses Licht macht es unmöglich, dass du unsichtbar bist. +Condition/&ConditionSickeningRadianceTitle=Krankmachende Ausstrahlung Condition/&ConditionStaggeringSmiteEnemyDescription=Du wirst von psychischem Schaden getroffen. Condition/&ConditionStaggeringSmiteEnemyTitle=Atemberaubender Schlag Condition/&ConditionTreeForestGuardianDescription=Du erhältst 10 temporäre Trefferpunkte, du führst konstitutionsrettende Würfe mit Vorteil aus und du führst auf Geschicklichkeit und Weisheit basierende Angriffswürfe mit Vorteil durch. @@ -50,6 +52,8 @@ Spell/&PsionicBlastDescription=Du entfesselst eine lähmende Welle mentaler Kraf Spell/&PsionicBlastTitle=Psi-Explosion Spell/&PsychicLanceDescription=Sie entfesseln eine schimmernde Lanze psychischer Kraft von Ihrer Stirn auf eine Kreatur, die Sie in Reichweite sehen können. Ein Intelligenzrettungswurf muss ihm gelingen, sonst erleidet er 7W6 psychischen Schaden und ist bis zum Ende deines nächsten Zuges außer Gefecht gesetzt. Bei einem erfolgreichen Rettungswurf erleidet die Kreatur den halben Schaden und wird nicht außer Gefecht gesetzt. Auf höheren Ebenen. Wenn Sie diesen Zauber mit einem Zauberslot der 4. Stufe oder höher wirken, erhöht sich der Schaden um 1W6 für jede Slotstufe über der 4. Stufe. Spell/&PsychicLanceTitle=Raulothims psychische Lanze +Spell/&SickeningRadianceDescription=Schwaches Licht breitet sich in einer Kugel mit einem Radius von 30 Fuß aus, deren Mittelpunkt ein von dir gewählter Punkt innerhalb der Reichweite ist. Das Licht breitet sich um Ecken aus und hält an, bis der Zauber endet. Wenn sich eine Kreatur während einer Runde zum ersten Mal in den Bereich des Zaubers bewegt oder ihre Runde dort beginnt, muss diese Kreatur einen Konstitutionsrettungswurf bestehen oder 4W10 Strahlungsschaden erleiden, erleidet eine Stufe Erschöpfung und strahlt ein schwaches Licht in einem Radius von 5 Fuß aus. Dieses Licht macht es der Kreatur unmöglich, von ihrer Unsichtbarkeit zu profitieren. Das Licht und alle Stufen der Erschöpfung, die durch diesen Zauber verursacht wurden, verschwinden, wenn der Zauber endet. +Spell/&SickeningRadianceTitle=Krankmachende Ausstrahlung Spell/&StaggeringSmiteDescription=Wenn du während der Dauer dieses Zaubers das nächste Mal eine Kreatur mit einem Waffenangriff triffst, durchdringt deine Waffe Körper und Geist und der Angriff fügt dem Ziel zusätzlich 4W6 psychischen Schaden zu. Das Ziel muss einen Weisheitsrettungswurf durchführen. Bei einem fehlgeschlagenen Rettungswurf hat es bis zum Ende seines nächsten Zuges einen Nachteil bei Angriffswürfen und Fähigkeitsüberprüfungen und kann keine Reaktionen annehmen. Spell/&StaggeringSmiteTitle=Atemberaubender Schlag Spell/&TreeForestGuardianDescription=Ihre Haut erscheint rindenartig, Blätter sprießen aus Ihrem Haar und Sie erhalten die folgenden Vorteile:\n• Sie erhalten 10 temporäre Trefferpunkte.\n• Sie machen Konstitutionsrettungswürfe mit Vorteil.\n• Sie machen Geschicklichkeits- und Weisheitsbasierte Angriffswürfe mit Vorteil.\n• Kreaturen im Umkreis von 30 Fuß um Sie müssen einen Stärkerettungswurf machen oder werden für die Dauer des Zaubers behindert. Sie können den Rettungswurf zu Beginn jeder Runde wiederholen. diff --git a/SolastaUnfinishedBusiness/Translations/en/Spells/Spells04-en.txt b/SolastaUnfinishedBusiness/Translations/en/Spells/Spells04-en.txt index 80d1e8859f..f19e592f2a 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Spells/Spells04-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Spells/Spells04-en.txt @@ -13,6 +13,8 @@ Condition/&ConditionElementalBaneTitle=Elemental Bane: {0} Condition/&ConditionIrresistiblePerformanceDescription=You cannot perform any actions that require your hands or mouth but can otherwise act normally. Condition/&ConditionIrresistiblePerformanceTitle=Dinah-Moe Humm Condition/&ConditionPsionicBlastTitle=Muddled Mind +Condition/&ConditionSickeningRadianceDescription=You suffer one level of exhaustion and emit a dim, greenish light in a 5-foot radius. This light makes it impossible for you from being invisible. +Condition/&ConditionSickeningRadianceTitle=Sickening Radiance Condition/&ConditionStaggeringSmiteEnemyDescription=You're hit by psychic damage. Condition/&ConditionStaggeringSmiteEnemyTitle=Staggering Smite Condition/&ConditionTreeForestGuardianDescription=You gain 10 temporary hit points, you make Constitution saving throws with advantage, and you make Dexterity and Wisdom-based attack rolls with advantage. @@ -50,6 +52,8 @@ Spell/&PsionicBlastDescription=You unleash a debilitating wave of mental power i Spell/&PsionicBlastTitle=Psionic Blast Spell/&PsychicLanceDescription=You unleash a shimmering lance of psychic power from your forehead at a creature that you can see within range. It must succeed on an Intelligence saving throw or take 7d6 psychic damage and be incapacitated until the end of your next turn. On a successful save, the creature takes half damage and isn't incapacitated. At Higher Levels. When you cast this spell using a spell slot of 4th level or higher, the damage increases by 1d6 for each slot level above 4th. Spell/&PsychicLanceTitle=Raulothim's Psychic Lance +Spell/&SickeningRadianceDescription=Dim light spreads within a 30-foot-radius sphere centered on a point you choose within range. The light spreads around corners, and it lasts until the spell ends. When a creature moves into the spell's area for the first time on a turn or starts its turn there, that creature must succeed on a Constitution saving throw or take 4d10 radiant damage, and it suffers one level of exhaustion and emits a dim light in a 5-foot radius. This light makes it impossible for the creature to benefit from being invisible. The light and any levels of exhaustion caused by this spell go away when the spell ends. +Spell/&SickeningRadianceTitle=Sickening Radiance Spell/&StaggeringSmiteDescription=The next time you hit a creature with a weapon attack during this spell's duration, your weapon pierces both body and mind, and the attack deals an extra 4d6 psychic damage to the target. The target must make a Wisdom saving throw. On a failed save, it has disadvantage on attack rolls and ability checks, and can't take reactions, until the end of its next turn. Spell/&StaggeringSmiteTitle=Staggering Smite Spell/&TreeForestGuardianDescription=Your skin appears barky, leaves sprout from your hair, and you gain the following benefits:\n• You gain 10 temporary hit points.\n• You make Constitution saving throws with advantage.\n• You make Dexterity and Wisdom-based attack rolls with advantage.\n• Creatures within 30 feet of you must make a Strength saving throw or be hindered for the spell duration. They can retry the save every turn start. diff --git a/SolastaUnfinishedBusiness/Translations/es/Spells/Spells04-es.txt b/SolastaUnfinishedBusiness/Translations/es/Spells/Spells04-es.txt index 28c5e0662e..e56efd3b0a 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Spells/Spells04-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Spells/Spells04-es.txt @@ -13,6 +13,8 @@ Condition/&ConditionElementalBaneTitle=Perdición elemental: {0} Condition/&ConditionIrresistiblePerformanceDescription=No puede realizar ninguna acción que requiera el uso de las manos o la boca, pero por lo demás puede actuar con normalidad. Condition/&ConditionIrresistiblePerformanceTitle=Dinah Moe Humm Condition/&ConditionPsionicBlastTitle=Mente confusa +Condition/&ConditionSickeningRadianceDescription=Sufres un nivel de agotamiento y emites una luz tenue y verdosa en un radio de 5 pies. Esta luz te hace imposible ser invisible. +Condition/&ConditionSickeningRadianceTitle=Resplandor repugnante Condition/&ConditionStaggeringSmiteEnemyDescription=Estás golpeado por daño psíquico. Condition/&ConditionStaggeringSmiteEnemyTitle=Golpe asombroso Condition/&ConditionTreeForestGuardianDescription=Obtienes 10 puntos de vida temporales, realizas tiradas de salvación de Constitución con ventaja y realizas tiradas de ataque basadas en Destreza y Sabiduría con ventaja. @@ -50,6 +52,8 @@ Spell/&PsionicBlastDescription=Desatas una ola debilitante de poder mental en un Spell/&PsionicBlastTitle=Explosión psiónica Spell/&PsychicLanceDescription=Liberas una lanza brillante de poder psíquico desde tu frente hacia una criatura que puedes ver dentro del alcance. Debe superar una tirada de salvación de Inteligencia o sufrir 7d6 de daño psíquico y quedar incapacitado hasta el final de tu siguiente turno. Con una salvación exitosa, la criatura sufre la mitad del daño y no queda incapacitada. En niveles superiores. Cuando lanzas este hechizo usando un espacio de hechizo de 4º nivel o superior, el daño aumenta en 1d6 por cada nivel de espacio por encima del 4º. Spell/&PsychicLanceTitle=Lanza psíquica de Raulothim +Spell/&SickeningRadianceDescription=La luz tenue se propaga dentro de una esfera de 30 pies de radio centrada en un punto que elijas dentro del alcance. La luz se esparce por las esquinas y dura hasta que termina el hechizo. Cuando una criatura se mueve al área del hechizo por primera vez en un turno o comienza su turno allí, esa criatura debe superar una tirada de salvación de Constitución o sufrir 4d10 de daño radiante, sufre un nivel de agotamiento y emite una luz tenue en un Radio de 5 pies. Esta luz hace imposible que la criatura se beneficie de ser invisible. La luz y cualquier nivel de agotamiento causado por este hechizo desaparecen cuando termina el hechizo. +Spell/&SickeningRadianceTitle=Resplandor repugnante Spell/&StaggeringSmiteDescription=La próxima vez que golpees a una criatura con un ataque con arma durante la duración de este hechizo, tu arma atravesará tanto el cuerpo como la mente, y el ataque causará 4d6 daños psíquicos adicionales al objetivo. El objetivo debe realizar una tirada de salvación de Sabiduría. En una salvación fallida, tiene desventaja en las tiradas de ataque y pruebas de habilidad, y no puede reaccionar hasta el final de su siguiente turno. Spell/&StaggeringSmiteTitle=Golpe asombroso Spell/&TreeForestGuardianDescription=Tu piel parece corteza, brotan hojas de tu cabello y obtienes los siguientes beneficios:\n• Obtienes 10 puntos de vida temporales.\n• Realizas tiradas de salvación de Constitución con ventaja.\n• Obtienes Destreza y Sabiduría. tiradas de ataque basadas en ataques con ventaja.\n• Las criaturas a 30 pies de ti deben realizar una tirada de salvación de Fuerza o quedarán obstaculizadas durante la duración del hechizo. Pueden volver a intentar guardar cada inicio de turno. diff --git a/SolastaUnfinishedBusiness/Translations/fr/Spells/Spells04-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Spells/Spells04-fr.txt index bf06db0454..ca6038c88f 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Spells/Spells04-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Spells/Spells04-fr.txt @@ -13,6 +13,8 @@ Condition/&ConditionElementalBaneTitle=Fléau élémentaire : {0} Condition/&ConditionIrresistiblePerformanceDescription=Vous ne pouvez effectuer aucune action nécessitant vos mains ou votre bouche, mais vous pouvez autrement agir normalement. Condition/&ConditionIrresistiblePerformanceTitle=Dinah Moe Humm Condition/&ConditionPsionicBlastTitle=Esprit confus +Condition/&ConditionSickeningRadianceDescription=Vous souffrez d'un niveau d'épuisement et émettez une faible lumière verdâtre dans un rayon de 1,5 mètre. Cette lumière vous empêche d'être invisible. +Condition/&ConditionSickeningRadianceTitle=Radiance écoeurante Condition/&ConditionStaggeringSmiteEnemyDescription=Vous êtes touché par des dégâts psychiques. Condition/&ConditionStaggeringSmiteEnemyTitle=Châtiment stupéfiant Condition/&ConditionTreeForestGuardianDescription=Vous gagnez 10 points de vie temporaires, vous effectuez des jets de sauvegarde de Constitution avec avantage et vous effectuez des jets d'attaque basés sur la Dextérité et la Sagesse avec avantage. @@ -50,6 +52,8 @@ Spell/&PsionicBlastDescription=Vous déchaînez une vague de puissance mentale d Spell/&PsionicBlastTitle=Explosion psionique Spell/&PsychicLanceDescription=Vous lancez une lance scintillante de pouvoir psychique depuis votre front sur une créature que vous pouvez voir à portée. Il doit réussir un jet de sauvegarde d'Intelligence ou subir 7d6 dégâts psychiques et être neutralisé jusqu'à la fin de votre prochain tour. En cas de sauvegarde réussie, la créature subit la moitié des dégâts et n'est pas incapable d'agir. Aux niveaux supérieurs. Lorsque vous lancez ce sort en utilisant un emplacement de sort de niveau 4 ou supérieur, les dégâts augmentent de 1d6 pour chaque niveau d'emplacement supérieur au 4e. Spell/&PsychicLanceTitle=Lance psychique de Raulothim +Spell/&SickeningRadianceDescription=Une faible lumière se propage dans une sphère de 9 mètres de rayon centrée sur un point que vous choisissez à portée. La lumière se propage dans les coins et dure jusqu'à la fin du sort. Lorsqu'une créature entre dans la zone du sort pour la première fois au cours d'un tour ou y commence son tour, cette créature doit réussir un jet de sauvegarde de Constitution ou subir 4d10 dégâts radiants, et elle subit un niveau d'épuisement et émet une faible lumière dans un instant. Rayon de 5 pieds. Cette lumière empêche la créature de bénéficier de l'invisibilité. La lumière et tout niveau d'épuisement provoqué par ce sort disparaissent à la fin du sort. +Spell/&SickeningRadianceTitle=Éclat écœurant Spell/&StaggeringSmiteDescription=La prochaine fois que vous toucherez une créature avec une attaque avec une arme pendant la durée de ce sort, votre arme transperce à la fois le corps et l'esprit, et l'attaque inflige 4d6 dégâts psychiques supplémentaires à la cible. La cible doit effectuer un jet de sauvegarde de Sagesse. En cas d'échec, il est désavantagé aux jets d'attaque et aux tests de caractéristiques, et ne peut pas réagir jusqu'à la fin de son prochain tour. Spell/&StaggeringSmiteTitle=Châtiment stupéfiant Spell/&TreeForestGuardianDescription=Votre peau semble aboyer, des feuilles poussent sur vos cheveux et vous bénéficiez des avantages suivants :\n• Vous gagnez 10 points de vie temporaires.\n• Vous effectuez des jets de sauvegarde de Constitution avec avantage.\n• Vous gagnez de la Dextérité et de la Sagesse. -les jets d'attaque basés sur l'avantage sont avantageux.\n• Les créatures à moins de 9 mètres de vous doivent effectuer un jet de sauvegarde de Force ou être gênées pendant la durée du sort. Ils peuvent réessayer la sauvegarde à chaque début de tour. diff --git a/SolastaUnfinishedBusiness/Translations/it/Spells/Spells04-it.txt b/SolastaUnfinishedBusiness/Translations/it/Spells/Spells04-it.txt index 3d70449654..1e85ea7150 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Spells/Spells04-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Spells/Spells04-it.txt @@ -13,6 +13,8 @@ Condition/&ConditionElementalBaneTitle=Flagello Elementale: {0} Condition/&ConditionIrresistiblePerformanceDescription=Non è possibile eseguire azioni che richiedano l'uso delle mani o della bocca, ma per il resto è possibile agire normalmente. Condition/&ConditionIrresistiblePerformanceTitle=Dinah-Moe Humm Condition/&ConditionPsionicBlastTitle=Mente confusa +Condition/&ConditionSickeningRadianceDescription=Soffri di un livello di esaurimento ed emetti una fioca luce verdastra in un raggio di 1,5 metri. Questa luce ti rende impossibile essere invisibile. +Condition/&ConditionSickeningRadianceTitle=Radianza nauseante Condition/&ConditionStaggeringSmiteEnemyDescription=Sei colpito da un danno psichico. Condition/&ConditionStaggeringSmiteEnemyTitle=Punizione sconcertante Condition/&ConditionTreeForestGuardianDescription=Ottieni 10 punti ferita temporanei, effettui tiri salvezza su Costituzione con vantaggio ed effettui tiri per colpire basati su Destrezza e Saggezza con vantaggio. @@ -50,6 +52,8 @@ Spell/&PsionicBlastDescription=Rilasci un'ondata debilitante di potere mentale i Spell/&PsionicBlastTitle=Esplosione psionica Spell/&PsychicLanceDescription=Scagli una scintillante lancia di potere psichico dalla tua fronte contro una creatura che puoi vedere e che si trova a gittata. Deve riuscire un tiro salvezza su Intelligenza o subire 7d6 danni psichici ed essere incapace fino alla fine del tuo turno successivo. Se il Tiro Salvezza riesce, la creatura subisce la metà dei danni e non diventa Incapace. A livelli più alti. Quando esegui questo incantesimo utilizzando uno slot incantesimo di 4° livello o superiore, il danno aumenta di 1d6 per ogni livello dello slot superiore al 4°. Spell/&PsychicLanceTitle=Lancia psichica di Raulothim +Spell/&SickeningRadianceDescription=La luce fioca si diffonde in una sfera di 30 piedi di raggio centrata su un punto che scegli entro il raggio. La luce si diffonde dietro gli angoli e dura fino alla fine dell'incantesimo. Quando una creatura entra per la prima volta nell'area dell'incantesimo in un turno o inizia il suo turno lì, quella creatura deve superare un tiro salvezza su Costituzione o subire 4d10 danni radianti e subisce un livello di esaurimento ed emette una luce fioca in un raggio di 5 piedi. Questa luce rende impossibile per la creatura trarre beneficio dall'essere invisibile. La luce e qualsiasi livello di esaurimento causato da questo incantesimo scompaiono quando l'incantesimo termina. +Spell/&SickeningRadianceTitle=Radianza disgustosa Spell/&StaggeringSmiteDescription=La prossima volta che colpisci una creatura con un attacco con un'arma durante la durata dell'incantesimo, la tua arma trafigge sia il corpo che la mente e l'attacco infligge 4d6 danni psichici aggiuntivi al bersaglio. Il bersaglio deve effettuare un tiro salvezza su Saggezza. Se fallisce il tiro salvezza, subisce svantaggio ai tiri per colpire e alle prove di caratteristica, e non può effettuare reazioni fino alla fine del suo turno successivo. Spell/&StaggeringSmiteTitle=Punizione sconcertante Spell/&TreeForestGuardianDescription=La tua pelle appare cortecciata, le foglie spuntano dai tuoi capelli e ottieni i seguenti benefici:\n• Ottieni 10 punti ferita temporanei.\n• Effettui tiri salvezza su Costituzione con vantaggio.\n• Effettui Destrezza e Saggezza tiri per colpire basati su vantaggio.\n• Le creature entro 9 metri da te devono effettuare un tiro salvezza su Forza o essere ostacolate per la durata dell'incantesimo. Possono ritentare il salvataggio a ogni inizio turno. diff --git a/SolastaUnfinishedBusiness/Translations/ja/Spells/Spells04-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Spells/Spells04-ja.txt index 4b7c676ee2..5e206adffe 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Spells/Spells04-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Spells/Spells04-ja.txt @@ -13,6 +13,8 @@ Condition/&ConditionElementalBaneTitle=エレメンタルベイン: {0} Condition/&ConditionIrresistiblePerformanceDescription=手や口を必要とする動作は実行できませんが、それ以外の場合は通常どおり動作できます。 Condition/&ConditionIrresistiblePerformanceTitle=ダイナ・モー・ハム Condition/&ConditionPsionicBlastTitle=混乱した心 +Condition/&ConditionSickeningRadianceDescription=あなたは 1 レベルの疲労状態になり、半径 5 フィート内に薄暗い緑がかった光を発します。この光により、あなたは透明になることができなくなります。 +Condition/&ConditionSickeningRadianceTitle=不快な輝き Condition/&ConditionStaggeringSmiteEnemyDescription=精神的なダメージを受けてしまいます。 Condition/&ConditionStaggeringSmiteEnemyTitle=よろめきのスマイト Condition/&ConditionTreeForestGuardianDescription=あなたは一時的に 10 のヒット ポイントを獲得し、コンスティテューション セーヴィング スローを有利に行い、器用さと知恵をベースにした攻撃ロールを有利に行います。 @@ -50,6 +52,8 @@ Spell/&PsionicBlastDescription=30 フィートの円錐形に精神力を衰弱 Spell/&PsionicBlastTitle=サイオニックブラスト Spell/&PsychicLanceDescription=あなたは範囲内に見える生き物に向かって額から超能力のきらめく槍を解き放ちます。それは知性セーヴィング・スローに成功するか、7d6の精神的ダメージを受けて次のターンの終わりまで無力化されなければならない。セーブに成功すると、クリーチャーは半分のダメージを受けますが、無力化されません。より高いレベルで。あなたが第 4 レベル以上の呪文スロットを使用してこの呪文を唱えると、ダメージは第 4 レベル以上のスロット レベルごとに 1d6 ずつ増加します。 Spell/&PsychicLanceTitle=ラウロシムのサイキックランス +Spell/&SickeningRadianceDescription=薄暗い光が、範囲内の術者が選んだ一点を中心とした半径 30 フィートの球体に広がります。光は角を回り込み、呪文が終了するまで続きます。クリーチャーがターン中に初めて呪文の領域に移動するか、そこでターンを開始すると、そのクリーチャーは耐久力セーヴィング スローに成功するか、4d10 の光ダメージを受け、1 レベルの疲労を被り、半径 5 フィートに薄暗い光を放ちます。この光により、クリーチャーは透明化による利益を得ることができなくなります。この呪文によって生じた光と疲労のレベルは、呪文が終了すると消えます。 +Spell/&SickeningRadianceTitle=不快な輝き Spell/&StaggeringSmiteDescription=この呪文の持続時間中に次にあなたが武器攻撃でクリーチャーを攻撃するとき、あなたの武器は体と精神の両方を貫通し、その攻撃はターゲットに追加の 4d6 精神的ダメージを与えます。ターゲットはウィズダム・セーヴィング・スローを行わなければなりません。セーブに失敗すると、次のターンの終了時まで、攻撃ロールと能力判定に不利になり、反応を取ることができません。 Spell/&StaggeringSmiteTitle=よろめきのスマイト Spell/&TreeForestGuardianDescription=肌が皮っぽくなり、髪から葉が芽生え、次の利点が得られます:\n・一時的にヒット・ポイントが 10 増加します。\n・憲法セーヴィング・スローが有利になります。\n・器用さと知恵が得られます。 -ベースの攻撃ロールは有利です。\n• あなたから 30 フィート以内のクリーチャーは、ストレングス セーヴィング スローを行わなければ、呪文の持続時間の間妨害されます。ターン開始ごとにセーブを再試行できます。 diff --git a/SolastaUnfinishedBusiness/Translations/ko/Spells/Spells04-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Spells/Spells04-ko.txt index 3ad6a701d9..fbe93aa8fb 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Spells/Spells04-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Spells/Spells04-ko.txt @@ -13,6 +13,8 @@ Condition/&ConditionElementalBaneTitle=엘리멘탈 베인: {0} Condition/&ConditionIrresistiblePerformanceDescription=손이나 입이 필요한 작업은 수행할 수 없지만 그 외에는 정상적으로 행동할 수 있습니다. Condition/&ConditionIrresistiblePerformanceTitle=디나-모에 훔 Condition/&ConditionPsionicBlastTitle=혼란스러운 마음 +Condition/&ConditionSickeningRadianceDescription=당신은 한 단계의 피로를 겪고 5피트 반경 내에서 희미한 녹색 빛을 발산합니다. 이 빛은 당신이 눈에 보이지 않는 것을 불가능하게 만듭니다. +Condition/&ConditionSickeningRadianceTitle=역겨운 광채 Condition/&ConditionStaggeringSmiteEnemyDescription=정신적 피해를 입게 됩니다. Condition/&ConditionStaggeringSmiteEnemyTitle=엄청난 일격 Condition/&ConditionTreeForestGuardianDescription=당신은 임시 체력 10점을 얻고, 건강 내성 굴림을 유리하게 하고, 민첩과 지혜 기반 공격 굴림을 유리하게 만듭니다. @@ -50,6 +52,8 @@ Spell/&PsionicBlastDescription=당신은 30피트 콘에서 정신력을 약화 Spell/&PsionicBlastTitle=사이오닉 폭발 Spell/&PsychicLanceDescription=당신은 범위 내에서 볼 수 있는 생물에게 이마에서 반짝이는 심령력의 창을 발사합니다. 지능 내성 굴림에 성공해야 하며, 그렇지 않으면 7d6의 정신적 피해를 입고 다음 턴이 끝날 때까지 무력화되어야 합니다. 내성굴림에 성공하면 생물은 절반의 피해를 입고 무력화되지 않습니다. 더 높은 수준에서. 4레벨 이상의 주문 슬롯을 사용하여 이 주문을 시전하면 4레벨 이상의 슬롯 레벨마다 피해가 1d6씩 증가합니다. Spell/&PsychicLanceTitle=라울로팀의 정신창 +Spell/&SickeningRadianceDescription=범위 내에서 선택한 지점을 중심으로 반경 30피트의 구체 내에서 희미한 빛이 퍼집니다. 빛은 모퉁이로 퍼지며, 주문이 끝날 때까지 지속됩니다. 생물이 턴에서 처음으로 주문 영역으로 이동하거나 그곳에서 턴을 시작할 때, 그 생물은 건강 내성 굴림에 성공하거나 4d10의 복사 피해를 입어야 하며, 한 수준의 탈진을 겪고 희미한 빛을 방출합니다. 반경 5피트. 이 빛은 생물이 눈에 보이지 않는 것으로부터 이익을 얻는 것을 불가능하게 만듭니다. 이 주문으로 인한 빛과 피로는 주문이 끝나면 사라집니다. +Spell/&SickeningRadianceTitle=역겨운 광채 Spell/&StaggeringSmiteDescription=이 주문이 지속되는 동안 다음에 당신이 무기 공격으로 생명체를 공격할 때, 당신의 무기는 몸과 정신을 모두 관통하고 공격은 대상에게 추가로 4d6의 심령 피해를 입힙니다. 대상은 지혜 내성 굴림을 해야 합니다. 저장에 실패하면 공격 굴림과 능력 확인에 불이익을 받고 다음 턴이 끝날 때까지 반응을 취할 수 없습니다. Spell/&StaggeringSmiteTitle=엄청난 일격 Spell/&TreeForestGuardianDescription=피부가 거칠어지고 머리카락에서 잎이 돋아나며 다음과 같은 이점을 얻습니다.\n• 임시 체력 10점을 얻습니다.\n• 건강 내성 굴림을 유리하게 굴립니다.\n• 민첩과 지혜를 얻습니다. 기반 공격 굴림이 유리합니다.\n• 당신으로부터 30피트 내의 생물은 힘 내성 굴림을 해야 하며 그렇지 않으면 주문 지속 시간 동안 방해를 받아야 합니다. 턴이 시작될 때마다 저장을 다시 시도할 수 있습니다. diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Spells/Spells04-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Spells/Spells04-pt-BR.txt index 79732fc9f0..9be442bd21 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Spells/Spells04-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Spells/Spells04-pt-BR.txt @@ -13,6 +13,8 @@ Condition/&ConditionElementalBaneTitle=Maldição Elemental: {0} Condition/&ConditionIrresistiblePerformanceDescription=Você não pode realizar nenhuma ação que exija as mãos ou a boca, mas pode agir normalmente. Condition/&ConditionIrresistiblePerformanceTitle=Dinah-Moe Humm Condition/&ConditionPsionicBlastTitle=Mente confusa +Condition/&ConditionSickeningRadianceDescription=Você sofre um nível de exaustão e emite uma luz fraca e esverdeada em um raio de 1,5 metro. Esta luz torna impossível que você fique invisível. +Condition/&ConditionSickeningRadianceTitle=Radiância Enjoativa Condition/&ConditionStaggeringSmiteEnemyDescription=Você é atingido por dano psíquico. Condition/&ConditionStaggeringSmiteEnemyTitle=Golpe impressionante Condition/&ConditionTreeForestGuardianDescription=Você ganha 10 pontos de vida temporários, faz testes de resistência de Constituição com vantagem e faz jogadas de ataque baseadas em Destreza e Sabedoria com vantagem. @@ -50,6 +52,8 @@ Spell/&PsionicBlastDescription=Você libera uma onda debilitante de poder mental Spell/&PsionicBlastTitle=Explosão Psiônica Spell/&PsychicLanceDescription=Você libera uma lança cintilante de poder psíquico de sua testa em uma criatura que você possa ver dentro do alcance. Ele deve ter sucesso em um teste de resistência de Inteligência ou sofrerá 7d6 de dano psíquico e ficará incapacitado até o final do seu próximo turno. Se obtiver sucesso, a criatura sofre metade do dano e não fica incapacitada. Em níveis superiores. Quando você conjura esta magia usando um espaço de magia de 4º nível ou superior, o dano aumenta em 1d6 para cada nível do espaço acima do 4º. Spell/&PsychicLanceTitle=Lança Psíquica de Raulothim +Spell/&SickeningRadianceDescription=A luz fraca se espalha dentro de uma esfera de 9 metros de raio centrada em um ponto que você escolher dentro do alcance. A luz se espalha pelos cantos e dura até o feitiço terminar. Quando uma criatura se move para a área da magia pela primeira vez em um turno ou começa seu turno lá, aquela criatura deve ser bem sucedida em um teste de resistência de Constituição ou sofrerá 4d10 de dano radiante, e ela sofre um nível de exaustão e emite uma luz fraca em um Raio de 5 pés. Esta luz torna impossível para a criatura se beneficiar por ser invisível. A luz e quaisquer níveis de exaustão causados ​​por este feitiço desaparecem quando o feitiço termina. +Spell/&SickeningRadianceTitle=Radiância Enjoativa Spell/&StaggeringSmiteDescription=Na próxima vez que você atingir uma criatura com um ataque com arma durante a duração desta magia, sua arma perfurará tanto o corpo quanto a mente, e o ataque causará 4d6 de dano psíquico extra ao alvo. O alvo deve fazer um teste de resistência de Sabedoria. Se falhar na resistência, ele terá desvantagem em jogadas de ataque e testes de habilidade, e não poderá realizar reações até o final do próximo turno. Spell/&StaggeringSmiteTitle=Golpe impressionante Spell/&TreeForestGuardianDescription=Sua pele parece descascada, folhas brotam de seu cabelo e você ganha os seguintes benefícios:\n• Você ganha 10 pontos de vida temporários.\n• Você faz testes de resistência de Constituição com vantagem.\n• Você faz Destreza e Sabedoria. jogadas de ataque baseadas em vantagem.\n• Criaturas a até 9 metros de você devem fazer um teste de resistência de Força ou serão prejudicadas pela duração do feitiço. Eles podem tentar salvar novamente a cada início de turno. diff --git a/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt index fcad04d246..bba5f505c9 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt @@ -13,6 +13,8 @@ Condition/&ConditionElementalBaneTitle=Проклятье стихий: {0} Condition/&ConditionIrresistiblePerformanceDescription=Вы не можете выполнять никаких действий, требующих использования рук или рта, но в остальном можете действовать нормально. Condition/&ConditionIrresistiblePerformanceTitle=Неотразимое исполнение Condition/&ConditionPsionicBlastTitle=Затуманенный разум +Condition/&ConditionSickeningRadianceDescription=Вы испытываете один уровень истощения и излучаете тусклый зеленоватый свет в радиусе 5 футов. Этот свет лишает вас возможности быть невидимым. +Condition/&ConditionSickeningRadianceTitle=Тошнотворное сияние Condition/&ConditionStaggeringSmiteEnemyDescription=Вас поразили психическим уроном. Condition/&ConditionStaggeringSmiteEnemyTitle=Оглушающая кара Condition/&ConditionTreeForestGuardianDescription=Вы получаете 10 временных хитов, совершаете с преимуществом спасброски Телосложения и броски атаки, основанные на Ловкости и Мудрости. @@ -50,6 +52,8 @@ Spell/&PsionicBlastDescription=Вы испускаете ослабляющую Spell/&PsionicBlastTitle=Псионический взрыв Spell/&PsychicLanceDescription=Вы выпускаете мерцающее копье психической силы из своего лба в существо, которое вы можете видеть в пределах дистанции. Цель должна совершить спасбросок Интеллекта. В случае провала цель получает 7d6 урона психической энергией и становится недееспособной до начала вашего следующего хода. В случае успеха существо получает половину этого урона и остаётся дееспособным. Если вы накладываете это заклинание, используя ячейку 5-го уровня или выше, урон увеличивается на 1d6 за каждый уровень ячейки выше 4-го. Spell/&PsychicLanceTitle=Психическое копьё Раулотима +Spell/&SickeningRadianceDescription=Тусклый свет распространяется по сфере радиусом 30 футов с центром в выбранной вами точке в пределах дальности действия. Свет распространяется по углам и длится до тех пор, пока заклинание не закончится. Когда существо впервые за ход перемещается в область действия заклинания или начинает там свой ход, это существо должно преуспеть в спасброске Телосложения или получить урон излучением 4d10, и оно переносит один уровень истощения и излучает тусклый свет в Радиус 5 футов. Этот свет лишает существо возможности быть невидимым. Свет и любые уровни истощения, вызванные этим заклинанием, исчезают, когда заклинание заканчивается. +Spell/&SickeningRadianceTitle=Тошнотворное сияние Spell/&StaggeringSmiteDescription=В следующий раз, когда вы попадёте по существу рукопашной атакой оружием, пока активно это заклинание, ваша атака пронзает не только его тело, но и сознание, и атака дополнительно наносит цели 4d6 урона психической энергией. Цель должна совершить спасбросок Мудрости. При провале она до конца своего следующего хода совершает с помехой броски атаки и проверки характеристик, а также не может совершать реакции. Spell/&StaggeringSmiteTitle=Оглушающая кара Spell/&TreeForestGuardianDescription=Ваша кожа покрывается корой, листья прорастают из ваших волос, и вы получаете следующие преимущества:\n• Вы получаете 10 временных хитов.\n• Вы совершаете с преимуществом спасброски Телосложения.\n• Вы совершаете броски атаки, основанные на Ловкости и Мудрости, с преимуществом.\n• Существа в радиусе 30 футов от вас должны пройти спасбросок Силы, иначе они будут скованы на время действия заклинания. Они могут повторять спасбросок в начале каждого хода. diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Spells/Spells04-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Spells/Spells04-zh-CN.txt index 57347f59ae..b10e6e32f5 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Spells/Spells04-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Spells/Spells04-zh-CN.txt @@ -13,6 +13,8 @@ Condition/&ConditionElementalBaneTitle=元素灾厄:{0} Condition/&ConditionIrresistiblePerformanceDescription=你无法执行任何需要用手或嘴但可以正常行动的动作。 Condition/&ConditionIrresistiblePerformanceTitle=动人演出 Condition/&ConditionPsionicBlastTitle=心绪混乱 +Condition/&ConditionSickeningRadianceDescription=您会感到一级疲劳,并在 5 英尺半径范围内发出暗淡的绿光。这束光会让您无法隐形。 +Condition/&ConditionSickeningRadianceTitle=令人作呕的光芒 Condition/&ConditionStaggeringSmiteEnemyDescription=你受到心灵伤害。 Condition/&ConditionStaggeringSmiteEnemyTitle=惊惧斩 Condition/&ConditionTreeForestGuardianDescription=你获得 10 点临时生命值,你可以优势地进行体质豁免检定,并且你可以优势进行基于敏捷和感知的攻击检定。 @@ -50,6 +52,8 @@ Spell/&PsionicBlastDescription=你在一个 30 英尺的锥形区域内释放出 Spell/&PsionicBlastTitle=灵能震爆 Spell/&PsychicLanceDescription=你从前额向范围内你能看到的生物释放出一道闪烁着灵能之力的长矛。它必须在智力豁免检定中成功,否则会受到 7d6 心灵伤害并失能,直到你的下一回合结束。豁免成功后,该生物会受到一半伤害并且不会失能。在更高的层次上。当你使用五环或更高环阶的法术位施放此法术时,你使用的法术位每比四环高一环,其伤害就增加 1d6。 Spell/&PsychicLanceTitle=劳洛希姆心灵长枪 +Spell/&SickeningRadianceDescription=昏暗的光线以你在范围内选择的点为中心,在半径 30 英尺的球体内扩散。光线会扩散到各个角落,并持续到法术结束。当生物在一回合中第一次进入法术区域或在该区域开始其回合时,该生物必须成功进行体质豁免检定,否则会受到 4d10 辐射伤害,并且会遭受一级疲劳并在半径 5 英尺内发出昏暗的光线。此光线使生物无法从隐身中获益。法术结束时,光线和此法术造成的任何疲劳程度都会消失。 +Spell/&SickeningRadianceTitle=令人作呕的光芒 Spell/&StaggeringSmiteDescription=在此法术的持续时间内,下次你用武器攻击命中一个生物时,你的武器会刺穿身体和心灵,并且攻击会对目标造成额外的 4d6 心灵伤害。目标必须进行一次感知豁免。豁免失败时,它在攻击检定和能力检定上具有劣势,并且不能做出反应,直到它的下一轮结束。 Spell/&StaggeringSmiteTitle=惊惧斩 Spell/&TreeForestGuardianDescription=你的皮肤看起来像树皮,头发上长出新芽,你将获得以下好处:\n• 你获得 10 点临时生命值。\n• 你在体质豁免检定中具有优势。\n• 你获得基于敏捷和感知的攻击检定优势。\n• 距离你 30 尺内的生物必须进行一次力量豁免检定,否则会在法术持续时间内受到阻碍。他们可以在每个回合开始时重投豁免检定。 From 53ffb0c70058cd3ca6a1263ffa3f71bb461129ce Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 16:50:29 -0700 Subject: [PATCH 39/91] tweak path of the light to only have invisible base immunity on illuminating strike --- ...amagePathOfTheLightIlluminatingStrike.json | 50 ------------------- ...nityPathOfTheLightIlluminatedPrevent.json} | 4 +- ...OfTheLightIlluminatedPreventInvisible.json | 39 --------------- ...ghtIlluminatedPreventInvisibleGreater.json | 39 --------------- ...minatedPreventInvisibleOneWithShadows.json | 39 --------------- ...lluminatedPreventInvisibleUncatchable.json | 39 --------------- ...IlluminatedPreventInvisible_Green_Hag.json | 39 --------------- ...heLightIlluminatedPreventInvisibility.json | 7 +-- .../Subclasses/PathOfTheLight.cs | 33 +++++------- 9 files changed, 15 insertions(+), 274 deletions(-) rename Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/{ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleBase.json => ConditionAffinityPathOfTheLightIlluminatedPrevent.json} (89%) delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisible.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleGreater.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleOneWithShadows.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleUncatchable.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisible_Green_Hag.json diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamagePathOfTheLightIlluminatingStrike.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamagePathOfTheLightIlluminatingStrike.json index e3977978ad..ee99f9be83 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamagePathOfTheLightIlluminatingStrike.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamagePathOfTheLightIlluminatingStrike.json @@ -135,26 +135,6 @@ "savingThrowDCAbilityModifier": "Dexterity", "damageSaveAffinity": "None", "conditionOperations": [ - { - "$type": "ConditionOperationDescription, Assembly-CSharp", - "hasSavingThrow": false, - "operation": "Remove", - "conditionName": "", - "conditionDefinition": "Definition:ConditionInvisible:6fff2284783105e4fa9793d4bf8afa3f", - "saveAffinity": "None", - "canSaveToCancel": false, - "saveOccurence": "EndOfTurn" - }, - { - "$type": "ConditionOperationDescription, Assembly-CSharp", - "hasSavingThrow": false, - "operation": "Remove", - "conditionName": "", - "conditionDefinition": "Definition:ConditionInvisible_Green_Hag:4095f3b0e1935f348ae2510402cd953f", - "saveAffinity": "None", - "canSaveToCancel": false, - "saveOccurence": "EndOfTurn" - }, { "$type": "ConditionOperationDescription, Assembly-CSharp", "hasSavingThrow": false, @@ -165,36 +145,6 @@ "canSaveToCancel": false, "saveOccurence": "EndOfTurn" }, - { - "$type": "ConditionOperationDescription, Assembly-CSharp", - "hasSavingThrow": false, - "operation": "Remove", - "conditionName": "", - "conditionDefinition": "Definition:ConditionInvisibleGreater:59190d77c6803cf4f8c35b057aab3737", - "saveAffinity": "None", - "canSaveToCancel": false, - "saveOccurence": "EndOfTurn" - }, - { - "$type": "ConditionOperationDescription, Assembly-CSharp", - "hasSavingThrow": false, - "operation": "Remove", - "conditionName": "", - "conditionDefinition": "Definition:ConditionInvisibleOneWithShadows:405ef1e99e1c0264b8b2816a537e3d36", - "saveAffinity": "None", - "canSaveToCancel": false, - "saveOccurence": "EndOfTurn" - }, - { - "$type": "ConditionOperationDescription, Assembly-CSharp", - "hasSavingThrow": false, - "operation": "Remove", - "conditionName": "", - "conditionDefinition": "Definition:ConditionInvisibleUncatchable:66bbc257eb8991b4799a2056830429e0", - "saveAffinity": "None", - "canSaveToCancel": false, - "saveOccurence": "EndOfTurn" - }, { "$type": "ConditionOperationDescription, Assembly-CSharp", "hasSavingThrow": false, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleBase.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPrevent.json similarity index 89% rename from Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleBase.json rename to Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPrevent.json index f4fcf06605..0c1b7c8ec2 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleBase.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPrevent.json @@ -33,7 +33,7 @@ "usedInValleyDLC": false }, "contentCopyright": "UserContent", - "guid": "5ca9c244-f43c-5ea2-b72b-675db2ff40f5", + "guid": "c815cc55-499c-5563-ac65-644765780373", "contentPack": 9999, - "name": "ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleBase" + "name": "ConditionAffinityPathOfTheLightIlluminatedPrevent" } \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisible.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisible.json deleted file mode 100644 index 2d88e9e0fc..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisible.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "$type": "FeatureDefinitionConditionAffinity, Assembly-CSharp", - "conditionType": "ConditionInvisible", - "savingThrowAdvantageType": "None", - "savingThrowModifier": 0, - "conditionAffinityType": "Immunity", - "silent": false, - "rerollSaveWhenGained": false, - "rerollAdvantageType": "None", - "myselfFamilyRestrictions": [], - "otherCharacterFamilyRestrictions": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "4f245846-3fab-593a-aa14-45c19f8edb84", - "contentPack": 9999, - "name": "ConditionAffinityPathOfTheLightIlluminatedPreventInvisible" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleGreater.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleGreater.json deleted file mode 100644 index 5edc69f752..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleGreater.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "$type": "FeatureDefinitionConditionAffinity, Assembly-CSharp", - "conditionType": "ConditionInvisibleGreater", - "savingThrowAdvantageType": "None", - "savingThrowModifier": 0, - "conditionAffinityType": "Immunity", - "silent": false, - "rerollSaveWhenGained": false, - "rerollAdvantageType": "None", - "myselfFamilyRestrictions": [], - "otherCharacterFamilyRestrictions": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "7e9e7908-f57d-57b6-8653-e3852ae86286", - "contentPack": 9999, - "name": "ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleGreater" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleOneWithShadows.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleOneWithShadows.json deleted file mode 100644 index f2468c80d8..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleOneWithShadows.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "$type": "FeatureDefinitionConditionAffinity, Assembly-CSharp", - "conditionType": "ConditionInvisibleOneWithShadows", - "savingThrowAdvantageType": "None", - "savingThrowModifier": 0, - "conditionAffinityType": "Immunity", - "silent": false, - "rerollSaveWhenGained": false, - "rerollAdvantageType": "None", - "myselfFamilyRestrictions": [], - "otherCharacterFamilyRestrictions": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "cfbc0e3f-664c-5c4d-a355-16bf8aefb1e0", - "contentPack": 9999, - "name": "ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleOneWithShadows" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleUncatchable.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleUncatchable.json deleted file mode 100644 index 64b52d35b6..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleUncatchable.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "$type": "FeatureDefinitionConditionAffinity, Assembly-CSharp", - "conditionType": "ConditionInvisibleUncatchable", - "savingThrowAdvantageType": "None", - "savingThrowModifier": 0, - "conditionAffinityType": "Immunity", - "silent": false, - "rerollSaveWhenGained": false, - "rerollAdvantageType": "None", - "myselfFamilyRestrictions": [], - "otherCharacterFamilyRestrictions": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "528128e2-1394-50ea-825e-36511027d99c", - "contentPack": 9999, - "name": "ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleUncatchable" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisible_Green_Hag.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisible_Green_Hag.json deleted file mode 100644 index 7296141056..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinityPathOfTheLightIlluminatedPreventInvisible_Green_Hag.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "$type": "FeatureDefinitionConditionAffinity, Assembly-CSharp", - "conditionType": "ConditionInvisible_Green_Hag", - "savingThrowAdvantageType": "None", - "savingThrowModifier": 0, - "conditionAffinityType": "Immunity", - "silent": false, - "rerollSaveWhenGained": false, - "rerollAdvantageType": "None", - "myselfFamilyRestrictions": [], - "otherCharacterFamilyRestrictions": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "0b93e0a9-5118-5d32-9d29-bf0956b6f646", - "contentPack": 9999, - "name": "ConditionAffinityPathOfTheLightIlluminatedPreventInvisible_Green_Hag" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetPathOfTheLightIlluminatedPreventInvisibility.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetPathOfTheLightIlluminatedPreventInvisibility.json index 6fcfbee449..a01f8b11fe 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetPathOfTheLightIlluminatedPreventInvisibility.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetPathOfTheLightIlluminatedPreventInvisibility.json @@ -1,12 +1,7 @@ { "$type": "FeatureDefinitionFeatureSet, Assembly-CSharp", "featureSet": [ - "Definition:ConditionAffinityPathOfTheLightIlluminatedPreventInvisible:4f245846-3fab-593a-aa14-45c19f8edb84", - "Definition:ConditionAffinityPathOfTheLightIlluminatedPreventInvisible_Green_Hag:0b93e0a9-5118-5d32-9d29-bf0956b6f646", - "Definition:ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleBase:5ca9c244-f43c-5ea2-b72b-675db2ff40f5", - "Definition:ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleGreater:7e9e7908-f57d-57b6-8653-e3852ae86286", - "Definition:ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleOneWithShadows:cfbc0e3f-664c-5c4d-a355-16bf8aefb1e0", - "Definition:ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleUncatchable:528128e2-1394-50ea-825e-36511027d99c" + "Definition:ConditionAffinityPathOfTheLightIlluminatedPrevent:c815cc55-499c-5563-ac65-644765780373" ], "mode": "Union", "ancestryDamageTypeMap": [], diff --git a/SolastaUnfinishedBusiness/Subclasses/PathOfTheLight.cs b/SolastaUnfinishedBusiness/Subclasses/PathOfTheLight.cs index 9a5d7fb816..0a73f56d38 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PathOfTheLight.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PathOfTheLight.cs @@ -1,5 +1,4 @@ -using System.Linq; -using JetBrains.Annotations; +using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Builders; using SolastaUnfinishedBusiness.Builders.Features; @@ -29,10 +28,6 @@ public PathOfTheLight() var faerieFireLightSource = FaerieFire.EffectDescription.GetFirstFormOfType(EffectForm.EffectFormType.LightSource); - var invisibleConditions = DatabaseRepository.GetDatabase() - .Where(x => x.IsSubtypeOf(ConditionInvisibleBase.Name)) - .ToList(); - var attackDisadvantageAgainstNonSourcePathOfTheLightIlluminated = FeatureDefinitionCombatAffinityBuilder .Create("AttackDisadvantageAgainstNonSourcePathOfTheLightIlluminated") @@ -46,16 +41,12 @@ public PathOfTheLight() .Create("FeatureSetPathOfTheLightIlluminatedPreventInvisibility") .SetGuiPresentation(Category.Feature) .AddFeatureSet( - invisibleConditions.Select(x => - FeatureDefinitionConditionAffinityBuilder - .Create("ConditionAffinityPathOfTheLightIlluminatedPrevent" + - x.Name.Replace("Condition", string.Empty)) - .SetGuiPresentationNoContent(true) - .SetConditionAffinityType(ConditionAffinityType.Immunity) - .SetConditionType(x) - .AddToDB()) - .OfType() - .ToArray()) + FeatureDefinitionConditionAffinityBuilder + .Create("ConditionAffinityPathOfTheLightIlluminatedPrevent") + .SetGuiPresentationNoContent(true) + .SetConditionAffinityType(ConditionAffinityType.Immunity) + .SetConditionType(ConditionInvisibleBase) + .AddToDB()) .AddToDB(); var conditionPathOfTheLightIlluminated = ConditionDefinitionBuilder @@ -89,11 +80,11 @@ public PathOfTheLight() .SetTriggerCondition(AdditionalDamageTriggerCondition.AlwaysActive) .SetFrequencyLimit(FeatureLimitedUsage.OnceInMyTurn) .SetConditionOperations( - invisibleConditions.Select(x => - new ConditionOperationDescription - { - Operation = ConditionOperationDescription.ConditionOperation.Remove, ConditionDefinition = x - }).ToArray()) + new ConditionOperationDescription + { + Operation = ConditionOperationDescription.ConditionOperation.Remove, + ConditionDefinition = ConditionInvisibleBase + }) .AddConditionOperation( ConditionOperationDescription.ConditionOperation.Add, conditionPathOfTheLightIlluminated) .SetAddLightSource(true) From e2f94cb2a50bc5f8104e8ccad5c6207434d6f22f Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 18:29:38 -0700 Subject: [PATCH 40/91] tweak spell selection UI under variant spell rules scenario --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 2 +- SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs | 4 +++- SolastaUnfinishedBusiness/Models/SpellPointsContext.cs | 5 +++-- SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs | 5 ++++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index a3ce6485f7..5a3a7d6f49 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -5,7 +5,7 @@ - fixed Martial Arcane Archer arcane shot soft lock if enemy already dead - fixed Martial Battle Master initial pool amount to 4 - fixed Ring of Knifes spell to-hit modifiers on power -- fixed Scatter spell, and Sorcerous Field Manipulator displacement targets selection +- fixed targets selection on Scatter spell, and Field Manipulator displacement KNOWN ISSUES: diff --git a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs index f3244b6057..7cf3e2fae9 100644 --- a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs +++ b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs @@ -139,6 +139,7 @@ internal static void PaintPactSlots( int totalSlotsCount, int totalSlotsRemainingCount, int slotLevel, + int spellsAtLevel, SlotStatusTable slotStatusTable, bool ignorePactSlots = false) { @@ -203,7 +204,8 @@ internal static void PaintPactSlots( var cost = SpellPointsContext.SpellCostByLevel[slotLevel].ToString(); slotStatusTable.slotsText.gameObject.SetActive(true); - slotStatusTable.slotsText.Text = Gui.Format("Screen/&SpellAlternatePointsCostTooltip", cost); + slotStatusTable.slotsText.Text = + spellsAtLevel < 2 ? cost : Gui.Format("Screen/&SpellAlternatePointsCostTooltip", cost); } else { diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index b3ad2bb078..bd4c066155 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -8,8 +8,9 @@ using SolastaUnfinishedBusiness.Classes; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Subclasses; -using static SolastaUnfinishedBusiness.Builders.Features.FeatureDefinitionCastSpellBuilder; using static FeatureDefinitionCastSpell; +using static RuleDefinitions; +using static SolastaUnfinishedBusiness.Builders.Features.FeatureDefinitionCastSpellBuilder; namespace SolastaUnfinishedBusiness.Models; @@ -54,7 +55,7 @@ internal static class SpellPointsContext internal static readonly FeatureDefinitionPower PowerSpellPoints = FeatureDefinitionPowerBuilder .Create("PowerSpellPoints") .SetGuiPresentationNoContent(true) - .SetUsesFixed(RuleDefinitions.ActivationTime.NoCost, RuleDefinitions.RechargeRate.LongRest) + .SetUsesFixed(ActivationTime.NoCost, RechargeRate.LongRest) .AddCustomSubFeatures( HasModifiedUses.Marker, new ModifyPowerPoolAmountPowerSpellPoints()) diff --git a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs index 1a410493c5..989336c698 100644 --- a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs @@ -46,6 +46,7 @@ public static IEnumerable Transpiler([NotNull] IEnumerable spells, int spellLevel) { var hero = spellRepertoire?.GetCasterHero(); @@ -79,7 +80,8 @@ public static void Postfix( var cost = SpellPointsContext.SpellCostByLevel[spellLevel].ToString(); __instance.slotsText.gameObject.SetActive(true); - __instance.slotsText.Text = Gui.Format("Screen/&SpellAlternatePointsCostTooltip", cost); + __instance.slotsText.Text = + spells.Count < 2 ? cost : Gui.Format("Screen/&SpellAlternatePointsCostTooltip", cost); } return; @@ -92,6 +94,7 @@ public static void Postfix( totalSlotsCount, totalSlotsRemainingCount, spellLevel, + spells.Count, __instance, (Global.InspectedHero != null && spellRepertoire.spellCastingClass == Warlock) || (Global.InspectedHero == null && !Main.Settings.DisplayPactSlotsOnSpellSelectionPanel)); From fdc11f0b7735fec372f2e0e1aa77aa22f8878f50 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 20:10:14 -0700 Subject: [PATCH 41/91] tweak mod UI --- SolastaUnfinishedBusiness/Translations/de/Settings-de.txt | 1 - SolastaUnfinishedBusiness/Translations/en/Settings-en.txt | 2 +- SolastaUnfinishedBusiness/Translations/es/Settings-es.txt | 1 - SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt | 1 - SolastaUnfinishedBusiness/Translations/it/Settings-it.txt | 1 - SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt | 1 - SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt | 1 - SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt | 1 - SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt | 1 - SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt | 1 - 10 files changed, 1 insertion(+), 10 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt index cafb35d7c0..b5e29ee67b 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt @@ -319,7 +319,6 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Schalte ZaubererAktualisieren ModUi/&UseAlternateSpellPointsSystem=Benutze offizielle Varianten-Zauberpunkt-Regeln -ModUi/&UseAlternateSpellPointsSystemHelp=[Du hast einen Pool an Zauberpunkten, der mit der Stufe des Zauberers steigt\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nDie Kosten für das Wirken von Zaubern mit diesem Pool betragen L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nDie Wiederherstellungsfunktionen für kurze Ruhezeiten werden unter diesem System nicht ausgelöst] ModUi/&UseElfFaceModelsOnTieflings=Verwenden Sie Elfen-Gesichtsmodelle für Tieflings ModUi/&UseHeightOneCylinderEffect=Verwenden Sie einen Zylindereffekt der Höhe 1, wenn Sie Black Tentacles, Entangle, Grease [square] oder Spike Growth [round] ModUi/&UseMathFlankingRules=+ Verwenden Sie präzise Mathematik, um flankierende [kann sich auf langsamen Maschinen auf die Leistung auswirken] zu bestimmen diff --git a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt index da64f2a18a..6b29c40c49 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt @@ -319,7 +319,7 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Unlock SorcererUpdate ModUi/&UseAlternateSpellPointsSystem=Use official variant spell points rules -ModUi/&UseAlternateSpellPointsSystemHelp=[You have a pool of spell points that increases with caster level\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nCost to cast spells using this pool is L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nShort rest slots recovery features won't be triggered under this system] +ModUi/&UseAlternateSpellPointsSystemHelp=[You have a pool of spell points that increases with caster level\nL01: 04 L02: 06 L03: 14 L04: 17 L05: 27 L06: 32 L07: 38 L08: 44 L09: 57 L10: 64\nL11: 73 L12: 73 L13: 83 L14: 83 L15: 94 L16: 94 L17: 107 L18: 114 L19: 123 L20: 133\nCost to cast spells is SL1: 2 SL2: 3 SL3: 5 SL4: 6 SL5: 7 SL6: 9 SL7: 10 SL8: 11 SL9: 13\nShort rest slots recovery features won't be triggered under this system] ModUi/&UseElfFaceModelsOnTieflings=Use Elf face models on Tieflings ModUi/&UseHeightOneCylinderEffect=Use a height 1 cylinder effect when casting Black Tentacles, Entangle, Grease [square] or Spike Growth [round] ModUi/&UseMathFlankingRules=+ Use precise math to determine flanking [may have a performance impact on slow machines] diff --git a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt index 158f0352bc..40528d0228 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt @@ -319,7 +319,6 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Desbloquea marcas de origen y tatuaj ModUi/&UnlockSkinColors=Desbloquear colores de piel ModUi/&Update=Actualizar ModUi/&UseAlternateSpellPointsSystem=Utilice las reglas oficiales de puntos de hechizo variantes -ModUi/&UseAlternateSpellPointsSystemHelp=[Tienes una reserva de puntos de hechizo que aumenta con el nivel del lanzador\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07 : 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19 : 123, L20: 133\nEl costo para lanzar hechizos usando este grupo es L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9 : 13\nLas funciones de recuperación de espacios de descanso breves no se activarán en este sistema] ModUi/&UseElfFaceModelsOnTieflings=Utilice modelos de cara de Elfo en Teflings ModUi/&UseHeightOneCylinderEffect=Utilice un efecto de cilindro de altura 1 al lanzar Tentáculos negros, Enredar, Grasa [cuadrado] o Crecimiento máximo [ronda] ModUi/&UseMathFlankingRules=+ Utilice matemáticas precisas para determinar el flanqueo [puede tener un impacto en el rendimiento en máquinas lentas] diff --git a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt index d91d0d20c6..99ff454fec 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt @@ -319,7 +319,6 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Débloquez les marques et tatouages ModUi/&UnlockSkinColors=Débloquez les couleurs de peau ModUi/&Update=Mise à jour ModUi/&UseAlternateSpellPointsSystem=Utiliser les règles officielles des variantes de points de sort -ModUi/&UseAlternateSpellPointsSystemHelp=[Vous disposez d'une réserve de points de sort qui augmente avec le niveau de lanceur de sorts\nL01 : 04, L02 : 06, L03 : 14, L04 : 17, L05 : 27, L06 : 32, L07 : 38, L08 : 44, L09 : 57, L10 : 64\nL11 : 73, L12 : 73, L13 : 83, L14 : 83, L15 : 94, L16 : 94, L17 : 107, L18 : 114, L19 : 123, L20 : 133\nLe coût pour lancer des sorts en utilisant ce pool est L1 : 2, L2 : 3, L3 : 5, L4 : 6, L5 : 7, L6 : 9, L7 : 10, L8 : 11, L9 : 13\nLes fonctionnalités de récupération des créneaux de repos courts ne seront pas déclenchées sous ce système] ModUi/&UseElfFaceModelsOnTieflings=Utilisez des modèles de visage Elfe sur les Tieflings ModUi/&UseHeightOneCylinderEffect=Utilisez un effet de cylindre de hauteur 1 lors du lancement de Tentacules noires, enchevêtrement, graisse [carré] ou Pic de croissance [rond] ModUi/&UseMathFlankingRules=+ Utilisez des calculs précis pour déterminer le contournement [peut avoir un impact sur les performances sur les machines lentes] diff --git a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt index 6eac249158..3aaf67f85d 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt @@ -319,7 +319,6 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Sblocca i segni di origine e i tatua ModUi/&UnlockSkinColors=Sblocca i colori della pelle ModUi/&Update=Aggiorna ModUi/&UseAlternateSpellPointsSystem=Utilizza le regole ufficiali dei varianti punti incantesimo -ModUi/&UseAlternateSpellPointsSystemHelp=[Hai una riserva di punti incantesimo che aumenta con il livello dell'incantatore\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07 : 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19 : 123, L20: 133\nIl costo per lanciare incantesimi usando questa riserva è L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9 : 13\nLe funzionalità di recupero degli slot di riposo brevi non verranno attivate con questo sistema] ModUi/&UseElfFaceModelsOnTieflings=Usa i modelli del volto di Elfo su Tiefling ModUi/&UseHeightOneCylinderEffect=Usa un effetto del cilindro di altezza 1 quando lanci Tentacoli neri, Intralciare, Ungere [quadrato] o Picco di crescita [turno] ModUi/&UseMathFlankingRules=+ Utilizza calcoli precisi per determinare il fiancheggiamento [potrebbe avere un impatto sulle prestazioni sulle macchine lente] diff --git a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt index 8bf98c48b4..3d776d26d9 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt @@ -319,7 +319,6 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=すべてのキャラクターの更新 ModUi/&UseAlternateSpellPointsSystem=公式のバリアントスペルポイントルールを使用する -ModUi/&UseAlternateSpellPointsSystemHelp=[呪文ポイントのプールがあり、術者レベルに応じて増加します\nL01: 04、L02: 06、L03: 14、L04: 17、L05: 27、L06: 32、L07: 38、L08: 44、L09: 57、L10: 64\nL11: 73、L12: 73、L13: 83、L14: 83、L15: 94、L16: 94、L17: 107、L18: 114、L19: 123、L20: 133\nこのプールを使用して呪文を唱えるコストは、L1: 2、L2: 3、L3: 5、L4: 6、L5: 7、L6: 9、L7: 10、L8: 11、L9: 13\nこのシステムでは、短い休憩スロットの回復機能はトリガーされません] ModUi/&UseElfFaceModelsOnTieflings=ティーフリングでエルフの顔モデルを使用する ModUi/&UseHeightOneCylinderEffect=黒い触手、絡まり、グリース [square] または スパイク成長 [ラウンド] ModUi/&UseMathFlankingRules=+ 正確な計算を使用して側面攻撃を決定します[遅いマシンではパフォーマンスに影響を与える可能性があります] diff --git a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt index 01509398ff..7036cee3c2 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt @@ -319,7 +319,6 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=모든 캐릭터의 ModUi/&UnlockSkinColors=피부색 잠금 해제 ModUi/&Update=업데이트 ModUi/&UseAlternateSpellPointsSystem=공식 변형 주문 포인트 규칙을 사용하세요. -ModUi/&UseAlternateSpellPointsSystemHelp=[시전자 레벨에 따라 증가하는 주문 포인트 풀이 있습니다.\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07 : 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19 : 123, L20: 133\n이 풀을 사용하여 주문을 발동하는 데 드는 비용은 L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9입니다. : 13\n이 시스템에서는 짧은 휴식 슬롯 복구 기능이 실행되지 않습니다.] ModUi/&UseElfFaceModelsOnTieflings=티플링에서 엘프 얼굴 모델을 사용하세요. ModUi/&UseHeightOneCylinderEffect=Black Tentacles, Entangle, Grease [square] 또는 를 시전할 때 높이 1 원통 효과를 사용하세요. 급상승 [round] ModUi/&UseMathFlankingRules=+ 정확한 수학을 사용하여 측면 공격 결정 [느린 시스템에서는 성능에 영향을 미칠 수 있음] diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt index ec9b5e3ed4..a37948d5a2 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt @@ -319,7 +319,6 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Desbloqueie marcas de origem e tatua ModUi/&UnlockSkinColors=Desbloquear cores de pele ModUi/&Update=Atualização ModUi/&UseAlternateSpellPointsSystem=Use regras oficiais de pontos de feitiço variantes -ModUi/&UseAlternateSpellPointsSystemHelp=[Você tem um conjunto de pontos de feitiço que aumenta com o nível do lançador\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07 : 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19 : 123, L20: 133\nO custo para lançar feitiços usando este conjunto é L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9 : 13\nOs recursos de recuperação de intervalos de descanso curtos não serão acionados neste sistema] ModUi/&UseElfFaceModelsOnTieflings=Use modelos de rosto de Elfo em Tieflings ModUi/&UseHeightOneCylinderEffect=Use um efeito de cilindro de altura 1 ao lançar Black Tentacles, Entangle, Grease [square] ou Pico de crescimento [rodada] ModUi/&UseMathFlankingRules=+ Use matemática precisa para determinar o flanqueamento [pode ter um impacto no desempenho em máquinas lentas] diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index cb9a51f99a..fe73003d63 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -319,7 +319,6 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Разблокировать род ModUi/&UnlockSkinColors=Разблокировать цвета кожи ModUi/&Update=Обновить ModUi/&UseAlternateSpellPointsSystem=Используйте официальные правила вариантных очков заклинаний. -ModUi/&UseAlternateSpellPointsSystemHelp=[У вас есть запас очков заклинаний, который увеличивается с уровнем заклинателя\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07 : 38, Л08: 44, Л09: 57, Л10: 64\nЛ11: 73, Л12: 73, Л13: 83, Л14: 83, Л15: 94, Л16: 94, Л17: 107, Л18: 114, Л19 : 123, L20: 133\nСтоимость произнесения заклинаний с использованием этого пула составляет L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9. : 13\nФункции восстановления слотов для кратковременного отдыха не будут активироваться в этой системе] ModUi/&UseElfFaceModelsOnTieflings=Использовать Эльфийские лица на Тифлингах ModUi/&UseHeightOneCylinderEffect=Ограничить высоту эффекта одним уровнем при накладывании Чёрных щупалец, Опутывания, Смазки [квадрат] или Шипов [круг] ModUi/&UseMathFlankingRules=+ Использовать точную математику для определения окружения [может повлиять на производительность на медленных компьютерах] diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt index 7d219a97fe..19c88081b1 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt @@ -319,7 +319,6 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=解锁所有角色的 ModUi/&UnlockSkinColors=解锁肤色 ModUi/&Update=更新 ModUi/&UseAlternateSpellPointsSystem=使用官方变体法术点规则 -ModUi/&UseAlternateSpellPointsSystemHelp=[你拥有一个随施法者等级增加的法术点池\nL01:04,L02:06,L03:14,L04:17,L05:27,L06:32,L07:38,L08:44,L09:57,L10:64\nL11:73,L12:73,L13:83,L14:83,L15:94,L16:94,L17:107,L18:114,L19:123,L20:133\n使用此池施放法术所需的费用为 L1:2,L2:3,L3:5,L4:6,L5:7,L6:9, L7:10,L8:11,L9:13\n在此系统下不会触发短暂休息时段恢复功能] ModUi/&UseElfFaceModelsOnTieflings=在提夫林上使用精灵的面部模型 ModUi/&UseHeightOneCylinderEffect=施放黑色触手、纠缠、油腻[方形]荆棘丛生[圆形]时使用高度为1的立体效果 ModUi/&UseMathFlankingRules=+ 使用精确的数学来确定侧翼 [可能会对慢速机器产生性能影响] From d7966b20d7f4d9d998649f2f0e21a09ff600c856 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 20:11:13 -0700 Subject: [PATCH 42/91] tweak Sickening Radiance dim light behavior --- .../Spells/SpellBuildersLevel04.cs | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs index 238f5219fe..185ca12886 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs @@ -434,25 +434,49 @@ public void OnConditionRemoved(RulesetCharacter target, RulesetCondition ruleset private sealed class OnConditionAddedOrRemovedSickeningRadiance : IOnConditionAddedOrRemoved { - public void OnConditionAdded(RulesetCharacter target, RulesetCondition rulesetCondition) + public void OnConditionAdded(RulesetCharacter rulesetTarget, RulesetCondition rulesetCondition) { var caster = EffectHelpers.GetCharacterByGuid(rulesetCondition.SourceGuid); rulesetCondition.RemainingRounds = caster.ConcentratedSpell.RemainingRounds; + var effectGuid = caster.ConcentratedSpell.Guid; + + if (rulesetTarget.PersonalLightSource?.EffectGuid == effectGuid) + { + return; + } + + var visibilityService = ServiceRepository.GetService(); var lightSourceForm = FaerieFire.EffectDescription .GetFirstFormOfType(EffectForm.EffectFormType.LightSource).LightSourceForm; var rulesetLightSource = new RulesetLightSource(new Color(0, 0.6f, 0), 0, 1, lightSourceForm.GraphicsPrefabAssetGUID, - LightSourceType.Basic, rulesetCondition.effectDefinitionName, target.Guid); + LightSourceType.Basic, + rulesetCondition.effectDefinitionName, + rulesetTarget.Guid, + effectGuid: effectGuid); - caster.ConcentratedSpell.TrackedLightSourceGuids.Add(rulesetLightSource.Guid); + var target = GameLocationCharacter.GetFromActor(rulesetTarget); + + visibilityService.AddCharacterLightSource(target, rulesetLightSource); } - public void OnConditionRemoved(RulesetCharacter target, RulesetCondition rulesetCondition) + public void OnConditionRemoved(RulesetCharacter rulesetTarget, RulesetCondition rulesetCondition) { - // empty + var caster = EffectHelpers.GetCharacterByGuid(rulesetCondition.SourceGuid); + var effectGuid = caster.ConcentratedSpell.Guid; + + if (rulesetTarget.PersonalLightSource?.EffectGuid != effectGuid) + { + return; + } + + var visibilityService = ServiceRepository.GetService(); + var target = GameLocationCharacter.GetFromActor(rulesetTarget); + + visibilityService.RemoveCharacterLightSource(target, rulesetTarget.PersonalLightSource); } } From 0f50fee913ab734a07f88a61e3600b4b5da38919 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 21:46:18 -0700 Subject: [PATCH 43/91] improve spell points system --- .../Models/MulticlassGameUiContext.cs | 9 +- .../Models/SpellPointsContext.cs | 161 +++++++++++++++--- .../Patches/CharacterActionItemFormPatcher.cs | 29 +--- .../CharacterBuildingManagerPatcher.cs | 3 + .../CharacterInspectionScreenPatcher.cs | 3 + .../CharacterReactionSubitemPatcher.cs | 14 +- .../Patches/FlexibleCastingItemPatcher.cs | 19 +-- .../Patches/RulesetCharacterPatcher.cs | 18 +- .../Patches/RulesetSpellRepertoirePatcher.cs | 23 ++- .../Patches/SlotStatusTablePatcher.cs | 27 ++- .../Settings/zappastuff.xml | 4 + 11 files changed, 174 insertions(+), 136 deletions(-) diff --git a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs index 7cf3e2fae9..192fddb8ee 100644 --- a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs +++ b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs @@ -198,14 +198,7 @@ internal static void PaintPactSlots( //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) if (Main.Settings.UseAlternateSpellPointsSystem) { - component.Used.gameObject.SetActive(false); - component.Available.gameObject.SetActive(false); - - var cost = SpellPointsContext.SpellCostByLevel[slotLevel].ToString(); - - slotStatusTable.slotsText.gameObject.SetActive(true); - slotStatusTable.slotsText.Text = - spellsAtLevel < 2 ? cost : Gui.Format("Screen/&SpellAlternatePointsCostTooltip", cost); + SpellPointsContext.AddCostTextToSpellLevels(slotStatusTable, component, slotLevel, spellsAtLevel); } else { diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index bd4c066155..fcd02f6099 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -8,6 +8,8 @@ using SolastaUnfinishedBusiness.Classes; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Subclasses; +using TMPro; +using UnityEngine; using static FeatureDefinitionCastSpell; using static RuleDefinitions; using static SolastaUnfinishedBusiness.Builders.Features.FeatureDefinitionCastSpellBuilder; @@ -52,7 +54,7 @@ internal static class SpellPointsContext (MartialSpellShield.CastSpellName, OneThirdCastingSlots, SpellPointsOneThirdCastingSlots) ]; - internal static readonly FeatureDefinitionPower PowerSpellPoints = FeatureDefinitionPowerBuilder + private static readonly FeatureDefinitionPower PowerSpellPoints = FeatureDefinitionPowerBuilder .Create("PowerSpellPoints") .SetGuiPresentationNoContent(true) .SetUsesFixed(ActivationTime.NoCost, RechargeRate.LongRest) @@ -74,29 +76,144 @@ internal static void LateLoad() SwitchFeatureDefinitionCastSpellSlots(); } - internal static void ConsumeSpellPoints(RulesetCharacterHero hero, RulesetSpellRepertoire repertoire, int slotLevel) + internal static void SwitchFeatureDefinitionCastSpellSlots() { - var usablePower = PowerProvider.Get(PowerSpellPoints, hero); - var cost = SpellCostByLevel[slotLevel]; + var db = DatabaseRepository.GetDatabase(); - usablePower.remainingUses -= cost; + foreach (var (name, slotsVanilla, slotsSpellPoints) in FeatureDefinitionCastSpellTab) + { + var featureCastSpell = db.GetElement(name); + + featureCastSpell.slotsPerLevels = + Main.Settings.UseAlternateSpellPointsSystem ? slotsSpellPoints : slotsVanilla; + } + } + + internal static void HideSpellSlots(RulesetCharacterHero hero, RectTransform table) + { + if (!Main.Settings.UseAlternateSpellPointsSystem || + SharedSpellsContext.GetWarlockSpellRepertoire(hero) != null) + { + return; + } + + for (var index = 0; index < table.childCount; ++index) + { + var component = table.GetChild(index).GetComponent(); + + component.Used.gameObject.SetActive(false); + component.Available.gameObject.SetActive(false); + } + } - if (slotLevel <= 5) + internal static void SetupUseSlots( + GuiCharacterAction guiCharacterAction, + RectTransform useSlotsTable, + GuiLabel highSlotNumber) + { + if (!Main.Settings.UseAlternateSpellPointsSystem || + (guiCharacterAction.ActionDefinition != DatabaseHelper.ActionDefinitions.CastMain && + guiCharacterAction.ActionDefinition != DatabaseHelper.ActionDefinitions.CastBonus)) { return; } - var usedSpellsSlots = repertoire.usedSpellsSlots; + var rulesetCharacter = guiCharacterAction.ActingCharacter.RulesetCharacter; + var remainingSpellPoints = GetRemainingSpellPoints(rulesetCharacter).ToString(); - usedSpellsSlots.TryAdd(slotLevel, 0); - usedSpellsSlots[slotLevel] = 1; + highSlotNumber.gameObject.SetActive(true); + useSlotsTable.gameObject.SetActive(false); + highSlotNumber.Text = remainingSpellPoints; + highSlotNumber.GuiTooltip.Content = + Gui.Format("Screen/&SpellAlternatePointsTooltip", remainingSpellPoints); + } + + private static int GetMaxSpellPoints(RulesetCharacter rulesetCharacter) + { + var usablePower = PowerProvider.Get(PowerSpellPoints, rulesetCharacter); + var maxUsesOfPower = rulesetCharacter.GetMaxUsesOfPower(usablePower); - // no need to RepertoireRefreshed here as ConsumeSlots will end up doing it + return maxUsesOfPower; } - internal static void ConsumeSlots(RulesetCharacterHero hero, RulesetSpellRepertoire repertoire) + private static int GetRemainingSpellPoints(RulesetCharacter rulesetCharacter) { + var usablePower = PowerProvider.Get(PowerSpellPoints, rulesetCharacter); + var remainingUsesOfPower = rulesetCharacter.GetRemainingUsesOfPower(usablePower); + + return remainingUsesOfPower; + } + + internal static void SwitchRepertoireTitleOnInspectionScreen( + CharacterInspectionScreen __instance, RulesetCharacterHero heroCharacter) + { + for (var i = 0; i < __instance.spellPanelsContainer.childCount; i++) + { + var child = __instance.spellPanelsContainer.GetChild(i); + + var repertoireTitle = child.GetChild(1).GetChild(1).GetComponent(); + + if (Main.Settings.UseAlternateSpellPointsSystem) + { + var maxSpellPoints = GetMaxSpellPoints(heroCharacter).ToString(); + var postfix = Gui.Format("Screen/&SpellAlternatePointsCostTooltip", maxSpellPoints); + + repertoireTitle.text = Gui.Localize("Screen/&RepertoireSpellsTitle") + ": " + postfix; + } + else + { + repertoireTitle.text = Gui.Localize("Screen/&RepertoireSpellsTitle"); + } + } + } + + internal static void AddCostTextToSpellLevels(SlotStatusTable slotStatusTable, SlotStatus slotStatus, int slotLevel, + int spellsAtLevel) + { + var cost = SpellCostByLevel[slotLevel].ToString(); + + slotStatus.Used.gameObject.SetActive(false); + slotStatus.Available.gameObject.SetActive(false); + slotStatusTable.slotsText.gameObject.SetActive(true); + slotStatusTable.slotsText.Text = + spellsAtLevel < 2 ? cost : Gui.Format("Screen/&SpellAlternatePointsCostTooltip", cost); + } + + internal static void GrantPowerSpellPoints(RulesetCharacterHero hero) + { + if (hero.HasAnyFeature(PowerSpellPoints)) + { + return; + } + + hero.ActiveFeatures[AttributeDefinitions.TagRace].Add(PowerSpellPoints); + var usablePower = PowerProvider.Get(PowerSpellPoints, hero); + var poolSize = hero.GetMaxUsesOfPower(usablePower); + + usablePower.remainingUses = poolSize; + hero.UsablePowers.Add(usablePower); + } + + internal static void ConsumeSlotsAtLevelsPointsCannotCastAnymore( + RulesetCharacterHero hero, RulesetSpellRepertoire repertoire, int slotLevel) + { + // consume points + var usablePower = PowerProvider.Get(PowerSpellPoints, hero); + var cost = SpellCostByLevel[slotLevel]; + + usablePower.remainingUses -= cost; + + // handle scenario where spells at level 6 and above can only be cast once per level + if (slotLevel > 5) + { + var usedSpellsSlots = repertoire.usedSpellsSlots; + + usedSpellsSlots.TryAdd(slotLevel, 0); + usedSpellsSlots[slotLevel] = 1; + } + + // consume spell slots at levels points cannot cast anymore var level = repertoire.MaxSpellLevelOfSpellCastingLevel; for (var i = level; i > 0; i--) @@ -115,7 +232,7 @@ internal static void ConsumeSlots(RulesetCharacterHero hero, RulesetSpellReperto repertoire.RepertoireRefreshed?.Invoke(repertoire); } - internal static void RefreshSpellRepertoire(RulesetCharacterHero hero) + internal static void ConvertAdditionalSlotsIntoSpellPointsBeforeRefreshSpellRepertoire(RulesetCharacterHero hero) { var usablePower = PowerProvider.Get(PowerSpellPoints, hero); var activeConditions = hero.AllConditions.ToList(); @@ -148,8 +265,13 @@ internal static void RefreshSpellRepertoire(RulesetCharacterHero hero) } } - internal static void RefreshActionPanel() + internal static void RefreshActionPanelAfterFlexibleCastingItem() { + if (!Main.Settings.UseAlternateSpellPointsSystem) + { + return; + } + var gameLocationScreenExploration = Gui.GuiService.GetScreen(); if (gameLocationScreenExploration.Visible) @@ -192,19 +314,6 @@ internal static void RefreshActionPanel() } } - internal static void SwitchFeatureDefinitionCastSpellSlots() - { - var db = DatabaseRepository.GetDatabase(); - - foreach (var (name, slotsVanilla, slotsSpellPoints) in FeatureDefinitionCastSpellTab) - { - var featureCastSpell = db.GetElement(name); - - featureCastSpell.slotsPerLevels = - Main.Settings.UseAlternateSpellPointsSystem ? slotsSpellPoints : slotsVanilla; - } - } - private sealed class ModifyPowerPoolAmountPowerSpellPoints : IModifyPowerPoolAmount { private static readonly List SpellPointsByLevel = diff --git a/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs index 536a23fa31..aaff1db695 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs @@ -1,8 +1,6 @@ using System.Diagnostics.CodeAnalysis; -using System.Linq; using HarmonyLib; using JetBrains.Annotations; -using SolastaUnfinishedBusiness.Api; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Models; @@ -39,35 +37,12 @@ public static void Postfix(CharacterActionItemForm __instance) [UsedImplicitly] public static class Refresh_Patch { - private static void SetupUseSlots( - GuiCharacterAction __instance, - RectTransform useSlotsTable, - GuiLabel highSlotNumber) - { - var activatedPower = SpellPointsContext.PowerSpellPoints; - var rulesetCharacter = __instance.actingCharacter.RulesetCharacter; - var usablePower = rulesetCharacter.UsablePowers.FirstOrDefault(x => x.PowerDefinition == activatedPower); - var remainingUsesOfPower = rulesetCharacter.GetRemainingUsesOfPower(usablePower); - - highSlotNumber.gameObject.SetActive(true); - useSlotsTable.gameObject.SetActive(false); - highSlotNumber.Text = remainingUsesOfPower.ToString(); - highSlotNumber.GuiTooltip.Content = - Gui.Format("Screen/&SpellAlternatePointsTooltip", remainingUsesOfPower.ToString()); - } - [UsedImplicitly] public static void Postfix(CharacterActionItemForm __instance) { //PATCH: support display remaining spell points usage (SPELL_POINTS) - if (Main.Settings.UseAlternateSpellPointsSystem && - (__instance.GuiCharacterAction.ActionDefinition == DatabaseHelper.ActionDefinitions.CastMain || - __instance.GuiCharacterAction.ActionDefinition == DatabaseHelper.ActionDefinitions.CastBonus)) - { - SetupUseSlots(__instance.GuiCharacterAction, __instance.useSlotsTable, __instance.highSlotNumber); - - return; - } + SpellPointsContext.SetupUseSlots( + __instance.GuiCharacterAction, __instance.useSlotsTable, __instance.highSlotNumber); //PATCH: support for `IActionItemDiceBox` showing custom dice number/size var action = __instance.guiCharacterAction.ActionDefinition; diff --git a/SolastaUnfinishedBusiness/Patches/CharacterBuildingManagerPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterBuildingManagerPatcher.cs index 1b70873967..a6c21aaf14 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterBuildingManagerPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterBuildingManagerPatcher.cs @@ -165,6 +165,9 @@ public static void Prefix([NotNull] CharacterBuildingManager __instance, [NotNul __instance.GrantCantripsAndSpellsByTag(buildingData, AttributeDefinitions.TagBackground, featureDefinitionCastSpell); } + + //PATCH: grants the power spell points to any created hero including pre-gen ones (SPELL_POINTS) + SpellPointsContext.GrantPowerSpellPoints(hero); } //PATCH: grants custom features diff --git a/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs index 5bb3f7cb8f..30e604c952 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs @@ -30,6 +30,9 @@ public static void Prefix(CharacterInspectionScreen __instance, RulesetCharacter [UsedImplicitly] public static void Postfix(CharacterInspectionScreen __instance, RulesetCharacterHero heroCharacter) { + //PATCH: allows max spell points to display on hero inspection (SPELL_POINTS) + SpellPointsContext.SwitchRepertoireTitleOnInspectionScreen(__instance, heroCharacter); + //PATCH: hide repertoires that have hidden spell casting feature for (var index = 3; index < __instance.toggleGroup.transform.childCount; ++index) { diff --git a/SolastaUnfinishedBusiness/Patches/CharacterReactionSubitemPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterReactionSubitemPatcher.cs index 89d95d85b1..6053a5b4c7 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterReactionSubitemPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterReactionSubitemPatcher.cs @@ -4,7 +4,6 @@ using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Models; using UnityEngine; -using static SolastaUnfinishedBusiness.Api.DatabaseHelper.CharacterClassDefinitions; namespace SolastaUnfinishedBusiness.Patches; @@ -37,19 +36,8 @@ public static void Postfix( if (!SharedSpellsContext.IsMulticaster(hero)) { - if (!Main.Settings.UseAlternateSpellPointsSystem || spellRepertoire?.spellCastingClass == Warlock) - { - return; - } - //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) - for (var index = 0; index < __instance.slotStatusTable.childCount; ++index) - { - var component = __instance.slotStatusTable.GetChild(index).GetComponent(); - - component.Used.gameObject.SetActive(false); - component.Available.gameObject.SetActive(false); - } + SpellPointsContext.HideSpellSlots(hero, __instance.slotStatusTable); return; } diff --git a/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs b/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs index 7bd6f45854..98d6fd9248 100644 --- a/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs @@ -32,20 +32,8 @@ public static void Postfix( if (!SharedSpellsContext.IsMulticaster(hero)) { - // no way a Warlock would get here so no need to check for Warlock - if (!Main.Settings.UseAlternateSpellPointsSystem) - { - return; - } - //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) - for (var index = 0; index < __instance.slotStatusTable.childCount; ++index) - { - var component = __instance.slotStatusTable.GetChild(index).GetComponent(); - - component.Used.gameObject.SetActive(false); - component.Available.gameObject.SetActive(false); - } + SpellPointsContext.HideSpellSlots(hero, __instance.slotStatusTable); return; } @@ -63,10 +51,7 @@ public static class Unbind_Patch public static void Prefix(FlexibleCastingItem __instance) { //PATCH: support alternate spell system to ensure points display is refreshed (SPELL_POINTS) - if (Main.Settings.UseAlternateSpellPointsSystem) - { - SpellPointsContext.RefreshActionPanel(); - } + SpellPointsContext.RefreshActionPanelAfterFlexibleCastingItem(); //PATCH: ensures slot colors are white before getting back to pool (MULTICLASS) MulticlassGameUiContext.PaintSlotsWhite(__instance.slotStatusTable); diff --git a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs index b6322a2e85..a95d3585e9 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs @@ -1253,7 +1253,8 @@ public static void Prefix(RulesetCharacter __instance) if (hero != null && Main.Settings.UseAlternateSpellPointsSystem) { - SpellPointsContext.RefreshSpellRepertoire(__instance.GetOriginalHero()); + SpellPointsContext.ConvertAdditionalSlotsIntoSpellPointsBeforeRefreshSpellRepertoire( + __instance.GetOriginalHero()); } } @@ -1851,20 +1852,7 @@ public static void Postfix(RulesetCharacter __instance) } //PATCH: support adding required power to keep a tab on spell points (SPELL_POINTS) - switch (Main.Settings.UseAlternateSpellPointsSystem) - { - case true when - !hero.HasAnyFeature(SpellPointsContext.PowerSpellPoints): - { - hero.ActiveFeatures[AttributeDefinitions.TagRace].Add(SpellPointsContext.PowerSpellPoints); - var usablePower = PowerProvider.Get(SpellPointsContext.PowerSpellPoints, hero); - var poolSize = hero.GetMaxUsesOfPower(usablePower); - - usablePower.remainingUses = poolSize; - hero.UsablePowers.Add(usablePower); - break; - } - } + SpellPointsContext.GrantPowerSpellPoints(hero); //PATCH: support adding required action affinities to classes that can use toggles if (hero.ClassesHistory.Contains(Paladin)) diff --git a/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs index 34f1ef6c95..f3fb493cc9 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs @@ -107,18 +107,15 @@ is FeatureDefinitionCastSpell.CastingOrigin.Race return; } - // consume points if alternate system is on - if (Main.Settings.UseAlternateSpellPointsSystem) - { - SpellPointsContext.ConsumeSpellPoints(hero, __instance, slotLevel); - } + var warlockSpellRepertoire = SharedSpellsContext.GetWarlockSpellRepertoire(hero); // handle single caster scenarios both alternate system and vanilla if (!SharedSpellsContext.IsMulticaster(hero)) { - if (Main.Settings.UseAlternateSpellPointsSystem) + if (Main.Settings.UseAlternateSpellPointsSystem && + warlockSpellRepertoire == null) { - SpellPointsContext.ConsumeSlots(hero, __instance); + SpellPointsContext.ConsumeSlotsAtLevelsPointsCannotCastAnymore(hero, __instance, slotLevel); } else { @@ -128,8 +125,6 @@ is FeatureDefinitionCastSpell.CastingOrigin.Race return; } - var warlockSpellRepertoire = SharedSpellsContext.GetWarlockSpellRepertoire(hero); - // handles MC non-Warlock if (warlockSpellRepertoire == null) { @@ -139,7 +134,8 @@ is FeatureDefinitionCastSpell.CastingOrigin.Race { if (Main.Settings.UseAlternateSpellPointsSystem) { - SpellPointsContext.ConsumeSlots(hero, spellRepertoire); + SpellPointsContext.ConsumeSlotsAtLevelsPointsCannotCastAnymore( + hero, spellRepertoire, slotLevel); } else { @@ -210,7 +206,7 @@ private static void SpendMulticasterWarlockSlots( } } - // otherwise uses long rest slots across all non race repertoires + // otherwise uses long rest slots across all non-race repertoires else { foreach (var spellRepertoire in hero.SpellRepertoires @@ -219,7 +215,8 @@ private static void SpendMulticasterWarlockSlots( { if (Main.Settings.UseAlternateSpellPointsSystem) { - SpellPointsContext.ConsumeSlots(hero, spellRepertoire); + SpellPointsContext.ConsumeSlotsAtLevelsPointsCannotCastAnymore( + hero, spellRepertoire, slotLevel); } else { @@ -402,7 +399,7 @@ public static bool Prefix(RulesetSpellRepertoire __instance, ref int __result) var warlockSpellLevel = SharedSpellsContext.GetWarlockSpellLevel(hero); - // get off here if doesn't have any Warlock level + // get off here if it doesn't have any Warlock level if (warlockSpellLevel == 0) { return true; diff --git a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs index 989336c698..0ce4fe823c 100644 --- a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs @@ -64,24 +64,17 @@ public static void Postfix( if (!SharedSpellsContext.IsMulticaster(hero)) { - if (!Main.Settings.UseAlternateSpellPointsSystem || spellRepertoire.spellCastingClass == Warlock) - { - return; - } - //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) - for (var index = 0; index < __instance.table.childCount; ++index) + // ReSharper disable once InvertIf + if (Main.Settings.UseAlternateSpellPointsSystem && + spellRepertoire.spellCastingClass != Warlock) { - var component = __instance.table.GetChild(index).GetComponent(); - - component.Used.gameObject.SetActive(false); - component.Available.gameObject.SetActive(false); - - var cost = SpellPointsContext.SpellCostByLevel[spellLevel].ToString(); + for (var index = 0; index < __instance.table.childCount; ++index) + { + var component = __instance.table.GetChild(index).GetComponent(); - __instance.slotsText.gameObject.SetActive(true); - __instance.slotsText.Text = - spells.Count < 2 ? cost : Gui.Format("Screen/&SpellAlternatePointsCostTooltip", cost); + SpellPointsContext.AddCostTextToSpellLevels(__instance, component, spellLevel, spells.Count); + } } return; @@ -96,8 +89,8 @@ public static void Postfix( spellLevel, spells.Count, __instance, - (Global.InspectedHero != null && spellRepertoire.spellCastingClass == Warlock) - || (Global.InspectedHero == null && !Main.Settings.DisplayPactSlotsOnSpellSelectionPanel)); + (Global.InspectedHero != null && spellRepertoire.spellCastingClass == Warlock) || + (Global.InspectedHero == null && !Main.Settings.DisplayPactSlotsOnSpellSelectionPanel)); } } diff --git a/SolastaUnfinishedBusiness/Settings/zappastuff.xml b/SolastaUnfinishedBusiness/Settings/zappastuff.xml index 1365ebe3c6..11e1e7c852 100644 --- a/SolastaUnfinishedBusiness/Settings/zappastuff.xml +++ b/SolastaUnfinishedBusiness/Settings/zappastuff.xml @@ -456,6 +456,7 @@ true true true + false false true true @@ -1542,6 +1543,7 @@ BrainBulwark PsionicBlast PsychicLance + SickeningRadiance VitriolicSphere FarStep Incineration @@ -1602,6 +1604,7 @@ ElementalBane PsionicBlast PsychicLance + SickeningRadiance FarStep SynapticStatic FlashFreeze @@ -1683,6 +1686,7 @@ FaithfulHound PsionicBlast PsychicLance + SickeningRadiance VitriolicSphere Dawn FarStep From 43fe22498bc13cb47fc4ca2bddbbe9a6c75d1abb Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 23:12:08 -0700 Subject: [PATCH 44/91] fix minor issues on spell points rules --- SolastaUnfinishedBusiness/Models/LevelUpContext.cs | 4 ++-- .../Models/SharedSpellsContext.cs | 7 +++++++ SolastaUnfinishedBusiness/Models/SpellPointsContext.cs | 10 ++++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/SolastaUnfinishedBusiness/Models/LevelUpContext.cs b/SolastaUnfinishedBusiness/Models/LevelUpContext.cs index 16dfb01faf..fd128f5ebf 100644 --- a/SolastaUnfinishedBusiness/Models/LevelUpContext.cs +++ b/SolastaUnfinishedBusiness/Models/LevelUpContext.cs @@ -17,8 +17,8 @@ namespace SolastaUnfinishedBusiness.Models; internal static class LevelUpContext { - internal const string ExtraClassTag = "@Class"; - internal const string ExtraSubclassTag = "@Subclass"; + internal const string ExtraClassTag = ""; //""@Class"; + internal const string ExtraSubclassTag = ""; //""@Subclass"; // keeps a tab on all heroes leveling up private static readonly Dictionary LevelUpTab = new(); diff --git a/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs b/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs index e3b3bd9c00..2e0690adf6 100644 --- a/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs @@ -199,6 +199,13 @@ internal static int GetSharedSpellLevel(RulesetCharacterHero rulesetCharacterHer { var sharedCasterLevel = GetSharedCasterLevel(rulesetCharacterHero); + if (Main.Settings.UseAlternateSpellPointsSystem) + { + return sharedCasterLevel > 0 + ? SpellPointsContext.SpellPointsFullCastingSlots[sharedCasterLevel - 1].Slots.IndexOf(0) + : 0; + } + return sharedCasterLevel > 0 ? FullCastingSlots[sharedCasterLevel - 1].Slots.IndexOf(0) : 0; } diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index fcd02f6099..f6aad98ef3 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -18,12 +18,12 @@ namespace SolastaUnfinishedBusiness.Models; internal static class SpellPointsContext { - internal static readonly List SpellCostByLevel = [0, 2, 3, 5, 6, 7, 9, 10, 11, 13]; + private static readonly List SpellCostByLevel = [0, 2, 3, 5, 6, 7, 9, 10, 11, 13]; private static readonly List FullCastingSlots = []; private static readonly List HalfCastingSlots = []; private static readonly List HalfRoundUpCastingSlots = []; private static readonly List OneThirdCastingSlots = []; - private static readonly List SpellPointsFullCastingSlots = []; + internal static readonly List SpellPointsFullCastingSlots = []; private static readonly List SpellPointsHalfCastingSlots = []; private static readonly List SpellPointsHalfRoundUpCastingSlots = []; private static readonly List SpellPointsOneThirdCastingSlots = []; @@ -150,10 +150,12 @@ internal static void SwitchRepertoireTitleOnInspectionScreen( for (var i = 0; i < __instance.spellPanelsContainer.childCount; i++) { var child = __instance.spellPanelsContainer.GetChild(i); - var repertoireTitle = child.GetChild(1).GetChild(1).GetComponent(); - if (Main.Settings.UseAlternateSpellPointsSystem) + if (Main.Settings.UseAlternateSpellPointsSystem && + (SharedSpellsContext.IsMulticaster(heroCharacter) || + SharedSpellsContext.GetWarlockSpellRepertoire(heroCharacter) == null)) + { var maxSpellPoints = GetMaxSpellPoints(heroCharacter).ToString(); var postfix = Gui.Format("Screen/&SpellAlternatePointsCostTooltip", maxSpellPoints); From 7ce10f4c0cb868bcee1c0f6e750aab228176667e Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 00:09:50 -0700 Subject: [PATCH 45/91] additional tweaks on spell points rules --- .../PowerSpellPoints.json | 2 +- .../Models/SharedSpellsContext.cs | 118 +++++++++--------- .../Models/SpellPointsContext.cs | 47 +++---- .../CharacterInspectionScreenPatcher.cs | 7 +- 4 files changed, 91 insertions(+), 83 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json index f0c08f53ee..1d9c970f0f 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json @@ -161,7 +161,7 @@ "usesDetermination": "Fixed", "abilityScoreDetermination": "Explicit", "usesAbilityScoreName": "Charisma", - "fixedUsesPerRecharge": 1, + "fixedUsesPerRecharge": 0, "abilityScore": "Intelligence", "attackHitComputation": "AbilityScore", "fixedAttackHit": 0, diff --git a/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs b/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs index 2e0690adf6..8c88b16d87 100644 --- a/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs @@ -25,7 +25,7 @@ internal static class SharedSpellsContext // supports custom MaxSpellLevelOfSpellCastLevel behaviors internal static bool UseMaxSpellLevelOfSpellCastingLevelDefaultBehavior { get; private set; } - internal static Dictionary RecoverySlots { get; } = new() + internal static readonly Dictionary RecoverySlots = new() { { PowerCircleLandNaturalRecovery.Name, Druid }, { PowerWizardArcaneRecovery.Name, Wizard }, @@ -33,7 +33,7 @@ internal static class SharedSpellsContext { WizardSpellMaster.PowerSpellMasterBonusRecoveryName, Wizard } }; - private static Dictionary ClassCasterType { get; } = new() + private static readonly Dictionary ClassCasterType = new() { { Bard.Name, CasterProgression.Full }, { Cleric.Name, CasterProgression.Full }, @@ -45,7 +45,7 @@ internal static class SharedSpellsContext { InventorClass.ClassName, CasterProgression.HalfRoundUp } }; - private static Dictionary SubclassCasterType { get; } = new() + private static readonly Dictionary SubclassCasterType = new() { { MartialSpellblade.Name, CasterProgression.OneThird }, { RoguishArcaneScoundrel.Name, CasterProgression.OneThird }, @@ -213,6 +213,9 @@ internal static void LateLoad() { PatchMaxSpellLevelOfSpellCastingLevel(); EnumerateSlotsPerLevel(CasterProgression.Full, FullCastingSlots); + EnumerateSlotsPerLevel(CasterProgression.Half, HalfCastingSlots); + EnumerateSlotsPerLevel(CasterProgression.HalfRoundUp, HalfRoundUpCastingSlots); + EnumerateSlotsPerLevel(CasterProgression.OneThird, OneThirdCastingSlots); } private static void PatchMaxSpellLevelOfSpellCastingLevel() @@ -346,56 +349,55 @@ internal int GetCasterLevel() #region Slots Definitions - internal static IEnumerable InitiateCastingSlots { get; } = new List - { - new() { Slots = [1], Level = 01 }, - new() { Slots = [1], Level = 02 }, - new() { Slots = [1], Level = 03 }, - new() { Slots = [1], Level = 04 }, - new() { Slots = [1], Level = 05 }, - new() { Slots = [1], Level = 06 }, - new() { Slots = [1], Level = 07 }, - new() { Slots = [1], Level = 08 }, - new() { Slots = [1], Level = 09 }, - new() { Slots = [1], Level = 10 }, - new() { Slots = [1], Level = 11 }, - new() { Slots = [1], Level = 12 }, - new() { Slots = [1], Level = 13 }, - new() { Slots = [1], Level = 14 }, - new() { Slots = [1], Level = 15 }, - new() { Slots = [1], Level = 16 }, - new() { Slots = [1], Level = 17 }, - new() { Slots = [1], Level = 18 }, - new() { Slots = [1], Level = 19 }, - new() { Slots = [1], Level = 20 } - }; + internal static readonly List InitiateCastingSlots = + [ + new SlotsByLevelDuplet { Slots = [1], Level = 01 }, + new SlotsByLevelDuplet { Slots = [1], Level = 02 }, + new SlotsByLevelDuplet { Slots = [1], Level = 03 }, + new SlotsByLevelDuplet { Slots = [1], Level = 04 }, + new SlotsByLevelDuplet { Slots = [1], Level = 05 }, + new SlotsByLevelDuplet { Slots = [1], Level = 06 }, + new SlotsByLevelDuplet { Slots = [1], Level = 07 }, + new SlotsByLevelDuplet { Slots = [1], Level = 08 }, + new SlotsByLevelDuplet { Slots = [1], Level = 09 }, + new SlotsByLevelDuplet { Slots = [1], Level = 10 }, + new SlotsByLevelDuplet { Slots = [1], Level = 11 }, + new SlotsByLevelDuplet { Slots = [1], Level = 12 }, + new SlotsByLevelDuplet { Slots = [1], Level = 13 }, + new SlotsByLevelDuplet { Slots = [1], Level = 14 }, + new SlotsByLevelDuplet { Slots = [1], Level = 15 }, + new SlotsByLevelDuplet { Slots = [1], Level = 16 }, + new SlotsByLevelDuplet { Slots = [1], Level = 17 }, + new SlotsByLevelDuplet { Slots = [1], Level = 18 }, + new SlotsByLevelDuplet { Slots = [1], Level = 19 }, + new SlotsByLevelDuplet { Slots = [1], Level = 20 } + ]; - internal static IEnumerable RaceCastingSlots { get; } = new List - { - new() { Slots = [0, 0], Level = 01 }, - new() { Slots = [0, 0], Level = 02 }, - new() { Slots = [1, 0], Level = 03 }, - new() { Slots = [1, 0], Level = 04 }, - new() { Slots = [1, 1], Level = 05 }, - new() { Slots = [1, 1], Level = 06 }, - new() { Slots = [1, 1], Level = 07 }, - new() { Slots = [1, 1], Level = 08 }, - new() { Slots = [1, 1], Level = 09 }, - new() { Slots = [1, 1], Level = 10 }, - new() { Slots = [1, 1], Level = 11 }, - new() { Slots = [1, 1], Level = 12 }, - new() { Slots = [1, 1], Level = 13 }, - new() { Slots = [1, 1], Level = 14 }, - new() { Slots = [1, 1], Level = 15 }, - new() { Slots = [1, 1], Level = 16 }, - new() { Slots = [1, 1], Level = 17 }, - new() { Slots = [1, 1], Level = 18 }, - new() { Slots = [1, 1], Level = 19 }, - new() { Slots = [1, 1], Level = 20 } - }; + internal static readonly List RaceCastingSlots = + [ + new SlotsByLevelDuplet { Slots = [0, 0], Level = 01 }, + new SlotsByLevelDuplet { Slots = [0, 0], Level = 02 }, + new SlotsByLevelDuplet { Slots = [1, 0], Level = 03 }, + new SlotsByLevelDuplet { Slots = [1, 0], Level = 04 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 05 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 06 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 07 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 08 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 09 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 10 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 11 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 12 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 13 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 14 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 15 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 16 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 17 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 18 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 19 }, + new SlotsByLevelDuplet { Slots = [1, 1], Level = 20 } + ]; - // ReSharper disable once ReturnTypeCanBeEnumerable.Global - internal static List RaceEmptyCastingSlots { get; } = + internal static readonly List RaceEmptyCastingSlots = [ new SlotsByLevelDuplet { Slots = [0], Level = 01 }, new SlotsByLevelDuplet { Slots = [0], Level = 02 }, @@ -420,7 +422,7 @@ internal int GetCasterLevel() ]; // game uses IndexOf(0) on these sub lists reason why the last 0 there - private static List WarlockCastingSlots { get; } = + private static readonly List WarlockCastingSlots = [ new SlotsByLevelDuplet { @@ -703,12 +705,14 @@ internal int GetCasterLevel() } ]; - // game uses IndexOf(0) on these sub lists reason why the last 0 there - internal static List FullCastingSlots { get; } = []; + internal static readonly List FullCastingSlots = []; + internal static readonly List HalfCastingSlots = []; + internal static readonly List HalfRoundUpCastingSlots = []; + internal static readonly List OneThirdCastingSlots = []; // additional spells supporting collections - internal static IEnumerable WarlockKnownSpells { get; } = new List - { + internal static readonly List WarlockKnownSpells = + [ 2, 3, 4, @@ -729,7 +733,7 @@ internal int GetCasterLevel() 14, 15, 15 - }; + ]; #endregion } diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index f6aad98ef3..32f7ae4e93 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -19,10 +19,7 @@ namespace SolastaUnfinishedBusiness.Models; internal static class SpellPointsContext { private static readonly List SpellCostByLevel = [0, 2, 3, 5, 6, 7, 9, 10, 11, 13]; - private static readonly List FullCastingSlots = []; - private static readonly List HalfCastingSlots = []; - private static readonly List HalfRoundUpCastingSlots = []; - private static readonly List OneThirdCastingSlots = []; + internal static readonly List SpellPointsFullCastingSlots = []; private static readonly List SpellPointsHalfCastingSlots = []; private static readonly List SpellPointsHalfRoundUpCastingSlots = []; @@ -31,33 +28,38 @@ internal static class SpellPointsContext private static readonly List<(string, List, List)> FeatureDefinitionCastSpellTab = [ - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellBard.Name, FullCastingSlots, + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellBard.Name, SharedSpellsContext.FullCastingSlots, SpellPointsFullCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellCleric.Name, FullCastingSlots, + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellCleric.Name, SharedSpellsContext.FullCastingSlots, SpellPointsFullCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellDruid.Name, FullCastingSlots, + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellDruid.Name, SharedSpellsContext.FullCastingSlots, SpellPointsFullCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellPaladin.Name, HalfCastingSlots, + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellPaladin.Name, SharedSpellsContext.HalfCastingSlots, SpellPointsHalfCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellRanger.Name, HalfCastingSlots, + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellRanger.Name, SharedSpellsContext.HalfCastingSlots, SpellPointsHalfCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellSorcerer.Name, FullCastingSlots, + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellSorcerer.Name, SharedSpellsContext.FullCastingSlots, SpellPointsFullCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellWizard.Name, FullCastingSlots, + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellWizard.Name, SharedSpellsContext.FullCastingSlots, SpellPointsFullCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellMartialSpellBlade.Name, OneThirdCastingSlots, + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellMartialSpellBlade.Name, + SharedSpellsContext.OneThirdCastingSlots, + SpellPointsOneThirdCastingSlots), + (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellShadowcaster.Name, + SharedSpellsContext.OneThirdCastingSlots, SpellPointsOneThirdCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellShadowcaster.Name, OneThirdCastingSlots, + (InventorClass.SpellCasting.Name, SharedSpellsContext.HalfRoundUpCastingSlots, + SpellPointsHalfRoundUpCastingSlots), + (RoguishArcaneScoundrel.CastSpellName, SharedSpellsContext.OneThirdCastingSlots, SpellPointsOneThirdCastingSlots), - (InventorClass.SpellCasting.Name, HalfRoundUpCastingSlots, SpellPointsHalfRoundUpCastingSlots), - (RoguishArcaneScoundrel.CastSpellName, OneThirdCastingSlots, SpellPointsOneThirdCastingSlots), - (MartialSpellShield.CastSpellName, OneThirdCastingSlots, SpellPointsOneThirdCastingSlots) + (MartialSpellShield.CastSpellName, SharedSpellsContext.OneThirdCastingSlots, + SpellPointsOneThirdCastingSlots) ]; private static readonly FeatureDefinitionPower PowerSpellPoints = FeatureDefinitionPowerBuilder .Create("PowerSpellPoints") .SetGuiPresentationNoContent(true) - .SetUsesFixed(ActivationTime.NoCost, RechargeRate.LongRest) + .SetUsesFixed(ActivationTime.NoCost, RechargeRate.LongRest, 1, 0) .AddCustomSubFeatures( HasModifiedUses.Marker, new ModifyPowerPoolAmountPowerSpellPoints()) @@ -65,10 +67,6 @@ internal static class SpellPointsContext internal static void LateLoad() { - EnumerateSlotsPerLevel(CasterProgression.Full, FullCastingSlots); - EnumerateSlotsPerLevel(CasterProgression.Half, HalfCastingSlots); - EnumerateSlotsPerLevel(CasterProgression.HalfRoundUp, HalfRoundUpCastingSlots); - EnumerateSlotsPerLevel(CasterProgression.OneThird, OneThirdCastingSlots); EnumerateSlotsPerLevel(CasterProgression.Full, SpellPointsFullCastingSlots, true); EnumerateSlotsPerLevel(CasterProgression.Half, SpellPointsHalfCastingSlots, true); EnumerateSlotsPerLevel(CasterProgression.HalfRoundUp, SpellPointsHalfRoundUpCastingSlots, true); @@ -151,11 +149,14 @@ internal static void SwitchRepertoireTitleOnInspectionScreen( { var child = __instance.spellPanelsContainer.GetChild(i); var repertoireTitle = child.GetChild(1).GetChild(1).GetComponent(); + var spellRepertoire = __instance.InspectedCharacter.RulesetCharacterHero.SpellRepertoires[i]; if (Main.Settings.UseAlternateSpellPointsSystem && (SharedSpellsContext.IsMulticaster(heroCharacter) || - SharedSpellsContext.GetWarlockSpellRepertoire(heroCharacter) == null)) - + SharedSpellsContext.GetWarlockSpellRepertoire(heroCharacter) == null) && + spellRepertoire.SpellCastingFeature.SpellCastingOrigin + is CastingOrigin.Class + or CastingOrigin.Subclass) { var maxSpellPoints = GetMaxSpellPoints(heroCharacter).ToString(); var postfix = Gui.Format("Screen/&SpellAlternatePointsCostTooltip", maxSpellPoints); diff --git a/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs index 30e604c952..5beb50ce8b 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs @@ -38,9 +38,12 @@ public static void Postfix(CharacterInspectionScreen __instance, RulesetCharacte { var child = __instance.toggleGroup.transform.GetChild(index); - if (index <= 3 && Gui.Game) + if (index <= 3) { - continue; + if (Gui.Game) + { + continue; + } } var repertoire = heroCharacter.SpellRepertoires[index - __instance.staticTogglesNumber]; From 192203b22b26e47773675e41c0f16047e3295e38 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 09:19:55 -0700 Subject: [PATCH 46/91] update translations --- .../Translations/de/Settings-de.txt | 1 + .../de/SubClasses/CollegeOfAudacity-de.txt | 47 ++++++++-------- .../en/SubClasses/CollegeOfAudacity-en.txt | 41 +++++++------- .../Translations/es/Settings-es.txt | 1 + .../es/SubClasses/CollegeOfAudacity-es.txt | 43 +++++++-------- .../Translations/fr/Settings-fr.txt | 1 + .../fr/SubClasses/CollegeOfAudacity-fr.txt | 43 +++++++-------- .../Translations/it/Settings-it.txt | 1 + .../it/SubClasses/CollegeOfAudacity-it.txt | 43 +++++++-------- .../Translations/ja/Settings-ja.txt | 1 + .../ja/SubClasses/CollegeOfAudacity-ja.txt | 49 ++++++++--------- .../Translations/ko/Settings-ko.txt | 1 + .../ko/SubClasses/CollegeOfAudacity-ko.txt | 41 +++++++------- .../Translations/pt-BR/Settings-pt-BR.txt | 1 + .../SubClasses/CollegeOfAudacity-pt-BR.txt | 43 +++++++-------- .../Translations/ru/Settings-ru.txt | 1 + .../ru/SubClasses/CollegeOfAudacity-ru.txt | 1 + .../Translations/zh-CN/Settings-zh-CN.txt | 1 + .../SubClasses/CollegeOfAudacity-zh-CN.txt | 53 ++++++++++--------- 19 files changed, 216 insertions(+), 197 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt index b5e29ee67b..13048f3253 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt @@ -319,6 +319,7 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Schalte ZaubererAktualisieren ModUi/&UseAlternateSpellPointsSystem=Benutze offizielle Varianten-Zauberpunkt-Regeln +ModUi/&UseAlternateSpellPointsSystemHelp=[Sie verfügen über einen Pool an Zauberpunkten, der mit der Zauberstufe steigt\nL01: 04 L02: 06 L03: 14 L04: 17 L05: 27 L06: 32 L07: 38 L08: 44 L09: 57 L10: 64\nL11: 73 L12: 73 L13: 83 L14: 83 L15: 94 L16: 94 L17: 107 L18: 114 L19: 123 L20: 133\nKosten zum Wirken von Zaubersprüchen sind SL1: 2 SL2: 3 SL3: 5 SL4: 6 SL5: 7 SL6: 9 SL7: 10 SL8: 11 SL9: 13\nDie Wiederherstellungsfunktionen für kurze Ruheslots werden unter diesem System nicht ausgelöst] ModUi/&UseElfFaceModelsOnTieflings=Verwenden Sie Elfen-Gesichtsmodelle für Tieflings ModUi/&UseHeightOneCylinderEffect=Verwenden Sie einen Zylindereffekt der Höhe 1, wenn Sie Black Tentacles, Entangle, Grease [square] oder Spike Growth [round] ModUi/&UseMathFlankingRules=+ Verwenden Sie präzise Mathematik, um flankierende [kann sich auf langsamen Maschinen auf die Leistung auswirken] zu bestimmen diff --git a/SolastaUnfinishedBusiness/Translations/de/SubClasses/CollegeOfAudacity-de.txt b/SolastaUnfinishedBusiness/Translations/de/SubClasses/CollegeOfAudacity-de.txt index 36f7bf19a8..a06076eb25 100644 --- a/SolastaUnfinishedBusiness/Translations/de/SubClasses/CollegeOfAudacity-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/SubClasses/CollegeOfAudacity-de.txt @@ -1,26 +1,27 @@ -Action/&AudaciousWhirlToggleDescription=Audacious Whirl aktivieren/deaktivieren -Action/&AudaciousWhirlToggleTitle=Kühner Wirbel -Action/&MasterfulWhirlToggleDescription=Masterful Whirl aktivieren/deaktivieren -Action/&MasterfulWhirlToggleTitle=Meisterhafter Wirbel -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Wirbelrolle auf AC. -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Defensiver Wirbel -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Immer wenn Sie in Ihrem Zug die Angriffsaktion ausführen, erhöht sich Ihre Gehgeschwindigkeit bis zum Ende des Zuges um 10 Fuß. Wenn ein Nahkampfwaffenangriff, den Sie im Rahmen dieser Aktion ausführen, eine Kreatur trifft, können Sie einen Einsatz Ihres Bardens aufwenden Inspiration, die dazu führt, dass die Waffe dem getroffenen Ziel zusätzlichen Schaden zufügt. Der Schaden entspricht der Zahl, die Sie auf dem Bardic Inspiration-Würfel würfeln. Du wählst auch ein bestimmtes Manöver:\n• Defensiver Wirbel: Du fügst den Bardic Inspiration-Würfelwurf bis zum Beginn deines nächsten Zuges zu deiner AC hinzu.\n• Slashing Whirl: Du fügst allen anderen gegnerischen Kreaturen in einem Umkreis von 5 Fuß um dich herum den zusätzlichen Schaden zu.\n• Mobiler Wirbel: Du erhältst bis zum Ende deines Zuges die Vorteile des Rückzugs. -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Kühner Wirbel -Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=Sie erlangen Kenntnisse im Umgang mit mittlerer Rüstung und dem Krummsäbel. Sie können Ihre Waffe auch als Zauberfokus für Ihre Bardenzauber verwenden. +Action/&AudaciousWhirlToggleDescription=Blade Flourish aktivieren/deaktivieren +Action/&AudaciousWhirlToggleTitle=Klingenschwung +Action/&MasterfulWhirlToggleDescription=Aktivieren/Deaktivieren von Master’s Flourish +Action/&MasterfulWhirlToggleTitle=Meisterhafte Blüte +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Flourish-Rolle zu AC. +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Defensives Gedeihen +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Wann immer Sie in Ihrem Zug die Aktion „Angriff“ ausführen, erhöht sich Ihre Gehgeschwindigkeit bis zum Ende des Zuges um 10 Fuß, und wenn ein Nahkampfangriff, den Sie als Teil dieser Aktion ausführen, eine Kreatur trifft, können Sie eine Anwendung Ihrer Bardischen Inspiration aufwenden, damit die Waffe dem getroffenen Ziel zusätzlichen Schaden zufügt. Der Schaden entspricht der Zahl, die Sie auf dem Bardischen Inspirationswürfel würfeln. Sie wählen außerdem ein bestimmtes Manöver:\n• Defensives Gedeihen: Sie addieren den Würfelwurf der Bardischen Inspiration bis zum Beginn Ihres nächsten Zuges zu Ihrer RK.\n• Schneidendes Gedeihen: Sie fügen allen anderen feindlichen Kreaturen im Umkreis von 5 Fuß um Sie herum den zusätzlichen Schaden zu.\n• Mobiles Gedeihen: Sie erhalten bis zum Ende Ihres Zuges die Vorteile der Rückzugsmöglichkeit. +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Klingenschwung +Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=Du erlangst Kenntnisse im Umgang mit mittlerer Rüstung und dem Krummsäbel. Du kannst deine Waffe auch als Fokus für deine Bardenzauber verwenden. Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=Bonus-Fertigkeiten -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Wann immer Sie die Option „Audacious Whirl“ verwenden, können Sie einen W6 würfeln und ihn verwenden, anstatt einen bardischen Inspirationswürfel auszugeben. -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Meisterhafter Wirbel -Feature/&FightingStyleChoiceCollegeOfAudacityDescription=Sie machen sich einen bestimmten Kampfstil zu Ihrer Spezialität. Wählen Sie entweder Duell oder Zwei-Waffen-Kampf. +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Wenn Sie die Option „Blade Flourish“ verwenden, können Sie einen W6 würfeln und ihn verwenden, anstatt einen Bardic Inspiration-Würfel auszugeben. +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Meisterhafte Blüte +Feature/&FightingStyleChoiceCollegeOfAudacityDescription=Sie legen einen bestimmten Kampfstil als Ihre Spezialität fest. Wählen Sie entweder Duell oder Kampf mit zwei Waffen. Feature/&FightingStyleChoiceCollegeOfAudacityTitle=Kampfstil -Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Du kannst eine Anwendung deiner bardischen Inspiration nutzen, um die Waffe dazu zu bringen, dem von dir getroffenen Ziel zusätzlichen Schaden zuzufügen. Der Schaden entspricht der Zahl, die Sie auf dem Bardic Inspiration-Würfel würfeln, oder einem W6, wenn es sich um einen Masterful Whirl handelt. Außerdem addierst du die gewürfelte Zahl bis zum Beginn deines nächsten Zuges zu deinem AC. -Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Defensiver Wirbel -Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Du kannst eine Anwendung deiner bardischen Inspiration nutzen, um die Waffe dazu zu bringen, dem von dir getroffenen Ziel zusätzlichen Schaden zuzufügen. Der Schaden entspricht der Zahl, die Sie auf dem Bardic Inspiration-Würfel würfeln, oder einem W6, wenn es sich um einen Masterful Whirl handelt. Bis zum Ende Ihres Zuges erhalten Sie die Vorteile des Rückzugs. -Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Mobiler Wirbel -Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Du kannst eine Anwendung deiner bardischen Inspiration nutzen, um die Waffe dazu zu bringen, dem von dir getroffenen Ziel und allen anderen feindlichen Kreaturen im Umkreis von 1,5 m um dich herum zusätzlichen Schaden zuzufügen. Der Schaden entspricht der Zahl, die Sie auf dem Bardic Inspiration-Würfel würfeln, oder einem W6, wenn es sich um einen Masterful Whirl handelt. -Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Schneidwirbel -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} kann dazu führen, dass die Waffe dem Ziel zusätzlichen Schaden zufügt. Der Schaden entspricht der Zahl, die Sie auf dem Bardic Inspiration-Würfel würfeln, oder einem W6, wenn es sich um einen Masterful Whirl handelt. -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Wirbeln -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Wirbeln -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Wirbeln -Subclass/&CollegeOfAudacityDescription=Barden des College of Swords unterhalten durch gewagte Heldentaten der Waffenkunst. Sie führen Stunts wie Schwertschlucken, Messerwerfen und Jonglieren sowie Scheinkämpfe vor. Obwohl sie ihre Waffen zur Unterhaltung nutzen, sind sie auch selbst gut ausgebildete und erfahrene Krieger. +Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Sie können eine Verwendung Ihrer Bardic Inspiration aufwenden, damit die Waffe dem getroffenen Ziel zusätzlichen Schaden zufügt. Der Schaden entspricht der Zahl, die Sie auf dem Bardic Inspiration-Würfel würfeln, oder einem W6, wenn es sich um einen Master's Flourish handelt. Sie addieren die gewürfelte Zahl außerdem bis zum Beginn Ihres nächsten Zuges zu Ihrer AC. +Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Defensives Gedeihen +Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Sie können eine Verwendung Ihrer Bardic Inspiration aufwenden, damit die Waffe dem getroffenen Ziel zusätzlichen Schaden zufügt. Der Schaden entspricht der Zahl, die Sie auf dem Bardic Inspiration-Würfel würfeln, oder einem W6, wenn es sich um einen Master's Flourish handelt. Sie erhalten bis zum Ende Ihres Zuges die Vorteile der Ausschaltung. +Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Mobiles Gedeihen +Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Sie können Ihre Bardic Inspiration einmal einsetzen, damit die Waffe dem getroffenen Ziel und allen anderen feindlichen Kreaturen im Umkreis von 1,5 Metern zusätzlichen Schaden zufügt. Der Schaden entspricht der Zahl, die Sie auf dem Bardic Inspiration-Würfel würfeln, oder einem W6, wenn es sich um einen Master's Flourish handelt. +Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Schnörkel +Feedback/&CollegeOfAudacityDefensiveWhirl={0} würfelt mit {2} und addiert {3} zu AC. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} kann dazu führen, dass die Waffe dem Ziel zusätzlichen Schaden zufügt. Der Schaden entspricht der Zahl, die Sie auf dem Bardic Inspiration-Würfel würfeln, oder einem W6, wenn es sich um einen Master's Flourish handelt. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Blühen +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Blühen +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Blühen +Subclass/&CollegeOfAudacityDescription=Barden des College of Swords unterhalten durch waghalsige Kunststücke mit Waffengewalt. Sie führen Kunststücke wie Schwertschlucken, Messerwerfen und Jonglieren sowie Scheinkämpfe vor. Obwohl sie ihre Waffen zur Unterhaltung einsetzen, sind sie selbst auch hochtrainierte und fähige Krieger. Subclass/&CollegeOfAudacityTitle=Hochschule der Schwerter diff --git a/SolastaUnfinishedBusiness/Translations/en/SubClasses/CollegeOfAudacity-en.txt b/SolastaUnfinishedBusiness/Translations/en/SubClasses/CollegeOfAudacity-en.txt index 2f7f0eb5d1..e03701907b 100644 --- a/SolastaUnfinishedBusiness/Translations/en/SubClasses/CollegeOfAudacity-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/SubClasses/CollegeOfAudacity-en.txt @@ -1,26 +1,27 @@ -Action/&AudaciousWhirlToggleDescription=Activate/deactivate Audacious Whirl -Action/&AudaciousWhirlToggleTitle=Audacious Whirl -Action/&MasterfulWhirlToggleDescription=Activate/deactivate Masterful Whirl -Action/&MasterfulWhirlToggleTitle=Masterful Whirl -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Whirl roll to AC. -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Defensive Whirl -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Whenever you take the Attack action on your turn, your walking speed increases by 10 feet until the end of the turn, and if a melee weapon attack that you make as part of this action hits a creature, you can expend one use of your Bardic Inspiration to cause the weapon to deal extra damage to the target you hit. The damage equals the number you roll on the Bardic Inspiration die. You also choose a particular maneuver:\n• Defensive Whirl: You add the Bardic Inspiration die roll to your AC until the start of your next turn.\n• Slashing Whirl: You deal the extra damage to all other enemy creatures within 5 feet of you.\n• Mobile Whirl: You gain benefits of disengage until the end of your turn. -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Audacious Whirl +Action/&AudaciousWhirlToggleDescription=Activate/deactivate Blade Flourish +Action/&AudaciousWhirlToggleTitle=Blade Flourish +Action/&MasterfulWhirlToggleDescription=Activate/deactivate Master's Flourish +Action/&MasterfulWhirlToggleTitle=Master's Flourish +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Flourish roll to AC. +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Defensive Flourish +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Whenever you take the Attack action on your turn, your walking speed increases by 10 feet until the end of the turn, and if a melee weapon attack that you make as part of this action hits a creature, you can expend one use of your Bardic Inspiration to cause the weapon to deal extra damage to the target you hit. The damage equals the number you roll on the Bardic Inspiration die. You also choose a particular maneuver:\n• Defensive Flourish: You add the Bardic Inspiration die roll to your AC until the start of your next turn.\n• Slashing Flourish: You deal the extra damage to all other enemy creatures within 5 feet of you.\n• Mobile Flourish: You gain benefits of disengage until the end of your turn. +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Blade Flourish Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=You gain proficiency with medium armor and the scimitar. You can also use your weapon as a spellcasting focus for your bard spells. Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=Bonus Proficiencies -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Whenever you use an Audacious Whirl option, you can roll a D6 and use it instead of expending a Bardic Inspiration die. -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Masterful Whirl +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Whenever you use a Blade Flourish option, you can roll a D6 and use it instead of expending a Bardic Inspiration die. +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Master's Flourish Feature/&FightingStyleChoiceCollegeOfAudacityDescription=You adopt a particular style of fighting as your specialty. Choose either Dueling or Two Weapon Fighting. Feature/&FightingStyleChoiceCollegeOfAudacityTitle=Fighting Style -Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=You can expend one use of your Bardic Inspiration to cause the weapon to deal extra damage to the target you hit. The damage equals the number you roll on the Bardic Inspiration die or a D6 if a Masterful Whirl. You also add the number rolled to your AC until the start of your next turn. -Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Defensive Whirl -Feature/&PowerCollegeOfAudacityMobileWhirlDescription=You can expend one use of your Bardic Inspiration to cause the weapon to deal extra damage to the target you hit. The damage equals the number you roll on the Bardic Inspiration die or a D6 if a Masterful Whirl. You gain benefits of disengage until the end of your turn. -Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Mobile Whirl -Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=You can expend one use of your Bardic Inspiration to cause the weapon to deal extra damage to target you hit and to all other enemy creatures within 5 feet of you. The damage equals the number you roll on the Bardic Inspiration die or a D6 if a Masterful Whirl. -Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Slashing Whirl -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} can cause the weapon to deal extra damage to the target. The damage is equal to the number you roll on the Bardic Inspiration die or a D6 if a Masterful Whirl. -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Whirl -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Whirl -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Whirl +Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=You can expend one use of your Bardic Inspiration to cause the weapon to deal extra damage to the target you hit. The damage equals the number you roll on the Bardic Inspiration die or a D6 if a Master's Flourish. You also add the number rolled to your AC until the start of your next turn. +Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Defensive Flourish +Feature/&PowerCollegeOfAudacityMobileWhirlDescription=You can expend one use of your Bardic Inspiration to cause the weapon to deal extra damage to the target you hit. The damage equals the number you roll on the Bardic Inspiration die or a D6 if a Master's Flourish. You gain benefits of disengage until the end of your turn. +Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Mobile Flourish +Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=You can expend one use of your Bardic Inspiration to cause the weapon to deal extra damage to target you hit and to all other enemy creatures within 5 feet of you. The damage equals the number you roll on the Bardic Inspiration die or a D6 if a Master's Flourish. +Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Slashing Flourish +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} can cause the weapon to deal extra damage to the target. The damage is equal to the number you roll on the Bardic Inspiration die or a D6 if a Master's Flourish. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Flourish +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Flourish +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Flourish Subclass/&CollegeOfAudacityDescription=Bards of the College of Swords entertain through daring feats of weapon prowess. They perform stunts such as sword swallowing, knife throwing and juggling, and mock combats. Though they use their weapons to entertain, they are also highly trained and skilled warriors in their own right. Subclass/&CollegeOfAudacityTitle=College of Swords +Feedback/&CollegeOfAudacityDefensiveWhirl={0} rolls a {2} die, adding {3} to AC. \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt index 40528d0228..1a76cccfbd 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt @@ -319,6 +319,7 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Desbloquea marcas de origen y tatuaj ModUi/&UnlockSkinColors=Desbloquear colores de piel ModUi/&Update=Actualizar ModUi/&UseAlternateSpellPointsSystem=Utilice las reglas oficiales de puntos de hechizo variantes +ModUi/&UseAlternateSpellPointsSystemHelp=[Tienes una reserva de puntos de hechizo que aumenta con el nivel del lanzador\nL01: 04 L02: 06 L03 : 14 L04: 17 L05: 27 L06: 32 L07: < color=blanco>38 L08: 44 L09: 57 L10: 64\nL11: 73 L12: 73 L13: 83 L14: 83 L15: 94 L16: 94 L17: 107 L18: 114 L19: 123 L20: 133\nEl costo de lanzar hechizos es SL1: 2 SL2: 3 SL3: 5 SL4: 6 SL5: 7 SL6: 9 SL7: 10 SL8: 11 SL9: 13\nLas funciones de recuperación de espacios de descanso breves no se activarán en este sistema ] ModUi/&UseElfFaceModelsOnTieflings=Utilice modelos de cara de Elfo en Teflings ModUi/&UseHeightOneCylinderEffect=Utilice un efecto de cilindro de altura 1 al lanzar Tentáculos negros, Enredar, Grasa [cuadrado] o Crecimiento máximo [ronda] ModUi/&UseMathFlankingRules=+ Utilice matemáticas precisas para determinar el flanqueo [puede tener un impacto en el rendimiento en máquinas lentas] diff --git a/SolastaUnfinishedBusiness/Translations/es/SubClasses/CollegeOfAudacity-es.txt b/SolastaUnfinishedBusiness/Translations/es/SubClasses/CollegeOfAudacity-es.txt index a0cd333fa9..86b635ea87 100644 --- a/SolastaUnfinishedBusiness/Translations/es/SubClasses/CollegeOfAudacity-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/SubClasses/CollegeOfAudacity-es.txt @@ -1,26 +1,27 @@ -Action/&AudaciousWhirlToggleDescription=Activar/desactivar Audacious Whirl -Action/&AudaciousWhirlToggleTitle=Giro audaz -Action/&MasterfulWhirlToggleDescription=Activar/desactivar Masterful Whirl -Action/&MasterfulWhirlToggleTitle=Giro magistral -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Gire hacia AC. -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Giro defensivo -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Siempre que realizas la acción de Ataque en tu turno, tu velocidad al caminar aumenta en 10 pies hasta el final del turno, y si un ataque con arma cuerpo a cuerpo que realizas como parte de esta acción golpea a una criatura, puedes gastar un uso de tu Bárdico. Inspiración para hacer que el arma cause daño adicional al objetivo al que golpeas. El daño es igual al número que tiras en el dado de Inspiración Bárdica. También eliges una maniobra concreta:\n• Remolino defensivo: añades la tirada de Inspiración bárdica a tu CA hasta el comienzo de tu siguiente turno.\n• Remolino cortante: Infliges daño adicional a todas las demás criaturas enemigas que se encuentren a 5 pies de ti.\n• Mobile Whirl: Obtienes los beneficios de desconectarte hasta el final de tu turno. -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Giro audaz +Action/&AudaciousWhirlToggleDescription=Activar/desactivar Blade Flourish +Action/&AudaciousWhirlToggleTitle=Florecimiento de la hoja +Action/&MasterfulWhirlToggleDescription=Activar/desactivar Master's Flourish +Action/&MasterfulWhirlToggleTitle=El florecimiento del maestro +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Rollo de florecimiento a AC. +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Florecimiento defensivo +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Siempre que realizas la acción de Ataque en tu turno, tu velocidad al caminar aumenta en 10 pies hasta el final del turno, y si un ataque con arma cuerpo a cuerpo que realizas como parte de esta acción golpea a una criatura, puedes gastar un uso de tu Bárdico. Inspiración para hacer que el arma cause daño adicional al objetivo al que golpeas. El daño es igual al número que tiras en el dado de Inspiración Bárdica. También eliges una maniobra concreta:\n• Florecimiento defensivo: añades la tirada de Inspiración bárdica a tu CA hasta el comienzo de tu siguiente turno.\n• Florecimiento cortante: Infliges daño adicional a todas las demás criaturas enemigas que se encuentren a 5 pies de ti.\n• Mobile Flourish: Obtienes los beneficios de desconectarte hasta el final de tu turno. +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Florecimiento de la hoja Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=Obtienes competencia con la armadura media y la cimitarra. También puedes usar tu arma como foco de lanzamiento de hechizos para tus hechizos de bardo. Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=Competencias adicionales -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Siempre que uses una opción de Audacious Whirl, puedes tirar un D6 y usarlo en lugar de gastar un dado de Bardic Inspiration. -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Giro magistral +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Siempre que uses una opción Blade Flourish, puedes tirar un D6 y usarlo en lugar de gastar un dado de Bardic Inspiration. +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=El florecimiento del maestro Feature/&FightingStyleChoiceCollegeOfAudacityDescription=Adoptas un estilo particular de lucha como especialidad. Elige entre Duelo o Lucha con dos armas. Feature/&FightingStyleChoiceCollegeOfAudacityTitle=Estilo de lucha -Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Puedes gastar un uso de tu Bardic Inspiration para hacer que el arma cause daño adicional al objetivo que golpeas. El daño es igual al número que tiras en el dado Bardic Inspiration o un D6 si es un Masterful Whirl. También sumas el número obtenido a tu CA hasta el comienzo de tu próximo turno. -Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Giro defensivo -Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Puedes gastar un uso de tu Bardic Inspiration para hacer que el arma cause daño adicional al objetivo que golpeas. El daño es igual al número que tiras en el dado Bardic Inspiration o un D6 si es un Masterful Whirl. Obtienes los beneficios de desconectarte hasta el final de tu turno. -Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Remolino móvil -Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Puedes gastar un uso de tu Inspiración Bárdica para hacer que el arma cause daño adicional al objetivo que golpeas y a todas las demás criaturas enemigas dentro de 5 pies de ti. El daño es igual al número que tiras en el dado Bardic Inspiration o un D6 si es un Masterful Whirl. -Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Remolino cortante -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} puede hacer que el arma cause daño adicional al objetivo. El daño es igual al número que tiras en el dado Bardic Inspiration o un D6 si es un Masterful Whirl. -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Giro -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Giro -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Giro +Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Puedes gastar un uso de tu Bardic Inspiration para hacer que el arma cause daño adicional al objetivo que golpeas. El daño es igual al número que tiras en el dado de Inspiración Bárdica o un D6 si es un Florecimiento del Maestro. También sumas el número obtenido a tu CA hasta el comienzo de tu próximo turno. +Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Florecimiento defensivo +Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Puedes gastar un uso de tu Bardic Inspiration para hacer que el arma cause daño adicional al objetivo que golpeas. El daño es igual al número que tiras en el dado de Inspiración Bárdica o un D6 si es un Florecimiento del Maestro. Obtienes los beneficios de desconectarte hasta el final de tu turno. +Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Florecimiento móvil +Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Puedes gastar un uso de tu Inspiración Bárdica para hacer que el arma cause daño adicional al objetivo que golpeas y a todas las demás criaturas enemigas dentro de 5 pies de ti. El daño es igual al número que tiras en el dado de Inspiración Bárdica o un D6 si es un Florecimiento del Maestro. +Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Florecimiento cortante +Feedback/&CollegeOfAudacityDefensiveWhirl={0} tira un {2} dado, sumando {3} a la CA. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} puede hacer que el arma cause daño adicional al objetivo. El daño es igual al número que tiras en el dado de Inspiración Bárdica o un D6 si es un Florecimiento del Maestro. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Florecer +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Florecer +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Florecer Subclass/&CollegeOfAudacityDescription=Los bardos del Colegio de Espadas entretienen a través de atrevidas hazañas de destreza con las armas. Realizan acrobacias como tragar espadas, lanzar cuchillos, hacer malabarismos y simulacros de combates. Aunque usan sus armas para entretener, también son guerreros altamente entrenados y hábiles por derecho propio. -Subclass/&CollegeOfAudacityTitle=Colegio de espadas +Subclass/&CollegeOfAudacityTitle=colegio de espadas diff --git a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt index 99ff454fec..4e69c50683 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt @@ -319,6 +319,7 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Débloquez les marques et tatouages ModUi/&UnlockSkinColors=Débloquez les couleurs de peau ModUi/&Update=Mise à jour ModUi/&UseAlternateSpellPointsSystem=Utiliser les règles officielles des variantes de points de sort +ModUi/&UseAlternateSpellPointsSystemHelp=[Vous disposez d'une réserve de points de sort qui augmente avec le niveau du lanceur de sorts\nL01 : 04 L02 : 06 L03 : 14 L04 : 17 L05 : 27 L06 : 32 L07 : < color=white>38 L08 : 44 L09 : 57 L10 : 64\nL11 : 73 L12 : 73 L13 : 83 L14 : 83 L15 : 94 L16 : 94 L17 : 107 L18 : 114 L19 : 123 L20 : 133\nLe coût pour lancer des sorts est SL1 : 2 SL2 : 3 SL3 : 5 SL4 : 6 SL5 : 7 SL6 : 9 SL7 : 10 SL8 : 11 SL9 : 13\nLes fonctionnalités de récupération des créneaux de repos courts ne seront pas déclenchées avec ce système ] ModUi/&UseElfFaceModelsOnTieflings=Utilisez des modèles de visage Elfe sur les Tieflings ModUi/&UseHeightOneCylinderEffect=Utilisez un effet de cylindre de hauteur 1 lors du lancement de Tentacules noires, enchevêtrement, graisse [carré] ou Pic de croissance [rond] ModUi/&UseMathFlankingRules=+ Utilisez des calculs précis pour déterminer le contournement [peut avoir un impact sur les performances sur les machines lentes] diff --git a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/CollegeOfAudacity-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/CollegeOfAudacity-fr.txt index b0c8c080d3..7850a4858d 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/CollegeOfAudacity-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/CollegeOfAudacity-fr.txt @@ -1,26 +1,27 @@ -Action/&AudaciousWhirlToggleDescription=Activer/désactiver Audacious Whirl -Action/&AudaciousWhirlToggleTitle=Tourbillon audacieux -Action/&MasterfulWhirlToggleDescription=Activer/désactiver Masterful Whirl -Action/&MasterfulWhirlToggleTitle=Tourbillon magistral -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Faites tourner le rouleau jusqu'à AC. -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Tourbillon défensif -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Chaque fois que vous effectuez l'action Attaque à votre tour, votre vitesse de marche augmente de 3 mètres jusqu'à la fin du tour, et si une attaque avec une arme de mêlée que vous effectuez dans le cadre de cette action touche une créature, vous pouvez dépenser une utilisation de votre arme bardique. Inspiration pour que l'arme inflige des dégâts supplémentaires à la cible que vous touchez. Les dégâts sont égaux au nombre obtenu sur le dé d'inspiration bardique. Vous choisissez également une manœuvre particulière :\n• Tourbillon défensif : vous ajoutez le jet de dé d'inspiration bardique à votre CA jusqu'au début de votre prochain tour.\n• Tourbillon tranchant. b> : vous infligez des dégâts supplémentaires à toutes les autres créatures ennemies à moins de 1,50 mètre de vous.\n• Tourbillon mobile : vous bénéficiez des avantages de désengagement jusqu'à la fin de votre tour. -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Tourbillon audacieux +Action/&AudaciousWhirlToggleDescription=Activer/désactiver Blade Flourish +Action/&AudaciousWhirlToggleTitle=Épanouissement de la lame +Action/&MasterfulWhirlToggleDescription=Activer/désactiver Master's Flourish +Action/&MasterfulWhirlToggleTitle=L'épanouissement du Maître +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=S'épanouir rouler jusqu'à AC. +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Épanouissement défensif +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Chaque fois que vous effectuez l'action Attaque à votre tour, votre vitesse de marche augmente de 3 mètres jusqu'à la fin du tour, et si une attaque avec une arme de mêlée que vous effectuez dans le cadre de cette action touche une créature, vous pouvez dépenser une utilisation de votre arme bardique. Inspiration pour que l'arme inflige des dégâts supplémentaires à la cible que vous touchez. Les dégâts sont égaux au nombre obtenu sur le dé d’inspiration bardique. Vous choisissez également une manœuvre particulière :\n• Épanouissement défensif : vous ajoutez le jet de dé d'inspiration bardique à votre CA jusqu'au début de votre prochain tour.\n• Épanouissement tranchant. b> : vous infligez des dégâts supplémentaires à toutes les autres créatures ennemies à moins de 1,50 pieds de vous.\n• Épanouissement mobile : vous bénéficiez des avantages du désengagement jusqu'à la fin de votre tour. +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Épanouissement de la lame Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=Vous gagnez en maîtrise avec l'armure moyenne et le cimeterre. Vous pouvez également utiliser votre arme comme foyer de lancement de sorts pour vos sorts de barde. Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=Compétences bonus -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Chaque fois que vous utilisez une option Audacious Whirl, vous pouvez lancer un D6 et l'utiliser au lieu de dépenser un dé d'inspiration bardique. -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Tourbillon magistral +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Chaque fois que vous utilisez une option Blade Flourish, vous pouvez lancer un D6 et l’utiliser au lieu de dépenser un dé d’inspiration bardique. +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=L'épanouissement du Maître Feature/&FightingStyleChoiceCollegeOfAudacityDescription=Vous adoptez un style de combat particulier comme spécialité. Choisissez soit le duel, soit le combat à deux armes. Feature/&FightingStyleChoiceCollegeOfAudacityTitle=Style de combat -Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Vous pouvez dépenser une utilisation de votre Inspiration bardique pour que l'arme inflige des dégâts supplémentaires à la cible que vous touchez. Les dégâts sont égaux au nombre obtenu sur le dé d'inspiration bardique ou à un D6 s'il s'agit d'un tourbillon magistral. Vous ajoutez également le nombre obtenu à votre CA jusqu'au début de votre prochain tour. -Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Tourbillon défensif -Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Vous pouvez dépenser une utilisation de votre Inspiration bardique pour que l'arme inflige des dégâts supplémentaires à la cible que vous touchez. Les dégâts sont égaux au nombre obtenu sur le dé d'inspiration bardique ou à un D6 s'il s'agit d'un tourbillon magistral. Vous bénéficiez des avantages du désengagement jusqu'à la fin de votre tour. -Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Tourbillon mobile -Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Vous pouvez dépenser une utilisation de votre Inspiration bardique pour que l'arme inflige des dégâts supplémentaires à la cible que vous touchez et à toutes les autres créatures ennemies à moins de 1,50 mètre de vous. Les dégâts sont égaux au nombre obtenu sur le dé d'inspiration bardique ou à un D6 s'il s'agit d'un tourbillon magistral. -Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Tourbillon tranchant -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} peut amener l'arme à infliger des dégâts supplémentaires à la cible. Les dégâts sont égaux au nombre obtenu sur le dé d'Inspiration bardique ou à un D6 s'il s'agit d'un Tourbillon magistral. -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Tourbillon -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Tourbillon -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Tourbillon -Subclass/&CollegeOfAudacityDescription=Les bardes du Collège des Épées divertissent grâce à des prouesses audacieuses en matière d'armes. Ils effectuent des cascades telles que avaler des épées, lancer des couteaux, jongler et simuler des combats. Bien qu'ils utilisent leurs armes pour se divertir, ils sont également des guerriers hautement qualifiés et compétents. +Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Vous pouvez dépenser une utilisation de votre Inspiration bardique pour que l'arme inflige des dégâts supplémentaires à la cible que vous touchez. Les dégâts sont égaux au nombre obtenu sur le dé d'inspiration bardique ou à un D6 en cas d'épanouissement du maître. Vous ajoutez également le nombre obtenu à votre CA jusqu'au début de votre prochain tour. +Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Épanouissement défensif +Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Vous pouvez dépenser une utilisation de votre Inspiration bardique pour que l'arme inflige des dégâts supplémentaires à la cible que vous touchez. Les dégâts sont égaux au nombre obtenu sur le dé d'inspiration bardique ou à un D6 en cas d'épanouissement du maître. Vous bénéficiez des avantages du désengagement jusqu'à la fin de votre tour. +Feature/&PowerCollegeOfAudacityMobileWhirlTitle=S'épanouir sur mobile +Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Vous pouvez dépenser une utilisation de votre Inspiration bardique pour que l'arme inflige des dégâts supplémentaires à la cible que vous touchez et à toutes les autres créatures ennemies à moins de 1,50 mètre de vous. Les dégâts sont égaux au nombre obtenu sur le dé d'inspiration bardique ou à un D6 en cas d'épanouissement du maître. +Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=S'épanouir +Feedback/&CollegeOfAudacityDefensiveWhirl={0} lance un dé {2}, ajoutant {3} à la CA. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} peut amener l'arme à infliger des dégâts supplémentaires à la cible. Les dégâts sont égaux au nombre obtenu sur le dé d'Inspiration bardique ou à un D6 en cas d'Épanouissement du Maître. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=fleurir +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=fleurir +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=fleurir +Subclass/&CollegeOfAudacityDescription=Les bardes du Collège des Épées divertissent grâce à des prouesses audacieuses en matière d'armes. Ils effectuent des cascades telles que avaler des épées, lancer des couteaux, jongler et simuler des combats. Bien qu’ils utilisent leurs armes pour se divertir, ils sont également des guerriers hautement qualifiés et compétents. Subclass/&CollegeOfAudacityTitle=Collège des Épées diff --git a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt index 3aaf67f85d..b25e405f8e 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt @@ -319,6 +319,7 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Sblocca i segni di origine e i tatua ModUi/&UnlockSkinColors=Sblocca i colori della pelle ModUi/&Update=Aggiorna ModUi/&UseAlternateSpellPointsSystem=Utilizza le regole ufficiali dei varianti punti incantesimo +ModUi/&UseAlternateSpellPointsSystemHelp=[Hai una riserva di punti incantesimo che aumenta con il livello dell'incantatore\nL01: 04 L02: 06 L03 : 14 L04: 17 L05: 27 L06: 32 L07: < color=white>38 L08: 44 L09: 57 L10: 64\nL11: 73 L12: 73 L13: 83 L14: 83 L15: 94 L16: 94 L17: 107 L18: 114 L19: 123 L20: 133\nIl costo per lanciare incantesimi è SL1: 2 SL2: 3 SL3: 5 SL4: 6 SL5: 7 SL6: 9 SL7: 10 SL8: 11 SL9: 13\nLe funzionalità di recupero degli slot di riposo brevi non verranno attivate con questo sistema ] ModUi/&UseElfFaceModelsOnTieflings=Usa i modelli del volto di Elfo su Tiefling ModUi/&UseHeightOneCylinderEffect=Usa un effetto del cilindro di altezza 1 quando lanci Tentacoli neri, Intralciare, Ungere [quadrato] o Picco di crescita [turno] ModUi/&UseMathFlankingRules=+ Utilizza calcoli precisi per determinare il fiancheggiamento [potrebbe avere un impatto sulle prestazioni sulle macchine lente] diff --git a/SolastaUnfinishedBusiness/Translations/it/SubClasses/CollegeOfAudacity-it.txt b/SolastaUnfinishedBusiness/Translations/it/SubClasses/CollegeOfAudacity-it.txt index 300733f613..d2c6499fc7 100644 --- a/SolastaUnfinishedBusiness/Translations/it/SubClasses/CollegeOfAudacity-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/SubClasses/CollegeOfAudacity-it.txt @@ -1,26 +1,27 @@ -Action/&AudaciousWhirlToggleDescription=Attiva/disattiva il Vortice Audace -Action/&AudaciousWhirlToggleTitle=Vortice audace -Action/&MasterfulWhirlToggleDescription=Attiva/disattiva il Vortice Magistrale -Action/&MasterfulWhirlToggleTitle=Vortice Magistrale -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Rotolamento vorticoso verso AC. -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Vortice difensivo -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Ogni volta che esegui l'azione Attacco nel tuo turno, la tua velocità di camminata aumenta di 3 metri fino alla fine del turno e se un attacco con arma da mischia effettuato come parte di questa azione colpisce una creatura, puoi spendere un uso della tua abilità Bardica. Ispirazione per far sì che l'arma infligga danni extra al bersaglio colpito. Il danno è pari al numero ottenuto con il dado di Ispirazione Bardica. Scegli anche una manovra particolare:\n• Vorticello difensivo: aggiungi il tiro di dado Ispirazione bardica alla tua AC fino all'inizio del tuo turno successivo.\n• Vortice tagliente b>: infliggi danni extra a tutte le altre creature nemiche entro 1,5 piedi da te.\n• Vortizio Mobile: ottieni i benefici del disimpegno fino alla fine del tuo turno. -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Vortice audace +Action/&AudaciousWhirlToggleDescription=Attiva/disattiva la fioritura delle lame +Action/&AudaciousWhirlToggleTitle=Lama fiorita +Action/&MasterfulWhirlToggleDescription=Attiva/disattiva la fioritura del maestro +Action/&MasterfulWhirlToggleTitle=La fioritura del maestro +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Tiro Fiorente su AC. +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Fioritura difensiva +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Ogni volta che esegui l'azione Attacco nel tuo turno, la tua velocità di camminata aumenta di 3 metri fino alla fine del turno e se un attacco con arma da mischia effettuato come parte di questa azione colpisce una creatura, puoi spendere un uso della tua abilità Bardica. Ispirazione per far sì che l'arma infligga danni extra al bersaglio colpito. Il danno è pari al numero ottenuto con il dado di Ispirazione Bardica. Scegli anche una manovra particolare:\n• Fioritura difensiva: aggiungi il tiro di dado Ispirazione bardica alla tua AC fino all'inizio del tuo turno successivo.\n• Fioritura tagliente b>: infliggi danni extra a tutte le altre creature nemiche entro 5 piedi da te.\n• Mobile Flourish: ottieni i benefici del disimpegno fino alla fine del tuo turno. +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Lama fiorita Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=Ottieni competenza con l'armatura media e la scimitarra. Puoi anche usare la tua arma come focus di incantamento per i tuoi incantesimi da bardo. Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=Competenze bonus -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Ogni volta che usi un'opzione Vortice Audace, puoi lanciare un D6 e usarla invece di spendere un dado di Ispirazione Bardica. -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Vortice Magistrale -Feature/&FightingStyleChoiceCollegeOfAudacityDescription=Adotti uno stile particolare di combattimento come tua specialità. Scegli tra Duello o Combattimento con due armi. +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Ogni volta che usi un'opzione Blade Flourish, puoi lanciare un D6 e usarlo invece di spendere un dado di Ispirazione Bardica. +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Il fiore del maestro +Feature/&FightingStyleChoiceCollegeOfAudacityDescription=Adotti uno stile particolare di combattimento come tua specialità. Scegli Duello o Combattimento con due armi. Feature/&FightingStyleChoiceCollegeOfAudacityTitle=Stile di combattimento -Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Puoi spendere un uso della tua Ispirazione Bardica per far sì che l'arma infligga danni extra al bersaglio che colpisci. Il danno è pari al numero che ottieni sul dado di Ispirazione Bardica o su un D6 se si tratta di un Vortice Magistrale. Aggiungi anche il numero lanciato alla tua AC fino all'inizio del tuo turno successivo. -Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Vortice difensivo -Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Puoi spendere un uso della tua Ispirazione Bardica per far sì che l'arma infligga danni extra al bersaglio che colpisci. Il danno è pari al numero che ottieni sul dado di Ispirazione Bardica o su un D6 se si tratta di un Vortice Magistrale. Ottieni i benefici del disimpegno fino alla fine del tuo turno. -Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Vortice mobile -Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Puoi spendere un uso della tua Ispirazione Bardica per far sì che l'arma infligga danni extra al bersaglio colpito e a tutte le altre creature nemiche entro 1,5 metri da te. Il danno è pari al numero che ottieni sul dado di Ispirazione Bardica o su un D6 se si tratta di un Vortice Magistrale. -Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Vortice Tagliente -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} può far sì che l'arma infligga danni extra al bersaglio. Il danno è pari al numero che ottieni sul dado di Ispirazione Bardica o su un D6 se si tratta di un Vortice Magistrale. -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Vortice -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Vortice -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Vortice +Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Puoi spendere un uso della tua Ispirazione Bardica per far sì che l'arma infligga danni extra al bersaglio che colpisci. Il danno è pari al numero che ottieni con il dado di Ispirazione Bardica o con un D6 se il Maestro prospera. Aggiungi anche il numero lanciato alla tua AC fino all'inizio del tuo turno successivo. +Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Fioritura difensiva +Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Puoi spendere un uso della tua Ispirazione Bardica per far sì che l'arma infligga danni extra al bersaglio che colpisci. Il danno è pari al numero che tiri sul dado Ispirazione Bardica o un D6 se si tratta di Flourish di un Maestro. Ottieni i benefici del disimpegno fino alla fine del tuo turno. +Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Fiorire mobile +Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Puoi spendere un uso della tua Ispirazione Bardica per far sì che l'arma infligga danni extra al bersaglio colpito e a tutte le altre creature nemiche entro 1,5 metri da te. Il danno è pari al numero che ottieni con il dado di Ispirazione Bardica o con un D6 se il Maestro prospera. +Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Fioritura tagliente +Feedback/&CollegeOfAudacityDefensiveWhirl={0} lancia un dado {2}, aggiungendo {3} all'AC. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} può far sì che l'arma infligga danni extra al bersaglio. Il danno è pari al numero che ottieni con il dado di Ispirazione Bardica o con un D6 se il Maestro prospera. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Fiorire +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Fiorire +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Fiorire Subclass/&CollegeOfAudacityDescription=I bardi del Collegio delle Spade intrattengono con audaci imprese di abilità con le armi. Eseguono acrobazie come ingoiare la spada, lanciare coltelli, fare giocoleria e simulare combattimenti. Sebbene usino le loro armi per intrattenere, sono anche guerrieri altamente addestrati e abili. Subclass/&CollegeOfAudacityTitle=Collegio delle Spade diff --git a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt index 3d776d26d9..1afa7b57b8 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt @@ -319,6 +319,7 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=すべてのキャラクターの更新 ModUi/&UseAlternateSpellPointsSystem=公式のバリアントスペルポイントルールを使用する +ModUi/&UseAlternateSpellPointsSystemHelp=[呪文ポイントのプールがあり、術者レベルに応じて増加します\nL01: 04 L02: 06 L03: 14 L04: 17 L05: 27 L06: 32 L07: 38 L08: 44 L09: 57 L10: 64\nL11: 73 L12: 73 L13: 83 L14: 83 L15: 94 L16: 94 L17: 107 L18: 114 L19: 123 L20: 133\n呪文を唱えるためのコストは SL1: 2 SL2: 3 SL3: 5 SL4: 6 SL5: 7 SL6: 9 SL7: 10 SL8: 11 SL9: 13\nこのシステムでは、短い休憩スロットの回復機能はトリガーされません] ModUi/&UseElfFaceModelsOnTieflings=ティーフリングでエルフの顔モデルを使用する ModUi/&UseHeightOneCylinderEffect=黒い触手、絡まり、グリース [square] または スパイク成長 [ラウンド] ModUi/&UseMathFlankingRules=+ 正確な計算を使用して側面攻撃を決定します[遅いマシンではパフォーマンスに影響を与える可能性があります] diff --git a/SolastaUnfinishedBusiness/Translations/ja/SubClasses/CollegeOfAudacity-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/SubClasses/CollegeOfAudacity-ja.txt index ba0e43c383..a445647efd 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/SubClasses/CollegeOfAudacity-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/SubClasses/CollegeOfAudacity-ja.txt @@ -1,26 +1,27 @@ -Action/&AudaciousWhirlToggleDescription=Audacious Whirlの有効化/無効化 -Action/&AudaciousWhirlToggleTitle=大胆な渦巻き -Action/&MasterfulWhirlToggleDescription=マスターフルワールの有効化/無効化 -Action/&MasterfulWhirlToggleTitle=マスターフルワール -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=ACにワールロールします。 -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=ディフェンス・ワール -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=自分のターンで攻撃アクションを実行するたびに、ターンの終わりまで歩行速度が 10 フィート増加します。このアクションの一部として行う近接武器攻撃がクリーチャーに命中した場合、バルディックの使用量を 1 回消費できます。武器が命中したターゲットに追加のダメージを与えるインスピレーション。ダメージは、バーディック インスピレーション ダイスでロールした数字に等しくなります。また、特定の操作も選択します。\n• 防御旋回: 次のターンの開始時まで、バーディックのインスピレーションのダイスロールを AC に追加します。\n• 斬撃旋回 b>: あなたはあなたの 5 フィート以内にいる他のすべての敵クリーチャーに追加のダメージを与えます。\n• モバイル ワール: あなたはターン終了時まで離脱の恩恵を受けます。 -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=大胆な渦巻き -Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=中装甲とシミターの熟練度が上がります。吟遊詩人の呪文の呪文詠唱の焦点として武器を使用することもできます。 +Action/&AudaciousWhirlToggleDescription=ブレード・フローリッシュを有効化/無効化 +Action/&AudaciousWhirlToggleTitle=ブレード・フラリッシュ +Action/&MasterfulWhirlToggleDescription=マスターの華麗さを有効化/無効化 +Action/&MasterfulWhirlToggleTitle=マスターの華麗 +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=AC にフローリッシュロールします。 +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=防御の華麗さ +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=自分のターンに攻撃アクションを行うたびに、そのターンの終了時まで歩行速度が 10 フィート増加し、このアクションの一環として行う近接武器攻撃がクリーチャーに命中した場合、バード インスピレーションの使用回数を 1 回消費して、その武器が命中したターゲットに追加のダメージを与えるようにすることができます。ダメージはバード インスピレーション ダイスの出目と同じです。また、特定の戦技を選択します:\n• 防御的華麗: 次のターンの開始時まで、バード インスピレーション ダイスの出目を AC に追加します。\n• 斬撃的華麗: 5 フィート以内にいる他のすべての敵クリーチャーに追加のダメージを与えます。\n• 機動的華麗: ターンの終了時まで、離脱の利益を得ます。 +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=ブレード・フラリッシュ +Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=中装鎧とシミターの熟練度を獲得します。また、武器をバード呪文の呪文発動の焦点として使用することもできます。 Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=ボーナス熟練度 -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Audacious Whirl オプションを使用するときはいつでも、Bardic Inspire ダイスを消費する代わりに D6 をロールして使用できます。 -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=マスターフルワール -Feature/&FightingStyleChoiceCollegeOfAudacityDescription=あなたは自分の専門として特定の戦闘スタイルを採用しています。決闘か二刀流のどちらかを選択してください。 +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Blade Flourish オプションを使用するときはいつでも、D6 をロールして、Bardic Inspiration ダイスを消費する代わりに使用することができます。 +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=マスターの華麗 +Feature/&FightingStyleChoiceCollegeOfAudacityDescription=特定の戦闘スタイルを専門とします。決闘または二刀流戦闘のいずれかを選択します。 Feature/&FightingStyleChoiceCollegeOfAudacityTitle=戦闘スタイル -Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Bardic Inspire を 1 回使用すると、武器が命中したターゲットに追加のダメージを与えることができます。ダメージは、あなたがバーディック インスピレーション ダイスでロールした数字、またはマスターフル ワールの場合は D6 に等しくなります。また、次のターンの開始まで、出た数字を AC に追加します。 -Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=ディフェンス・ワール -Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Bardic Inspire を 1 回使用すると、武器が命中したターゲットに追加のダメージを与えることができます。ダメージは、あなたがバーディック インスピレーション ダイスでロールした数字、またはマスターフル ワールの場合は D6 に等しくなります。あなたはターン終了時まで離脱の恩恵を受けます。 -Feature/&PowerCollegeOfAudacityMobileWhirlTitle=モバイルワール -Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=バーディック インスピレーションを 1 回使用すると、武器が命中したターゲットと、5 フィート以内の他のすべての敵クリーチャーに追加のダメージを与えることができます。ダメージは、あなたがバーディック インスピレーション ダイスでロールした数字、またはマスターフル ワールの場合は D6 に等しくなります。 -Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=斬撃の渦 -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} を使用すると、武器がターゲットに追加のダメージを与える可能性があります。ダメージは、Bardic Inspire ダイスでロールした数字、または Masterful Whirl の場合は D6 に等しい。 -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=渦巻き -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=渦巻き -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=渦巻き -Subclass/&CollegeOfAudacityDescription=剣の大学の吟遊詩人は、武器の腕前の大胆な妙技で楽しませます。彼らは、剣を飲み込む、ナイフを投げたりジャグリングしたり、模擬戦闘などのスタントを実行します。彼らは娯楽のために武器を使いますが、それ自体が高度に訓練され熟練した戦士でもあります。 -Subclass/&CollegeOfAudacityTitle=剣術大学 +Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=バード インスピレーションを 1 回消費することで、攻撃したターゲットに武器が追加ダメージを与えるようになります。ダメージはバード インスピレーション ダイスで振った数、またはマスターズ フラリッシュの場合は D6 に等しくなります。また、次のターンの開始時まで、振った数を AC に追加します。 +Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=防御の華麗さ +Feature/&PowerCollegeOfAudacityMobileWhirlDescription=バード インスピレーションを 1 回消費すると、攻撃したターゲットに武器が追加ダメージを与えるようになります。ダメージはバード インスピレーション ダイスで振った数、またはマスターズ フラリッシュの場合は D6 に等しくなります。ターン終了時まで、離脱の恩恵を受けます。 +Feature/&PowerCollegeOfAudacityMobileWhirlTitle=モバイル フローリッシュ +Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=バード インスピレーションを 1 回使用することで、武器が攻撃したターゲットと、5 フィート以内の他のすべての敵クリーチャーに追加のダメージを与えるようにすることができます。ダメージは、バード インスピレーション ダイスで振った数、またはマスターズ フラリッシュの場合は D6 に等しくなります。 +Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=斬撃の華麗 +Feedback/&CollegeOfAudacityDefensiveWhirl={0}は{2}個のサイコロを振り、ACに{3}を加えます。 +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} は、武器がターゲットに追加のダメージを与える原因になります。ダメージは、バード インスピレーション ダイスで振った数、またはマスターズ フラリッシュの場合は D6 に等しくなります。 +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=繁栄する +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=繁栄する +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=繁栄する +Subclass/&CollegeOfAudacityDescription=剣の大学の吟遊詩人は、大胆な武器の技で観客を楽しませます。剣を飲み込む、ナイフを投げる、ジャグリングする、模擬戦闘などのスタントを披露します。武器を使って観客を楽しませますが、吟遊詩人自身も高度な訓練を受けた熟練の戦士です。 +Subclass/&CollegeOfAudacityTitle=剣の大学 diff --git a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt index 7036cee3c2..ec6d0088a8 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt @@ -319,6 +319,7 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=모든 캐릭터의 ModUi/&UnlockSkinColors=피부색 잠금 해제 ModUi/&Update=업데이트 ModUi/&UseAlternateSpellPointsSystem=공식 변형 주문 포인트 규칙을 사용하세요. +ModUi/&UseAlternateSpellPointsSystemHelp=[시전자 레벨에 따라 증가하는 주문 포인트 풀이 있습니다.\nL01: 04 L02: 06 L03 : 14 L04: 17 L05: 27 L06: 32 L07: < color=white>38 L08: 44 L09: 57 L10: 64\nL11: 73 L12: 73 L13: 83 L14: 83 L15: 94 L16: 94 L17: 107 L18: 114 L19: 123 L20: 133\n주문 시전 비용은 SL1: 2 SL2: 3 SL3: 5 SL4: 6 SL5: 7 SL6: 9 SL7: 10 SL8: 11 SL9: 13\n이 시스템에서는 짧은 휴식 슬롯 복구 기능이 실행되지 않습니다. ] ModUi/&UseElfFaceModelsOnTieflings=티플링에서 엘프 얼굴 모델을 사용하세요. ModUi/&UseHeightOneCylinderEffect=Black Tentacles, Entangle, Grease [square] 또는 를 시전할 때 높이 1 원통 효과를 사용하세요. 급상승 [round] ModUi/&UseMathFlankingRules=+ 정확한 수학을 사용하여 측면 공격 결정 [느린 시스템에서는 성능에 영향을 미칠 수 있음] diff --git a/SolastaUnfinishedBusiness/Translations/ko/SubClasses/CollegeOfAudacity-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/SubClasses/CollegeOfAudacity-ko.txt index 27b67c7b85..b751b62542 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/SubClasses/CollegeOfAudacity-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/SubClasses/CollegeOfAudacity-ko.txt @@ -1,26 +1,27 @@ -Action/&AudaciousWhirlToggleDescription=대담한 소용돌이 활성화/비활성화 -Action/&AudaciousWhirlToggleTitle=대담한 소용돌이 -Action/&MasterfulWhirlToggleDescription=Masterful Whirl 활성화/비활성화 -Action/&MasterfulWhirlToggleTitle=뛰어난 소용돌이 -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=AC로 소용돌이 굴립니다. -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=방어 소용돌이 -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=당신의 턴에 공격 행동을 취할 때마다, 당신의 걷는 속도는 턴이 끝날 때까지 10피트 증가하며, 이 행동의 일부로 하는 근접 무기 공격이 생물에 명중하면 Bardic을 한 번 사용할 수 있습니다. 무기가 명중한 대상에 추가 피해를 주도록 영감을 줍니다. 피해는 Bardic Inspiration 주사위에 굴린 숫자와 같습니다. 다음과 같은 특정 동작도 선택합니다.\n• 방어 소용돌이: 다음 턴이 시작될 때까지 AC에 음유시인 영감 주사위 굴림을 추가합니다.\n• 베기 소용돌이 b>: 당신은 당신으로부터 5피트 내의 다른 모든 적 생물에게 추가 피해를 줍니다.\n• 이동 소용돌이: 당신은 턴이 끝날 때까지 교전 해제 혜택을 얻습니다. -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=대담한 소용돌이 +Action/&AudaciousWhirlToggleDescription=블레이드 플러리시 활성화/비활성화 +Action/&AudaciousWhirlToggleTitle=블레이드 플로리쉬 +Action/&MasterfulWhirlToggleDescription=마스터의 번영 활성화/비활성화 +Action/&MasterfulWhirlToggleTitle=마스터의 번영 +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=AC로 플로리쉬 롤을 합니다. +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=방어적인 번영 +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=당신의 턴에 공격 행동을 취할 때마다, 당신의 걷는 속도는 턴이 끝날 때까지 10피트 증가하며, 이 행동의 일부로 하는 근접 무기 공격이 생물에 명중하면 Bardic을 한 번 사용할 수 있습니다. 무기가 명중한 대상에게 추가 피해를 주도록 영감을 줍니다. 피해는 Bardic Inspiration 주사위에 굴린 숫자와 같습니다. 다음과 같은 특정 동작도 선택합니다.\n• 방어적 번영: 다음 턴이 시작될 때까지 AC에 음유시인 영감 주사위 굴림을 추가합니다.\n• 번영 베기 b>: 당신은 당신으로부터 5피트 내의 다른 모든 적 생물에게 추가 피해를 줍니다.\n• 이동 번영: 당신은 턴이 끝날 때까지 교전 해제 혜택을 얻습니다. +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=블레이드 플로리쉬 Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=당신은 중간 갑옷과 시미터에 능숙해집니다. 무기를 음유시인 주문의 주문 시전 초점으로 사용할 수도 있습니다. Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=보너스 숙련도 -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Audacious Whirl 옵션을 사용할 때마다 Bardic Inspiration 주사위를 소비하는 대신 D6을 굴려서 사용할 수 있습니다. -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=뛰어난 소용돌이 +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Blade Flourish 옵션을 사용할 때마다 Bardic Inspiration 주사위를 소비하는 대신 D6을 굴려서 사용할 수 있습니다. +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=마스터의 번영 Feature/&FightingStyleChoiceCollegeOfAudacityDescription=당신은 당신의 전문 분야로 특정 전투 스타일을 채택합니다. 결투나 투웨폰 파이팅 중 하나를 선택하세요. Feature/&FightingStyleChoiceCollegeOfAudacityTitle=격투 스타일 -Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Bardic Inspiration을 한 번 사용하여 무기가 공격한 대상에게 추가 피해를 주도록 할 수 있습니다. 피해는 Bardic Inspiration 주사위에 굴린 숫자와 동일하며 Masterful Whirl의 경우 D6입니다. 또한 다음 턴이 시작될 때까지 AC에 굴린 숫자를 추가합니다. -Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=방어 소용돌이 -Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Bardic Inspiration을 한 번 사용하여 무기가 공격한 대상에게 추가 피해를 주도록 할 수 있습니다. 피해는 Bardic Inspiration 주사위에 굴린 숫자와 동일하며 Masterful Whirl의 경우 D6입니다. 당신은 당신의 턴이 끝날 때까지 교전 해제의 이점을 얻습니다. -Feature/&PowerCollegeOfAudacityMobileWhirlTitle=모바일 소용돌이 -Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=당신은 Bardic Inspiration을 한 번 사용하여 무기가 당신이 명중한 목표와 5피트 내의 다른 모든 적 생물에게 추가 피해를 주도록 할 수 있습니다. 피해는 Bardic Inspiration 주사위에 굴린 숫자와 동일하며 Masterful Whirl의 경우 D6입니다. -Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=칼날의 소용돌이 -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0}은 무기가 대상에게 추가 피해를 입히게 할 수 있습니다. 피해는 Bardic Inspiration 주사위에서 굴린 숫자와 동일하며 Masterful Whirl인 경우 D6입니다. -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=회전 -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=회전 -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=회전 +Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=당신은 당신의 바드 영감의 한 번 사용을 소비하여 무기가 당신이 맞힌 대상에게 추가 피해를 입히게 할 수 있습니다. 피해는 당신이 바드 영감 주사위에서 굴린 숫자 또는 마스터의 번영이라면 D6과 같습니다. 당신은 또한 당신의 다음 턴이 시작될 때까지 굴린 숫자를 당신의 AC에 더합니다. +Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=방어적인 번영 +Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Bardic Inspiration을 한 번 사용하여 무기가 명중한 대상에게 추가 피해를 주도록 할 수 있습니다. 피해는 Bardic Inspiration 주사위에 굴린 숫자와 동일하며 Master's Flourish의 경우 D6입니다. 당신은 당신의 턴이 끝날 때까지 교전 해제의 이점을 얻습니다. +Feature/&PowerCollegeOfAudacityMobileWhirlTitle=모바일 번영 +Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=당신은 Bardic Inspiration을 한 번 사용하여 무기가 당신이 명중한 목표와 당신으로부터 5피트 내의 다른 모든 적 생물에게 추가 피해를 주도록 할 수 있습니다. 피해는 Bardic Inspiration 주사위에 굴린 숫자와 동일하며 Master's Flourish의 경우 D6입니다. +Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=슬래싱 번창 +Feedback/&CollegeOfAudacityDefensiveWhirl={0}는 {2} 주사위를 굴려 AC에 {3}을 추가합니다. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0}은 무기가 대상에게 추가 피해를 입히게 할 수 있습니다. 피해는 Bardic Inspiration 주사위에서 굴린 숫자와 같거나 Master's Flourish인 경우 D6과 같습니다. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=융성 +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=융성 +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=융성 Subclass/&CollegeOfAudacityDescription=검 대학의 음유시인들은 대담한 무기 실력으로 즐거움을 선사합니다. 그들은 칼 삼키기, 칼 던지기, 저글링, 모의 전투 등의 묘기를 선보입니다. 그들은 재미를 위해 무기를 사용하지만 그 자체로도 고도로 훈련되고 숙련된 전사입니다. Subclass/&CollegeOfAudacityTitle=검 대학 diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt index a37948d5a2..e3c3d3542b 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt @@ -319,6 +319,7 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Desbloqueie marcas de origem e tatua ModUi/&UnlockSkinColors=Desbloquear cores de pele ModUi/&Update=Atualização ModUi/&UseAlternateSpellPointsSystem=Use regras oficiais de pontos de feitiço variantes +ModUi/&UseAlternateSpellPointsSystemHelp=[Você tem um conjunto de pontos de feitiço que aumenta com o nível de conjurador\nL01: 04 L02: 06 L03 : 14 L04: 17 L05: 27 L06: 32 L07: < color=branco>38 L08: 44 L09: 57 L10: 64\nL11: 73 L12: 73 L13: 83 L14: 83 L15: 94 L16: 94 L17: 107 L18: 114 L19: 123 L20: 133\nO custo para lançar feitiços é SL1: 2 SL2: 3 SL3: 5 SL4: 6 SL5: 7 SL6: 9 SL7: 10 SL8: 11 SL9: 13\nOs recursos de recuperação de intervalos de descanso curtos não serão acionados neste sistema ] ModUi/&UseElfFaceModelsOnTieflings=Use modelos de rosto de Elfo em Tieflings ModUi/&UseHeightOneCylinderEffect=Use um efeito de cilindro de altura 1 ao lançar Black Tentacles, Entangle, Grease [square] ou Pico de crescimento [rodada] ModUi/&UseMathFlankingRules=+ Use matemática precisa para determinar o flanqueamento [pode ter um impacto no desempenho em máquinas lentas] diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/CollegeOfAudacity-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/CollegeOfAudacity-pt-BR.txt index 7f332d1a78..7085ca7bc2 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/CollegeOfAudacity-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/CollegeOfAudacity-pt-BR.txt @@ -1,26 +1,27 @@ -Action/&AudaciousWhirlToggleDescription=Ativar/desativar Audacious Whirl -Action/&AudaciousWhirlToggleTitle=Redemoinho Audacioso -Action/&MasterfulWhirlToggleDescription=Ativar/desativar Masterful Whirl -Action/&MasterfulWhirlToggleTitle=Giro magistral -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Gire o rolo para AC. -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Redemoinho Defensivo -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Sempre que você realiza a ação de Ataque em seu turno, sua velocidade de caminhada aumenta em 3 metros até o final do turno, e se um ataque com arma corpo a corpo que você fizer como parte desta ação atingir uma criatura, você pode gastar um uso de seu Bardo. Inspiração para fazer com que a arma cause dano extra ao alvo atingido. O dano é igual ao número obtido no dado de Inspiração de Bardo. Você também escolhe uma manobra específica:\n• Giro Defensivo: você adiciona o teste de Inspiração de Bardo à sua CA até o início do seu próximo turno.\n• Giro Cortante: Você causa o dano extra a todas as outras criaturas inimigas a até 1,5 metro de você.\n• Giro Móvel: Você ganha benefícios de desengajamento até o final do seu turno. -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Redemoinho Audacioso +Action/&AudaciousWhirlToggleDescription=Ativar/desativar Blade Flourish +Action/&AudaciousWhirlToggleTitle=Florescer Lâmina +Action/&MasterfulWhirlToggleDescription=Ativar/desativar o Master's Flourish +Action/&MasterfulWhirlToggleTitle=Florescimento do Mestre +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Role o florescimento para AC. +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Florescimento Defensivo +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Sempre que você realiza a ação de Ataque em seu turno, sua velocidade de caminhada aumenta em 3 metros até o final do turno, e se um ataque com arma corpo a corpo que você fizer como parte desta ação atingir uma criatura, você pode gastar um uso de seu Bardo. Inspiração para fazer com que a arma cause dano extra ao alvo atingido. O dano é igual ao número obtido no dado de Inspiração de Bardo. Você também escolhe uma manobra específica:\n• Florescimento Defensivo: você adiciona o teste de Inspiração de Bardo à sua CA até o início do seu próximo turno.\n• Florescimento Cortante: Você causa o dano extra a todas as outras criaturas inimigas a até 1,5 metro de você.\n• Florescimento Móvel: Você ganha benefícios de desengajamento até o final do seu turno. +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Florescer Lâmina Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=Você ganha proficiência com armadura média e cimitarra. Você também pode usar sua arma como foco de lançamento de magias de bardo. Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=Proficiências Bônus -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Sempre que você usar uma opção Audacious Whirl, você pode rolar um D6 e usá-lo em vez de gastar um dado de Inspiração de Bardo. -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Giro magistral +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Sempre que você usar uma opção de Florescimento da Lâmina, você pode rolar um D6 e usá-la em vez de gastar um dado de Inspiração Bárdica. +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Florescimento do Mestre Feature/&FightingStyleChoiceCollegeOfAudacityDescription=Você adota um estilo particular de luta como sua especialidade. Escolha Duelo ou Luta com Duas Armas. Feature/&FightingStyleChoiceCollegeOfAudacityTitle=Estilo de luta -Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Você pode gastar um uso de sua Inspiração de Bardo para fazer com que a arma cause dano extra ao alvo atingido. O dano é igual ao número obtido no dado de Inspiração de Bardo ou a D6 se for um Redemoinho Magistral. Você também adiciona o número obtido à sua CA até o início do seu próximo turno. -Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Redemoinho Defensivo -Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Você pode gastar um uso de sua Inspiração de Bardo para fazer com que a arma cause dano extra ao alvo atingido. O dano é igual ao número obtido no dado de Inspiração de Bardo ou a D6 se for um Redemoinho Magistral. Você ganha benefícios de desengajamento até o final do seu turno. -Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Redemoinho móvel -Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Você pode gastar um uso de sua Inspiração de Bardo para fazer com que a arma cause dano extra ao alvo atingido e a todas as outras criaturas inimigas a até 1,5 metro de você. O dano é igual ao número obtido no dado de Inspiração de Bardo ou a D6 se for um Redemoinho Magistral. -Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Redemoinho Cortante -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} pode fazer com que a arma cause dano extra ao alvo. O dano é igual ao número obtido no dado de Inspiração de Bardo ou D6 se for um Redemoinho Magistral. -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Girar -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Girar -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Girar -Subclass/&CollegeOfAudacityDescription=Os bardos do Colégio das Espadas divertem-se com feitos ousados de habilidade com armas. Eles realizam acrobacias como engolir espadas, arremessar facas e fazer malabarismos e simular combates. Embora usem suas armas para entreter, eles também são guerreiros altamente treinados e habilidosos. +Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Você pode gastar um uso de sua Inspiração de Bardo para fazer com que a arma cause dano extra ao alvo atingido. O dano é igual ao número obtido no dado de Inspiração de Bardo ou a D6 se for um Florescer do Mestre. Você também adiciona o número obtido à sua CA até o início do seu próximo turno. +Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Florescimento Defensivo +Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Você pode gastar um uso de sua Inspiração de Bardo para fazer com que a arma cause dano extra ao alvo atingido. O dano é igual ao número obtido no dado de Inspiração de Bardo ou a D6 se for um Florescer do Mestre. Você ganha benefícios de desengajamento até o final do seu turno. +Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Florescimento móvel +Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Você pode gastar um uso de sua Inspiração de Bardo para fazer com que a arma cause dano extra ao alvo atingido e a todas as outras criaturas inimigas a até 1,5 metro de você. O dano é igual ao número obtido no dado de Inspiração de Bardo ou a D6 se for um Florescer do Mestre. +Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Cortando o florescimento +Feedback/&CollegeOfAudacityDefensiveWhirl={0} lança um dado {2}, adicionando {3} à CA. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} pode fazer com que a arma cause dano extra ao alvo. O dano é igual ao número obtido no dado de Inspiração de Bardo ou um D6 se for um Florescer do Mestre. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Florescer +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Florescer +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Florescer +Subclass/&CollegeOfAudacityDescription=Os bardos do Colégio das Espadas divertem-se com feitos ousados ​​de habilidade com armas. Eles realizam acrobacias como engolir espadas, arremessar facas e fazer malabarismos e simular combates. Embora usem suas armas para entreter, eles também são guerreiros altamente treinados e habilidosos. Subclass/&CollegeOfAudacityTitle=Colégio de Espadas diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index fe73003d63..acb83f4a09 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -319,6 +319,7 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=Разблокировать род ModUi/&UnlockSkinColors=Разблокировать цвета кожи ModUi/&Update=Обновить ModUi/&UseAlternateSpellPointsSystem=Используйте официальные правила вариантных очков заклинаний. +ModUi/&UseAlternateSpellPointsSystemHelp=[У вас есть запас очков заклинаний, который увеличивается с уровнем заклинателя.\nL01: 04 L02: 06 L03 : 14 L04: 17 L05: 27 L06: 32 L07: < color=white>38 L08: 44 L09: 57 L10: 64\nL11: 73 L12: 73 L13: 83 L14: 83 L15: 94 L16: 94 L17: 107 L18: 114 L19: 123 L20: 133\nСтоимость произнесения заклинаний составляет SL1: 2 SL2: 3 SL3: 5 SL4: 6 SL5: 7 SL6: 9 SL7: 10 SL8: 11 SL9: 13\nФункции восстановления слотов для короткого отдыха не будут активироваться в этой системе ] ModUi/&UseElfFaceModelsOnTieflings=Использовать Эльфийские лица на Тифлингах ModUi/&UseHeightOneCylinderEffect=Ограничить высоту эффекта одним уровнем при накладывании Чёрных щупалец, Опутывания, Смазки [квадрат] или Шипов [круг] ModUi/&UseMathFlankingRules=+ Использовать точную математику для определения окружения [может повлиять на производительность на медленных компьютерах] diff --git a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/CollegeOfAudacity-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/CollegeOfAudacity-ru.txt index f578ca4e7c..a04a769c12 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/CollegeOfAudacity-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/CollegeOfAudacity-ru.txt @@ -18,6 +18,7 @@ Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Вы можете потр Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Подвижный вихрь Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Вы можете потратить одну кость своего Бардовского вдохновения, чтобы заставить оружие нанести дополнительный урон цели, по которой вы попали, и всем другим враждебным существам в радиусе 5 футов от вас. Урон равен числу, выпавшему на кости Бардовского вдохновения, или d6, если вы владеете Искусным вихрем. Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Рубящий вихрь +Feedback/&CollegeOfAudacityDefensiveWhirl={0} бросает кубик {2}, добавляя {3} к AC. Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} может заставить оружие нанести дополнительный урон цели. Урон равен числу, выпавшему на кости Бардовского вдохновения, или d6, если это Искусный вихрь. Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Вихрь Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Вихрь diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt index 19c88081b1..e3f57cd3bc 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt @@ -319,6 +319,7 @@ ModUi/&UnlockMarkAndTattoosForAllCharacters=解锁所有角色的 ModUi/&UnlockSkinColors=解锁肤色 ModUi/&Update=更新 ModUi/&UseAlternateSpellPointsSystem=使用官方变体法术点规则 +ModUi/&UseAlternateSpellPointsSystemHelp=[你拥有随着施法者等级提升而增加的法术点数池\nL01:04 L02:06 L03:14 L04:17 L05:27 L06:32 L07:38 L08:44 L09:57 L10:64\nL11:73 L12:73 L13:83 L14:83 L15:94 L16:94 L17:107 L18:114 L19:123 L20:133\n施放法术的费用为 SL1:2 SL2:3 SL3:5 SL4:6 SL5:7 SL6:9 SL7:10 SL8:11 SL9:13\n在此系统下不会触发短暂休息槽恢复功能] ModUi/&UseElfFaceModelsOnTieflings=在提夫林上使用精灵的面部模型 ModUi/&UseHeightOneCylinderEffect=施放黑色触手、纠缠、油腻[方形]荆棘丛生[圆形]时使用高度为1的立体效果 ModUi/&UseMathFlankingRules=+ 使用精确的数学来确定侧翼 [可能会对慢速机器产生性能影响] diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/CollegeOfAudacity-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/CollegeOfAudacity-zh-CN.txt index 0881b4edc7..82fd7cc1a4 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/CollegeOfAudacity-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/CollegeOfAudacity-zh-CN.txt @@ -1,26 +1,27 @@ -Action/&AudaciousWhirlToggleDescription=激活/停用剑舞旋舞 -Action/&AudaciousWhirlToggleTitle=剑舞旋舞 -Action/&MasterfulWhirlToggleDescription=激活/停用旋舞大师 -Action/&MasterfulWhirlToggleTitle=旋舞大师 -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=旋舞骰值添加到护甲等级。 -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=守御旋舞 -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=每当你在回合中采取攻击动作时,你的步行速度都会增加 10 尺,直到回合结束,如果你在此动作中进行的武器攻击击中了生物,你可以花费一次诗人激励。伤害等于你在诗人激励骰上掷出的数值。你还可以选择特定的策略:\n• 守御旋舞:你可以将诗人激励骰子添加到你的 AC 中,直到下一回合开始。\n• 乱击旋舞:你对你周围 5 尺内的所有其他敌方生物造成额外伤害。\n• 推击旋舞:你获得撤离的好处,直到你的回合结束。 -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=剑舞旋舞 -Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=你获得中甲和弯刀熟练项。你还可以使用武器作为吟游诗人法术的法器。 -Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=附赠熟练项 -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=每当你使用“剑舞旋舞”能力时,你都可以掷出 D6 并使用它,而不是花费诗人激励骰。 -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=旋舞大师 -Feature/&FightingStyleChoiceCollegeOfAudacityDescription=你采用一种特定的战斗风格作为你的专精。选择对决或双武器战斗。 -Feature/&FightingStyleChoiceCollegeOfAudacityTitle=战斗风格 -Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=你可以花费一次诗人激励,使武器对你击中的目标造成额外伤害。伤害等于你在诗人激励骰或 D6(如果是旋舞大师)上掷出的数字。你还可以将掷出的数字添加到你的防御等级(AC)中,直到下一回合开始。 -Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=守御旋舞 -Feature/&PowerCollegeOfAudacityMobileWhirlDescription=你可以花费一次诗人激励,使武器对你击中的目标造成额外伤害。伤害等于你在诗人激励骰或 D6(如果是旋舞大师)上掷出的数字。你获得撤离的好处,直到你的回合结束。 -Feature/&PowerCollegeOfAudacityMobileWhirlTitle=推击旋舞 -Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=你可以花费一次诗人激励,使武器对你击中的目标以及你周围 5 尺内的所有其他敌方生物造成额外伤害。伤害等于你在诗人激励骰或 D6(如果是旋舞大师)上掷出的数字。 -Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=乱击旋舞 -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} 可以使武器对目标造成额外伤害。伤害等于你在诗人激励骰或 D6(如果是旋舞大师)上掷出的数值。 -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=旋舞 -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=旋舞 -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=旋舞 -Subclass/&CollegeOfAudacityDescription=剑舞学院的吟游诗人通过大胆的武器技巧来娱乐。他们表演吞剑、扔刀、杂耍、模拟格斗等特技。尽管他们使用武器来娱乐,但他们本身也是训练有素、技术精湛的战士。 -Subclass/&CollegeOfAudacityTitle=剑舞学院 +Action/&AudaciousWhirlToggleDescription=激活/停用 Blade Flourish +Action/&AudaciousWhirlToggleTitle=剑刃绽放 +Action/&MasterfulWhirlToggleDescription=激活/停用大师的繁荣 +Action/&MasterfulWhirlToggleTitle=大师的辉煌 +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=繁荣昌盛,卷入 AC。 +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=防守蓬勃发展 +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=每当您在自己的回合中采取攻击行动时,您的行走速度都会增加 10 英尺,直到回合结束为止。如果您在此行动中进行的近战武器攻击击中了生物,您可以消耗一次吟游诗人灵感,使武器对击中的目标造成额外伤害。伤害等于您在吟游诗人灵感骰子上掷出的数值。您还可以选择一种特定的动作:\n• 防御性华丽:您将吟游诗人灵感骰子掷出的数值添加到您的 AC 中,直到您的下一回合开始为止。\n• 挥砍华丽:您对您 5 英尺范围内的所有其他敌方生物造成额外伤害。\n• 移动华丽:您获得脱离的好处,直到回合结束为止。 +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=剑刃绽放 +Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=你熟练掌握中型盔甲和弯刀。你还可以使用你的武器作为吟游诗人法术的施法焦点。 +Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=奖励熟练度 +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=每当您使用 Blade Flourish 选项时,您可以掷一个 D6 并使用它来代替消耗 Bardic Inspiration 骰子。 +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=大师的辉煌 +Feature/&FightingStyleChoiceCollegeOfAudacityDescription=你采用一种特殊的战斗风格作为你的专长。选择决斗或双武器战斗。 +Feature/&FightingStyleChoiceCollegeOfAudacityTitle=格斗风格 +Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=你可以花费一次吟游灵感,让武器对你击中的目标造成额外伤害。伤害等于你在吟游灵感骰子上掷出的数字,如果是大师的华丽,则为 D6。你还可以将掷出的数字添加到你的 AC 中,直到你的下一轮开始。 +Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=防守蓬勃发展 +Feature/&PowerCollegeOfAudacityMobileWhirlDescription=你可以花费一次吟游灵感,让武器对你击中的目标造成额外伤害。伤害等于你在吟游灵感骰子上掷出的数字,如果是大师的华丽,则为 D6。在你的回合结束前,你可以获得脱离的好处。 +Feature/&PowerCollegeOfAudacityMobileWhirlTitle=移动繁荣 +Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=你可以使用一次吟游灵感,让武器对你击中的目标以及你 5 英尺范围内的所有其他敌方生物造成额外伤害。伤害等于你在吟游灵感骰子上掷出的数字,如果是大师的华丽,则为 D6。 +Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=大肆繁华 +Feedback/&CollegeOfAudacityDefensiveWhirl={0} 掷出 {2} 个骰子,将 {3} 加到 AC。 +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} 可使武器对目标造成额外伤害。伤害等于您在吟游诗人灵感骰子上掷出的数字,如果是大师的华丽骰子,则为 D6。 +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=繁荣 +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=繁荣 +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=繁荣 +Subclass/&CollegeOfAudacityDescription=剑术学院的吟游诗人通过大胆的武器威力表演来娱乐观众。他们表演吞剑、掷刀和玩杂耍以及模拟战斗等特技。虽然他们使用武器来娱乐观众,但他们本身也是训练有素、技艺精湛的战士。 +Subclass/&CollegeOfAudacityTitle=剑术学院 From f14d06c4abcd7ce6dbbc405c681977abef44fca5 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 09:20:29 -0700 Subject: [PATCH 47/91] tweak college of swords to display the dice rolled and result on defensive whirl --- .../Subclasses/CollegeOfAudacity.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs b/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs index df783ba207..2a2a10fe3e 100644 --- a/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs +++ b/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs @@ -477,6 +477,15 @@ public IEnumerator OnPhysicalAttackFinishedByMe( { case 0 when attacker.UsedSpecialFeatures.TryGetValue(WhirlDamage, out var damage): + var dieType = rulesetAttacker.GetBardicInspirationDieValue(); + + rulesetAttacker.LogCharacterActivatesAbility( + Gui.NoLocalization, "Feedback/&CollegeOfAudacityDefensiveWhirl", true, + extra: + [ + (ConsoleStyleDuplet.ParameterType.AbilityInfo, Gui.FormatDieTitle(dieType)), + (ConsoleStyleDuplet.ParameterType.Positive, damage.ToString()) + ]); rulesetAttacker.InflictCondition( ConditionDefensiveWhirl, DurationType.Round, From 4fa2e918b5f74055e1c14a4d84159b4e53f6839d Mon Sep 17 00:00:00 2001 From: Dovel Date: Sun, 14 Jul 2024 20:02:39 +0300 Subject: [PATCH 48/91] update russian translation --- .../Translations/ru/Others-ru.txt | 2 +- .../Translations/ru/Settings-ru.txt | 4 +- .../Translations/ru/Spells/Spells04-ru.txt | 8 ++-- .../ru/SubClasses/CollegeOfAudacity-ru.txt | 42 +++++++++---------- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt index 8eeb608600..a0fb17f382 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Следопыт Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Это заклинание досталось вам из архетипа Плута и считается известным вам. Screen/&RoguishSpellTitle=Плут -Screen/&SpellAlternatePointsCostTooltip={0} баллов +Screen/&SpellAlternatePointsCostTooltip={0} очков Screen/&SpellAlternatePointsTooltip=У вас осталось {0} очков заклинаний. Screen/&SpellSlotsUsedLongDescription=Вы потратили {0} ячеек заклинаний этого уровня. Screen/&SpellSlotsUsedShortDescription=Вы потратили {0} ячеек заклинаний колдуна. diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index acb83f4a09..952086bbf1 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -318,8 +318,8 @@ ModUi/&UnlockGlowingEyeColors=Добавить светящиеся цвета ModUi/&UnlockMarkAndTattoosForAllCharacters=Разблокировать родовые отметины и татуировки Чародея для всех персонажей ModUi/&UnlockSkinColors=Разблокировать цвета кожи ModUi/&Update=Обновить -ModUi/&UseAlternateSpellPointsSystem=Используйте официальные правила вариантных очков заклинаний. -ModUi/&UseAlternateSpellPointsSystemHelp=[У вас есть запас очков заклинаний, который увеличивается с уровнем заклинателя.\nL01: 04 L02: 06 L03 : 14 L04: 17 L05: 27 L06: 32 L07: < color=white>38 L08: 44 L09: 57 L10: 64\nL11: 73 L12: 73 L13: 83 L14: 83 L15: 94 L16: 94 L17: 107 L18: 114 L19: 123 L20: 133\nСтоимость произнесения заклинаний составляет SL1: 2 SL2: 3 SL3: 5 SL4: 6 SL5: 7 SL6: 9 SL7: 10 SL8: 11 SL9: 13\nФункции восстановления слотов для короткого отдыха не будут активироваться в этой системе ] +ModUi/&UseAlternateSpellPointsSystem=Использовать официальные правила альтернативной системы Очков заклинаний +ModUi/&UseAlternateSpellPointsSystemHelp=[Вы обладаете запасом очков заклинаний, который увеличивается с уровнем заклинателя.\nУр1: 04 Ур2: 06 Ур3: 14 Ур4: 17 Ур5: 27 Ур6: 32 Ур7: 38 Ур8: 44 Ур9: 57 Ур10: 64\nУр11: 73 Ур12: 73 Ур13: 83 Ур14: 83 Ур15: 94 Ур16: 94 Ур17: 107 Ур18: 114 Ур19: 123 Ур20: 133\nСтоимость наложения заклинаний следующая УЗ1: 2 УЗ2: 3 УЗ3: 5 УЗ4: 6 УЗ5: 7 УЗ6: 9 УЗ7: 10 УЗ8: 11 УЗ9: 13\nСпособности восстановления ячеек заклинаний после короткого отдыха не будут работать в этой системе] ModUi/&UseElfFaceModelsOnTieflings=Использовать Эльфийские лица на Тифлингах ModUi/&UseHeightOneCylinderEffect=Ограничить высоту эффекта одним уровнем при накладывании Чёрных щупалец, Опутывания, Смазки [квадрат] или Шипов [круг] ModUi/&UseMathFlankingRules=+ Использовать точную математику для определения окружения [может повлиять на производительность на медленных компьютерах] diff --git a/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt index bba5f505c9..295091cfba 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt @@ -13,8 +13,8 @@ Condition/&ConditionElementalBaneTitle=Проклятье стихий: {0} Condition/&ConditionIrresistiblePerformanceDescription=Вы не можете выполнять никаких действий, требующих использования рук или рта, но в остальном можете действовать нормально. Condition/&ConditionIrresistiblePerformanceTitle=Неотразимое исполнение Condition/&ConditionPsionicBlastTitle=Затуманенный разум -Condition/&ConditionSickeningRadianceDescription=Вы испытываете один уровень истощения и излучаете тусклый зеленоватый свет в радиусе 5 футов. Этот свет лишает вас возможности быть невидимым. -Condition/&ConditionSickeningRadianceTitle=Тошнотворное сияние +Condition/&ConditionSickeningRadianceDescription=Вы получили одну степень истощения и испускаете тусклый зеленоватый свет в радиусе 5 футов. Этот свет делает невозможным получение преимуществ от невидимости. +Condition/&ConditionSickeningRadianceTitle=Болезненное сияние Condition/&ConditionStaggeringSmiteEnemyDescription=Вас поразили психическим уроном. Condition/&ConditionStaggeringSmiteEnemyTitle=Оглушающая кара Condition/&ConditionTreeForestGuardianDescription=Вы получаете 10 временных хитов, совершаете с преимуществом спасброски Телосложения и броски атаки, основанные на Ловкости и Мудрости. @@ -52,8 +52,8 @@ Spell/&PsionicBlastDescription=Вы испускаете ослабляющую Spell/&PsionicBlastTitle=Псионический взрыв Spell/&PsychicLanceDescription=Вы выпускаете мерцающее копье психической силы из своего лба в существо, которое вы можете видеть в пределах дистанции. Цель должна совершить спасбросок Интеллекта. В случае провала цель получает 7d6 урона психической энергией и становится недееспособной до начала вашего следующего хода. В случае успеха существо получает половину этого урона и остаётся дееспособным. Если вы накладываете это заклинание, используя ячейку 5-го уровня или выше, урон увеличивается на 1d6 за каждый уровень ячейки выше 4-го. Spell/&PsychicLanceTitle=Психическое копьё Раулотима -Spell/&SickeningRadianceDescription=Тусклый свет распространяется по сфере радиусом 30 футов с центром в выбранной вами точке в пределах дальности действия. Свет распространяется по углам и длится до тех пор, пока заклинание не закончится. Когда существо впервые за ход перемещается в область действия заклинания или начинает там свой ход, это существо должно преуспеть в спасброске Телосложения или получить урон излучением 4d10, и оно переносит один уровень истощения и излучает тусклый свет в Радиус 5 футов. Этот свет лишает существо возможности быть невидимым. Свет и любые уровни истощения, вызванные этим заклинанием, исчезают, когда заклинание заканчивается. -Spell/&SickeningRadianceTitle=Тошнотворное сияние +Spell/&SickeningRadianceDescription=Из точки, выбранной вами в пределах дистанции, распространяется сфера тусклого зеленоватого света с радиусом 30 футов. Свет огибает углы и существует до тех пор, пока заклинание не закончится. Если существо впервые за раунд входит в область заклинания или начинает в ней свой ход, оно должно преуспеть в спасброске Телосложения, иначе получит 4d10 урона излучением. Оно также получает одну степень истощения и само начинает испускать тусклый зеленоватый свет в радиусе 5 футов. Этот свет лишает существо возможности быть невидимым. Этот свет делает невозможным получение преимуществ от невидимости. Свет и любые степени истощения, вызванные этим заклинанием, проходят, когда заклинание оканчивается. +Spell/&SickeningRadianceTitle=Болезненное сияние Spell/&StaggeringSmiteDescription=В следующий раз, когда вы попадёте по существу рукопашной атакой оружием, пока активно это заклинание, ваша атака пронзает не только его тело, но и сознание, и атака дополнительно наносит цели 4d6 урона психической энергией. Цель должна совершить спасбросок Мудрости. При провале она до конца своего следующего хода совершает с помехой броски атаки и проверки характеристик, а также не может совершать реакции. Spell/&StaggeringSmiteTitle=Оглушающая кара Spell/&TreeForestGuardianDescription=Ваша кожа покрывается корой, листья прорастают из ваших волос, и вы получаете следующие преимущества:\n• Вы получаете 10 временных хитов.\n• Вы совершаете с преимуществом спасброски Телосложения.\n• Вы совершаете броски атаки, основанные на Ловкости и Мудрости, с преимуществом.\n• Существа в радиусе 30 футов от вас должны пройти спасбросок Силы, иначе они будут скованы на время действия заклинания. Они могут повторять спасбросок в начале каждого хода. diff --git a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/CollegeOfAudacity-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/CollegeOfAudacity-ru.txt index a04a769c12..dea2a25cbf 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/CollegeOfAudacity-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/CollegeOfAudacity-ru.txt @@ -1,27 +1,27 @@ -Action/&AudaciousWhirlToggleDescription=Начать/отменить Дерзкий вихрь -Action/&AudaciousWhirlToggleTitle=Дерзкий вихрь -Action/&MasterfulWhirlToggleDescription=Начать/отменить Искусный вихрь -Action/&MasterfulWhirlToggleTitle=Искусный вихрь -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Бросок Вихря прибавляется к КД. -Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Защитный вихрь -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Каждый раз, когда вы совершаете действие Атака в свой ход, ваша скорость передвижения увеличивается на 10 футов до конца хода, и если рукопашная атака оружием, которую вы совершаете в рамках этого действия, попадает по существу, вы можете потратить одну кость вашего Бардовского вдохновения, чтобы заставить оружие нанести дополнительный урон цели, по которой вы попали. Урон равен числу, выпавшему на кости Бардовского вдохновения. Вы также можете выбрать определённый манёвр:\n• Защитный вихрь: Вы добавляете бросок кости Бардовского вдохновения к вашему КД до начала вашего следующего хода.\n• Рубящий вихрь: Вы наносите дополнительный урон всем другим враждебным существам в радиусе 5 футов от вас.\n• Подвижный вихрь: Вы получаете преимущества действия Отход до конца вашего хода. -Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Дерзкий вихрь +Action/&AudaciousWhirlToggleDescription=Начать/отменить Росчерк клинка +Action/&AudaciousWhirlToggleTitle=Росчерк клинка +Action/&MasterfulWhirlToggleDescription=Начать/отменить Мастерский росчерк +Action/&MasterfulWhirlToggleTitle=Мастерский росчерк +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlDescription=Бросок Росчерка прибавляется к КД. +Feature/&AttributeModifierCollegeOfAudacityDefensiveWhirlTitle=Оборонительный росчерк +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlDescription=Каждый раз, когда вы совершаете действие Атака в свой ход, ваша скорость передвижения увеличивается на 10 футов до конца хода, и если рукопашная атака оружием, которую вы совершаете в рамках этого действия, попадает по существу, вы можете потратить одну кость вашего Бардовского вдохновения, чтобы заставить оружие нанести дополнительный урон цели, по которой вы попали. Урон равен числу, выпавшему на кости Бардовского вдохновения. Вы также можете выбрать определённый манёвр:\n• Оборонительный росчерк: Вы добавляете бросок кости Бардовского вдохновения к вашему КД до начала вашего следующего хода.\n• Режущий росчерк: Вы наносите дополнительный урон всем другим враждебным существам в радиусе 5 футов от вас.\n• Мобильный росчерк: Вы получаете преимущества действия Отход до конца вашего хода. +Feature/&FeatureSetCollegeOfAudacityAudaciousWhirlTitle=Росчерк клинка Feature/&FeatureSetCollegeOfAudacityBonusProficienciesDescription=Вы получаете владение средними доспехами и скимитарами. Вы также можете использовать ваше оружие в качестве заклинательной фокусировки ваших заклинаний барда. Feature/&FeatureSetCollegeOfAudacityBonusProficienciesTitle=Бонусные умения -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Когда вы используете умение Дерзкий вихрь, вы можете бросить кость d6 и использовать результат вместо того, чтобы тратить кость Бардовского вдохновения. -Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Искусный вихрь +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlDescription=Когда вы используете умение Росчерк клинка, вы можете бросить кость d6 и использовать результат вместо того, чтобы тратить кость Бардовского вдохновения. +Feature/&FeatureSetCollegeOfAudacityMasterfulWhirlTitle=Мастерский росчерк Feature/&FightingStyleChoiceCollegeOfAudacityDescription=Вы избираете определённый стиль боя в качестве своей специализации. Выберите Дуэлянта или Сражение двумя оружиями. Feature/&FightingStyleChoiceCollegeOfAudacityTitle=Боевой стиль -Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Вы можете потратить одну кость своего Бардовского вдохновения, чтобы заставить оружие нанести дополнительный урон цели, по которой вы попали. Урон равен числу, выпавшему на кости Бардовского вдохновения, или d6, если вы владеете Искусным вихрем. Вы также прибавляете число, выпавшее при броске, к своему КД до начала вашего следующего хода. -Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Защитный вихрь -Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Вы можете потратить одну кость своего Бардовского вдохновения, чтобы заставить оружие нанести дополнительный урон цели, по которой вы попали. Урон равен числу, выпавшему на кости Бардовского вдохновения, или d6, если вы владеете Искусным вихрем. Вы получаете преимущества действия Отхода до конца вашего хода. -Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Подвижный вихрь -Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Вы можете потратить одну кость своего Бардовского вдохновения, чтобы заставить оружие нанести дополнительный урон цели, по которой вы попали, и всем другим враждебным существам в радиусе 5 футов от вас. Урон равен числу, выпавшему на кости Бардовского вдохновения, или d6, если вы владеете Искусным вихрем. -Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Рубящий вихрь -Feedback/&CollegeOfAudacityDefensiveWhirl={0} бросает кубик {2}, добавляя {3} к AC. -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} может заставить оружие нанести дополнительный урон цели. Урон равен числу, выпавшему на кости Бардовского вдохновения, или d6, если это Искусный вихрь. -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Вихрь -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Вихрь -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Вихрь +Feature/&PowerCollegeOfAudacityDefensiveWhirlDescription=Вы можете потратить одну кость своего Бардовского вдохновения, чтобы заставить оружие нанести дополнительный урон цели, по которой вы попали. Урон равен числу, выпавшему на кости Бардовского вдохновения, или d6, если вы владеете Мастерским росчерком. Вы также прибавляете число, выпавшее при броске, к своему КД до начала вашего следующего хода. +Feature/&PowerCollegeOfAudacityDefensiveWhirlTitle=Оборонительный росчерк +Feature/&PowerCollegeOfAudacityMobileWhirlDescription=Вы можете потратить одну кость своего Бардовского вдохновения, чтобы заставить оружие нанести дополнительный урон цели, по которой вы попали. Урон равен числу, выпавшему на кости Бардовского вдохновения, или d6, если вы владеете Мастерским росчерком. Вы получаете преимущества действия Отхода до конца вашего хода. +Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Мобильный росчерк +Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Вы можете потратить одну кость своего Бардовского вдохновения, чтобы заставить оружие нанести дополнительный урон цели, по которой вы попали, и всем другим враждебным существам в радиусе 5 футов от вас. Урон равен числу, выпавшему на кости Бардовского вдохновения, или d6, если вы владеете Мастерским росчерком. +Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Режущий росчерк +Feedback/&CollegeOfAudacityDefensiveWhirl={0} бросает кость {2}, добавляя {3} к КД. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} может заставить оружие нанести дополнительный урон цели. Урон равен числу, выпавшему на кости Бардовского вдохновения, или d6, если это Мастерский росчерк. +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Росчерк +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Росчерк +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Росчерк Subclass/&CollegeOfAudacityDescription=Барды Коллегии мечей развлекают публику лихими приёмами владения оружием. Они выполняют такие трюки, как глотание меча, метание ножей, жонглирование и шуточные бои. Хотя они используют свое оружие для развлечения, они также являются высококвалифицированными и искусными воинами, благодаря их талантам. Subclass/&CollegeOfAudacityTitle=Коллегия мечей From 7f1629c2d47143673e289d5658c173ded1541483 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 10:58:56 -0700 Subject: [PATCH 49/91] improve spell points interaction with MC and tweak spell inspections UI --- .../Models/SpellPointsContext.cs | 15 +++++++++++---- .../Patches/GuiCharacterPatcher.cs | 3 +-- .../Patches/RulesetCharacterPatcher.cs | 4 +++- .../Patches/RulesetSpellRepertoirePatcher.cs | 12 ++++++++++-- .../Patches/SlotStatusTablePatcher.cs | 2 +- 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index 32f7ae4e93..6a6238ba32 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -199,13 +199,18 @@ internal static void GrantPowerSpellPoints(RulesetCharacterHero hero) } internal static void ConsumeSlotsAtLevelsPointsCannotCastAnymore( - RulesetCharacterHero hero, RulesetSpellRepertoire repertoire, int slotLevel) + RulesetCharacterHero hero, RulesetSpellRepertoire repertoire, int slotLevel, + bool consume = true, bool isMulticaster = false) { // consume points var usablePower = PowerProvider.Get(PowerSpellPoints, hero); - var cost = SpellCostByLevel[slotLevel]; - usablePower.remainingUses -= cost; + if (consume) + { + var cost = SpellCostByLevel[slotLevel]; + + usablePower.remainingUses -= cost; + } // handle scenario where spells at level 6 and above can only be cast once per level if (slotLevel > 5) @@ -217,7 +222,9 @@ internal static void ConsumeSlotsAtLevelsPointsCannotCastAnymore( } // consume spell slots at levels points cannot cast anymore - var level = repertoire.MaxSpellLevelOfSpellCastingLevel; + var level = isMulticaster + ? SharedSpellsContext.GetSharedSpellLevel(hero) + : repertoire.MaxSpellLevelOfSpellCastingLevel; for (var i = level; i > 0; i--) { diff --git a/SolastaUnfinishedBusiness/Patches/GuiCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/GuiCharacterPatcher.cs index 490f373a30..cb4a8b564b 100644 --- a/SolastaUnfinishedBusiness/Patches/GuiCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/GuiCharacterPatcher.cs @@ -42,12 +42,11 @@ public static void Postfix( // need to check for not null hero as we don't wanna these slots displayed under WS var hero = __instance.RulesetCharacterHero; - if (hero != null && !Main.Settings.DisplayPactSlotsOnSpellSelectionPanel) + if (hero != null && !(Main.Settings.DisplayPactSlotsOnSpellSelectionPanel && !Main.Settings.UseAlternateSpellPointsSystem)) { return; } - if (hero != null && !SharedSpellsContext.IsMulticaster(hero)) { return; diff --git a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs index a95d3585e9..4b81f48505 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs @@ -1292,7 +1292,9 @@ public static void Postfix(RulesetCharacter __instance) for (var i = 1; i <= sharedSpellLevel; i++) { slots.TryAdd(i, 0); - slots[i] += SharedSpellsContext.FullCastingSlots[sharedCasterLevel - 1].Slots[i - 1]; + slots[i] += Main.Settings.UseAlternateSpellPointsSystem + ? SpellPointsContext.SpellPointsFullCastingSlots[sharedCasterLevel - 1].Slots[i - 1] + : SharedSpellsContext.FullCastingSlots[sharedCasterLevel - 1].Slots[i - 1]; } var warlockSpellLevel = SharedSpellsContext.GetWarlockSpellLevel(hero); diff --git a/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs index f3fb493cc9..23d86cd116 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs @@ -128,6 +128,8 @@ is FeatureDefinitionCastSpell.CastingOrigin.Race // handles MC non-Warlock if (warlockSpellRepertoire == null) { + var consume = true; + foreach (var spellRepertoire in hero.SpellRepertoires .Where(x => x.SpellCastingFeature.SpellCastingOrigin != FeatureDefinitionCastSpell.CastingOrigin.Race)) @@ -135,7 +137,9 @@ is FeatureDefinitionCastSpell.CastingOrigin.Race if (Main.Settings.UseAlternateSpellPointsSystem) { SpellPointsContext.ConsumeSlotsAtLevelsPointsCannotCastAnymore( - hero, spellRepertoire, slotLevel); + hero, spellRepertoire, slotLevel, consume, true); + + consume = false; } else { @@ -209,6 +213,8 @@ private static void SpendMulticasterWarlockSlots( // otherwise uses long rest slots across all non-race repertoires else { + var consume = true; + foreach (var spellRepertoire in hero.SpellRepertoires .Where(x => x.SpellCastingFeature.SpellCastingOrigin != FeatureDefinitionCastSpell.CastingOrigin.Race)) @@ -216,7 +222,9 @@ private static void SpendMulticasterWarlockSlots( if (Main.Settings.UseAlternateSpellPointsSystem) { SpellPointsContext.ConsumeSlotsAtLevelsPointsCannotCastAnymore( - hero, spellRepertoire, slotLevel); + hero, spellRepertoire, slotLevel, consume, true); + + consume = false; } else { diff --git a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs index 0ce4fe823c..e9e2a8cdef 100644 --- a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs @@ -90,7 +90,7 @@ public static void Postfix( spells.Count, __instance, (Global.InspectedHero != null && spellRepertoire.spellCastingClass == Warlock) || - (Global.InspectedHero == null && !Main.Settings.DisplayPactSlotsOnSpellSelectionPanel)); + (Global.InspectedHero == null && !(Main.Settings.DisplayPactSlotsOnSpellSelectionPanel && !Main.Settings.UseAlternateSpellPointsSystem))); } } From 304265963d0bd91efff548ab01866deeac56e9aa Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 11:09:29 -0700 Subject: [PATCH 50/91] fix AA bursting arrow behavior repeating on every attack --- SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs b/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs index 408bf752ae..a4620e4f20 100644 --- a/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs +++ b/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs @@ -645,7 +645,8 @@ public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( yield return battleManager.WaitForReactions(attacker, actionManager, count); - attacker.UsedSpecialFeatures.TryAdd(powerBurstingArrow.Name, -1); + attacker.UsedSpecialFeatures.TryAdd(powerBurstingArrow.Name, 0); + attacker.UsedSpecialFeatures[powerBurstingArrow.Name] = -1; if (!actionParams.ReactionValidated) { @@ -678,6 +679,7 @@ public IEnumerator OnPhysicalAttackFinishedByMe( yield break; } + attacker.UsedSpecialFeatures[powerBurstingArrow.Name] = -1; HandleBurstingArrow(attacker, defender); } From bf5a14d6e4fab91888cb25f9b2ac0fb1a048c3ea Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 13:52:50 -0700 Subject: [PATCH 51/91] update translations --- .../Translations/de/Spells/Spells04-de.txt | 12 +++++++++++- .../de/SubClasses/MartialTactician-de.txt | 4 ++-- .../Translations/en/Spells/Spells04-en.txt | 12 +++++++++++- .../en/SubClasses/CollegeOfAudacity-en.txt | 2 +- .../en/SubClasses/MartialTactician-en.txt | 4 ++-- .../Translations/es/Spells/Spells04-es.txt | 12 +++++++++++- .../es/SubClasses/CollegeOfAudacity-es.txt | 2 +- .../es/SubClasses/MartialTactician-es.txt | 4 ++-- .../Translations/fr/Spells/Spells04-fr.txt | 12 +++++++++++- .../fr/SubClasses/CollegeOfAudacity-fr.txt | 6 +++--- .../fr/SubClasses/MartialTactician-fr.txt | 4 ++-- .../Translations/it/Spells/Spells04-it.txt | 12 +++++++++++- .../it/SubClasses/MartialTactician-it.txt | 4 ++-- .../Translations/ja/Spells/Spells04-ja.txt | 12 +++++++++++- .../ja/SubClasses/MartialTactician-ja.txt | 4 ++-- .../Translations/ko/Spells/Spells04-ko.txt | 12 +++++++++++- .../ko/SubClasses/MartialTactician-ko.txt | 4 ++-- .../Translations/pt-BR/Spells/Spells04-pt-BR.txt | 12 +++++++++++- .../pt-BR/SubClasses/MartialTactician-pt-BR.txt | 4 ++-- .../Translations/ru/Spells/Spells04-ru.txt | 12 +++++++++++- .../ru/SubClasses/MartialTactician-ru.txt | 4 ++-- .../Translations/zh-CN/Spells/Spells04-zh-CN.txt | 12 +++++++++++- .../zh-CN/SubClasses/MartialTactician-zh-CN.txt | 4 ++-- 23 files changed, 135 insertions(+), 35 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/de/Spells/Spells04-de.txt b/SolastaUnfinishedBusiness/Translations/de/Spells/Spells04-de.txt index 75acc6be42..6696b79864 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Spells/Spells04-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Spells/Spells04-de.txt @@ -13,7 +13,17 @@ Condition/&ConditionElementalBaneTitle=Elementarfluch: {0} Condition/&ConditionIrresistiblePerformanceDescription=Sie können keine Aktionen ausführen, die Ihre Hände oder Ihren Mund erfordern, können sich aber ansonsten normal verhalten. Condition/&ConditionIrresistiblePerformanceTitle=Dinah-Moe Humm Condition/&ConditionPsionicBlastTitle=Verwirrter Geist -Condition/&ConditionSickeningRadianceDescription=Du erleidest eine Erschöpfungsstufe und strahlst ein schwaches, grünliches Licht in einem Radius von 1,5 Metern aus. Dieses Licht macht es unmöglich, dass du unsichtbar bist. +Condition/&ConditionSickeningRadianceDescription=Sie strahlen ein schwaches Licht in einem Radius von 1,5 Metern aus. Dieses Licht macht es unmöglich, dass Sie unsichtbar sind. +Condition/&ConditionSickeningRadianceExhausted1Description=Sie sind bei Fähigkeitsprüfungen im Nachteil. +Condition/&ConditionSickeningRadianceExhausted1Title=Erschöpft 1 +Condition/&ConditionSickeningRadianceExhausted2Description=Ihre Geschwindigkeit wird halbiert und Sie sind bei Fähigkeitsprüfungen im Nachteil. +Condition/&ConditionSickeningRadianceExhausted2Title=Erschöpft 2 +Condition/&ConditionSickeningRadianceExhausted3Description=Ihre Geschwindigkeit wird halbiert und Sie sind bei Fähigkeitsprüfungen, Angriffswürfen und Rettungswürfen im Nachteil. +Condition/&ConditionSickeningRadianceExhausted3Title=Erschöpft 3 +Condition/&ConditionSickeningRadianceExhausted4Description=Ihre Geschwindigkeit und Ihre maximalen Trefferpunkte werden halbiert und Sie sind bei Fähigkeitsüberprüfungen, Angriffswürfen und Rettungswürfen im Nachteil. +Condition/&ConditionSickeningRadianceExhausted4Title=Erschöpft 4 +Condition/&ConditionSickeningRadianceExhausted5Description=Ihre Geschwindigkeit beträgt 0, Ihre maximalen Trefferpunkte sind halbiert und Sie sind bei Fähigkeitsüberprüfungen, Angriffswürfen und Rettungswürfen im Nachteil. +Condition/&ConditionSickeningRadianceExhausted5Title=Erschöpft 5 Condition/&ConditionSickeningRadianceTitle=Krankmachende Ausstrahlung Condition/&ConditionStaggeringSmiteEnemyDescription=Du wirst von psychischem Schaden getroffen. Condition/&ConditionStaggeringSmiteEnemyTitle=Atemberaubender Schlag diff --git a/SolastaUnfinishedBusiness/Translations/de/SubClasses/MartialTactician-de.txt b/SolastaUnfinishedBusiness/Translations/de/SubClasses/MartialTactician-de.txt index a920ea4bd0..64150c195a 100644 --- a/SolastaUnfinishedBusiness/Translations/de/SubClasses/MartialTactician-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/SubClasses/MartialTactician-de.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=Erlangen Sie Fachwissen zu ein Feature/&FeatureSetTacticianHonedCraftTitle=Geschliffenes Können Feature/&FeatureSetTacticianSharpMindDescription=Erwerben Sie Kenntnisse in einer Fertigkeit Ihrer Wahl. Feature/&FeatureSetTacticianSharpMindTitle=Scharfer Verstand -Feature/&FeatureSetTacticianTacticalAwarenessDescription=Solange Sie nicht handlungsunfähig sind, erhalten Sie die folgenden Vorteile:\n• Einmal pro Spielzug verursacht Ihr Waffenangriff zusätzlichen Schaden in Höhe Ihres Fähigkeitsbonus.\n• Von Ihnen durchgeführte Gelegenheitsangriffe werden mit Vorteil ausgeführt.\n• Gelegenheitsangriffe gegen Sie erfolgen mit Nachteil. -Feature/&FeatureSetTacticianTacticalAwarenessTitle=Taktisches Bewusstsein +Feature/&FeatureSetTacticianTacticalAwarenessDescription=Während des Kampfes erhalten Sie zu Beginn jedes Ihrer Züge einen Überlegenheitswürfel zurück. +Feature/&FeatureSetTacticianTacticalAwarenessTitle=Meister der Kriegsführung Feature/&FeatureTacticianGambitDieSizeD10Description=Dein Überlegenheitswürfel wird auf W10 aufgewertet. Feature/&FeatureTacticianGambitDieSizeD10Title=Überlegenheitswürfelgröße (d10) Feature/&FeatureTacticianGambitDieSizeD12Description=Dein Überlegenheitswürfel wird auf W12 aufgewertet. diff --git a/SolastaUnfinishedBusiness/Translations/en/Spells/Spells04-en.txt b/SolastaUnfinishedBusiness/Translations/en/Spells/Spells04-en.txt index f19e592f2a..454d5d23c9 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Spells/Spells04-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Spells/Spells04-en.txt @@ -13,7 +13,17 @@ Condition/&ConditionElementalBaneTitle=Elemental Bane: {0} Condition/&ConditionIrresistiblePerformanceDescription=You cannot perform any actions that require your hands or mouth but can otherwise act normally. Condition/&ConditionIrresistiblePerformanceTitle=Dinah-Moe Humm Condition/&ConditionPsionicBlastTitle=Muddled Mind -Condition/&ConditionSickeningRadianceDescription=You suffer one level of exhaustion and emit a dim, greenish light in a 5-foot radius. This light makes it impossible for you from being invisible. +Condition/&ConditionSickeningRadianceDescription=You emit a dim light in a 5-foot radius. This light makes it impossible for you from being invisible. +Condition/&ConditionSickeningRadianceExhausted1Description=You have disadvantage on ability checks. +Condition/&ConditionSickeningRadianceExhausted1Title=Exhausted 1 +Condition/&ConditionSickeningRadianceExhausted2Description=Your speed is halved, and you have disadvantage on ability checks. +Condition/&ConditionSickeningRadianceExhausted2Title=Exhausted 2 +Condition/&ConditionSickeningRadianceExhausted3Description=Your speed is halved, and you have disadvantage on ability checks, attack rolls, and saving throws. +Condition/&ConditionSickeningRadianceExhausted3Title=Exhausted 3 +Condition/&ConditionSickeningRadianceExhausted4Description=Your speed and maximum hit points are halved, and you have disadvantage on ability checks, attack rolls, and saving throws. +Condition/&ConditionSickeningRadianceExhausted4Title=Exhausted 4 +Condition/&ConditionSickeningRadianceExhausted5Description=Your speed is 0, your maximum hit points is halved, and you have disadvantage on ability checks, attack rolls, and saving throws. +Condition/&ConditionSickeningRadianceExhausted5Title=Exhausted 5 Condition/&ConditionSickeningRadianceTitle=Sickening Radiance Condition/&ConditionStaggeringSmiteEnemyDescription=You're hit by psychic damage. Condition/&ConditionStaggeringSmiteEnemyTitle=Staggering Smite diff --git a/SolastaUnfinishedBusiness/Translations/en/SubClasses/CollegeOfAudacity-en.txt b/SolastaUnfinishedBusiness/Translations/en/SubClasses/CollegeOfAudacity-en.txt index e03701907b..03810c4d76 100644 --- a/SolastaUnfinishedBusiness/Translations/en/SubClasses/CollegeOfAudacity-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/SubClasses/CollegeOfAudacity-en.txt @@ -18,10 +18,10 @@ Feature/&PowerCollegeOfAudacityMobileWhirlDescription=You can expend one use of Feature/&PowerCollegeOfAudacityMobileWhirlTitle=Mobile Flourish Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=You can expend one use of your Bardic Inspiration to cause the weapon to deal extra damage to target you hit and to all other enemy creatures within 5 feet of you. The damage equals the number you roll on the Bardic Inspiration die or a D6 if a Master's Flourish. Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=Slashing Flourish +Feedback/&CollegeOfAudacityDefensiveWhirl={0} rolls a {2} die, adding {3} to AC. Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} can cause the weapon to deal extra damage to the target. The damage is equal to the number you roll on the Bardic Inspiration die or a D6 if a Master's Flourish. Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Flourish Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Flourish Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Flourish Subclass/&CollegeOfAudacityDescription=Bards of the College of Swords entertain through daring feats of weapon prowess. They perform stunts such as sword swallowing, knife throwing and juggling, and mock combats. Though they use their weapons to entertain, they are also highly trained and skilled warriors in their own right. Subclass/&CollegeOfAudacityTitle=College of Swords -Feedback/&CollegeOfAudacityDefensiveWhirl={0} rolls a {2} die, adding {3} to AC. \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Translations/en/SubClasses/MartialTactician-en.txt b/SolastaUnfinishedBusiness/Translations/en/SubClasses/MartialTactician-en.txt index 586332ae5c..ef1ce4b408 100644 --- a/SolastaUnfinishedBusiness/Translations/en/SubClasses/MartialTactician-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/SubClasses/MartialTactician-en.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=Gain expertise with a skill or Feature/&FeatureSetTacticianHonedCraftTitle=Honed Skill Feature/&FeatureSetTacticianSharpMindDescription=Gain proficiency with a skill of your choice. Feature/&FeatureSetTacticianSharpMindTitle=Sharp Mind -Feature/&FeatureSetTacticianTacticalAwarenessDescription=While you are not incapacitated, you gain the following benefits:\n• Once per turn, your weapon attack deals extra damage equal to your proficiency bonus.\n• Attacks of Opportunity you make are done with advantage.\n• Attacks of Opportunity against you are done with disadvantage. -Feature/&FeatureSetTacticianTacticalAwarenessTitle=Tactical Awareness +Feature/&FeatureSetTacticianTacticalAwarenessDescription=During combat, you regain a superiority die at the start of each of your turns. +Feature/&FeatureSetTacticianTacticalAwarenessTitle=Master of Warfare Feature/&FeatureTacticianGambitDieSizeD10Description=Your superiority die is upgraded to D10. Feature/&FeatureTacticianGambitDieSizeD10Title=Superiority Die Size (d10) Feature/&FeatureTacticianGambitDieSizeD12Description=Your superiority die is upgraded to D12. diff --git a/SolastaUnfinishedBusiness/Translations/es/Spells/Spells04-es.txt b/SolastaUnfinishedBusiness/Translations/es/Spells/Spells04-es.txt index e56efd3b0a..c925116edc 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Spells/Spells04-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Spells/Spells04-es.txt @@ -13,7 +13,17 @@ Condition/&ConditionElementalBaneTitle=Perdición elemental: {0} Condition/&ConditionIrresistiblePerformanceDescription=No puede realizar ninguna acción que requiera el uso de las manos o la boca, pero por lo demás puede actuar con normalidad. Condition/&ConditionIrresistiblePerformanceTitle=Dinah Moe Humm Condition/&ConditionPsionicBlastTitle=Mente confusa -Condition/&ConditionSickeningRadianceDescription=Sufres un nivel de agotamiento y emites una luz tenue y verdosa en un radio de 5 pies. Esta luz te hace imposible ser invisible. +Condition/&ConditionSickeningRadianceDescription=Emites una luz tenue en un radio de 5 pies. Esta luz te hace imposible ser invisible. +Condition/&ConditionSickeningRadianceExhausted1Description=Tienes desventaja en las pruebas de habilidad. +Condition/&ConditionSickeningRadianceExhausted1Title=Agotado 1 +Condition/&ConditionSickeningRadianceExhausted2Description=Tu velocidad se reduce a la mitad y tienes desventaja en las pruebas de habilidad. +Condition/&ConditionSickeningRadianceExhausted2Title=Agotado 2 +Condition/&ConditionSickeningRadianceExhausted3Description=Tu velocidad se reduce a la mitad y tienes desventaja en las pruebas de habilidad, tiradas de ataque y tiros de salvación. +Condition/&ConditionSickeningRadianceExhausted3Title=Agotado 3 +Condition/&ConditionSickeningRadianceExhausted4Description=Tu velocidad y puntos de vida máximos se reducen a la mitad y tienes desventaja en las pruebas de habilidad, tiradas de ataque y tiros de salvación. +Condition/&ConditionSickeningRadianceExhausted4Title=Agotado 4 +Condition/&ConditionSickeningRadianceExhausted5Description=Tu velocidad es 0, tus puntos de vida máximos se reducen a la mitad y tienes desventaja en las pruebas de habilidad, tiradas de ataque y tiros de salvación. +Condition/&ConditionSickeningRadianceExhausted5Title=Agotado 5 Condition/&ConditionSickeningRadianceTitle=Resplandor repugnante Condition/&ConditionStaggeringSmiteEnemyDescription=Estás golpeado por daño psíquico. Condition/&ConditionStaggeringSmiteEnemyTitle=Golpe asombroso diff --git a/SolastaUnfinishedBusiness/Translations/es/SubClasses/CollegeOfAudacity-es.txt b/SolastaUnfinishedBusiness/Translations/es/SubClasses/CollegeOfAudacity-es.txt index 86b635ea87..63e2b26f1f 100644 --- a/SolastaUnfinishedBusiness/Translations/es/SubClasses/CollegeOfAudacity-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/SubClasses/CollegeOfAudacity-es.txt @@ -24,4 +24,4 @@ Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescr Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Florecer Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Florecer Subclass/&CollegeOfAudacityDescription=Los bardos del Colegio de Espadas entretienen a través de atrevidas hazañas de destreza con las armas. Realizan acrobacias como tragar espadas, lanzar cuchillos, hacer malabarismos y simulacros de combates. Aunque usan sus armas para entretener, también son guerreros altamente entrenados y hábiles por derecho propio. -Subclass/&CollegeOfAudacityTitle=colegio de espadas +Subclass/&CollegeOfAudacityTitle=Colegio de espadas diff --git a/SolastaUnfinishedBusiness/Translations/es/SubClasses/MartialTactician-es.txt b/SolastaUnfinishedBusiness/Translations/es/SubClasses/MartialTactician-es.txt index e2eb3bf504..b6fc8342c5 100644 --- a/SolastaUnfinishedBusiness/Translations/es/SubClasses/MartialTactician-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/SubClasses/MartialTactician-es.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=Adquiera experiencia con una h Feature/&FeatureSetTacticianHonedCraftTitle=Habilidad perfeccionada Feature/&FeatureSetTacticianSharpMindDescription=Adquiera competencia con una habilidad de su elección. Feature/&FeatureSetTacticianSharpMindTitle=Mente aguda -Feature/&FeatureSetTacticianTacticalAwarenessDescription=Mientras no estés incapacitado, obtienes los siguientes beneficios:\n• Una vez por turno, tu ataque con arma causa daño adicional equivalente a tu bonificación de competencia.\n• Los ataques de oportunidad que realices se realizan con ventaja.\n• Los ataques de oportunidad contra ti se realizan con desventaja. -Feature/&FeatureSetTacticianTacticalAwarenessTitle=Conciencia táctica +Feature/&FeatureSetTacticianTacticalAwarenessDescription=Durante el combate, recuperas un dado de superioridad al comienzo de cada uno de tus turnos. +Feature/&FeatureSetTacticianTacticalAwarenessTitle=Maestro de la guerra Feature/&FeatureTacticianGambitDieSizeD10Description=Tu dado de superioridad se actualiza a D10. Feature/&FeatureTacticianGambitDieSizeD10Title=Tamaño del troquel de superioridad (d10) Feature/&FeatureTacticianGambitDieSizeD12Description=Tu dado de superioridad se actualiza a D12. diff --git a/SolastaUnfinishedBusiness/Translations/fr/Spells/Spells04-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Spells/Spells04-fr.txt index ca6038c88f..55e56d3c16 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Spells/Spells04-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Spells/Spells04-fr.txt @@ -13,7 +13,17 @@ Condition/&ConditionElementalBaneTitle=Fléau élémentaire : {0} Condition/&ConditionIrresistiblePerformanceDescription=Vous ne pouvez effectuer aucune action nécessitant vos mains ou votre bouche, mais vous pouvez autrement agir normalement. Condition/&ConditionIrresistiblePerformanceTitle=Dinah Moe Humm Condition/&ConditionPsionicBlastTitle=Esprit confus -Condition/&ConditionSickeningRadianceDescription=Vous souffrez d'un niveau d'épuisement et émettez une faible lumière verdâtre dans un rayon de 1,5 mètre. Cette lumière vous empêche d'être invisible. +Condition/&ConditionSickeningRadianceDescription=Vous émettez une faible lumière dans un rayon de 1,50 mètre. Cette lumière vous empêche d’être invisible. +Condition/&ConditionSickeningRadianceExhausted1Description=Vous êtes désavantagé aux tests de capacité. +Condition/&ConditionSickeningRadianceExhausted1Title=Épuisé 1 +Condition/&ConditionSickeningRadianceExhausted2Description=Votre vitesse est divisée par deux et vous avez un désavantage aux tests de capacité. +Condition/&ConditionSickeningRadianceExhausted2Title=Épuisé 2 +Condition/&ConditionSickeningRadianceExhausted3Description=Votre vitesse est réduite de moitié et vous êtes désavantagé aux tests de caractéristiques, aux jets d’attaque et aux jets de sauvegarde. +Condition/&ConditionSickeningRadianceExhausted3Title=Épuisé 3 +Condition/&ConditionSickeningRadianceExhausted4Description=Votre vitesse et vos points de vie maximum sont réduits de moitié, et vous êtes désavantagé aux tests de caractéristiques, aux jets d'attaque et aux jets de sauvegarde. +Condition/&ConditionSickeningRadianceExhausted4Title=Épuisé 4 +Condition/&ConditionSickeningRadianceExhausted5Description=Votre vitesse est de 0, vos points de vie maximum sont réduits de moitié et vous êtes désavantagé aux tests de caractéristiques, aux jets d'attaque et aux jets de sauvegarde. +Condition/&ConditionSickeningRadianceExhausted5Title=Épuisé 5 Condition/&ConditionSickeningRadianceTitle=Radiance écoeurante Condition/&ConditionStaggeringSmiteEnemyDescription=Vous êtes touché par des dégâts psychiques. Condition/&ConditionStaggeringSmiteEnemyTitle=Châtiment stupéfiant diff --git a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/CollegeOfAudacity-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/CollegeOfAudacity-fr.txt index 7850a4858d..b9154726cf 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/CollegeOfAudacity-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/CollegeOfAudacity-fr.txt @@ -20,8 +20,8 @@ Feature/&PowerCollegeOfAudacitySlashingWhirlDescription=Vous pouvez dépenser un Feature/&PowerCollegeOfAudacitySlashingWhirlTitle=S'épanouir Feedback/&CollegeOfAudacityDefensiveWhirl={0} lance un dé {2}, ajoutant {3} à la CA. Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlDescription={0} peut amener l'arme à infliger des dégâts supplémentaires à la cible. Les dégâts sont égaux au nombre obtenu sur le dé d'Inspiration bardique ou à un D6 en cas d'Épanouissement du Maître. -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=fleurir -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=fleurir -Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=fleurir +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactDescription=Fleurir +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlReactTitle=Fleurir +Reaction/&ReactionSpendPowerBundlePowerCollegeOfAudacityAudaciousWhirlTitle=Fleurir Subclass/&CollegeOfAudacityDescription=Les bardes du Collège des Épées divertissent grâce à des prouesses audacieuses en matière d'armes. Ils effectuent des cascades telles que avaler des épées, lancer des couteaux, jongler et simuler des combats. Bien qu’ils utilisent leurs armes pour se divertir, ils sont également des guerriers hautement qualifiés et compétents. Subclass/&CollegeOfAudacityTitle=Collège des Épées diff --git a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/MartialTactician-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/MartialTactician-fr.txt index 00ef0b85fa..f4674542b9 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/MartialTactician-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/MartialTactician-fr.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=Gagnez en expertise avec une c Feature/&FeatureSetTacticianHonedCraftTitle=Compétence aiguisée Feature/&FeatureSetTacticianSharpMindDescription=Maîtrisez une compétence de votre choix. Feature/&FeatureSetTacticianSharpMindTitle=Esprit vif -Feature/&FeatureSetTacticianTacticalAwarenessDescription=Tant que vous n'êtes pas incapable d'agir, vous bénéficiez des avantages suivants :\n• Une fois par tour, votre attaque avec une arme inflige des dégâts supplémentaires égaux à votre bonus de maîtrise.\n• Les attaques d'opportunité que vous effectuez sont effectuées avec avantage.\n• Les attaques d'opportunité contre vous se font avec un désavantage. -Feature/&FeatureSetTacticianTacticalAwarenessTitle=Conscience tactique +Feature/&FeatureSetTacticianTacticalAwarenessDescription=Durant le combat, vous récupérez un dé de supériorité au début de chacun de vos tours. +Feature/&FeatureSetTacticianTacticalAwarenessTitle=Maître de la guerre Feature/&FeatureTacticianGambitDieSizeD10Description=Votre dé de supériorité passe à D10. Feature/&FeatureTacticianGambitDieSizeD10Title=Taille du dé de supériorité (d10) Feature/&FeatureTacticianGambitDieSizeD12Description=Votre dé de supériorité passe à D12. diff --git a/SolastaUnfinishedBusiness/Translations/it/Spells/Spells04-it.txt b/SolastaUnfinishedBusiness/Translations/it/Spells/Spells04-it.txt index 1e85ea7150..5b06fcb777 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Spells/Spells04-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Spells/Spells04-it.txt @@ -13,7 +13,17 @@ Condition/&ConditionElementalBaneTitle=Flagello Elementale: {0} Condition/&ConditionIrresistiblePerformanceDescription=Non è possibile eseguire azioni che richiedano l'uso delle mani o della bocca, ma per il resto è possibile agire normalmente. Condition/&ConditionIrresistiblePerformanceTitle=Dinah-Moe Humm Condition/&ConditionPsionicBlastTitle=Mente confusa -Condition/&ConditionSickeningRadianceDescription=Soffri di un livello di esaurimento ed emetti una fioca luce verdastra in un raggio di 1,5 metri. Questa luce ti rende impossibile essere invisibile. +Condition/&ConditionSickeningRadianceDescription=Emetti una luce fioca in un raggio di 1,5 metri. Questa luce ti rende impossibile essere invisibile. +Condition/&ConditionSickeningRadianceExhausted1Description=Hai svantaggio alle prove di caratteristica. +Condition/&ConditionSickeningRadianceExhausted1Title=Esausto 1 +Condition/&ConditionSickeningRadianceExhausted2Description=La tua velocità è dimezzata e hai svantaggio nelle prove di abilità. +Condition/&ConditionSickeningRadianceExhausted2Title=Esaurito 2 +Condition/&ConditionSickeningRadianceExhausted3Description=La tua velocità è dimezzata e hai svantaggio alle prove di caratteristica, ai tiri per colpire e ai tiri salvezza. +Condition/&ConditionSickeningRadianceExhausted3Title=Esaurito 3 +Condition/&ConditionSickeningRadianceExhausted4Description=La tua velocità e i tuoi punti ferita massimi sono dimezzati e hai svantaggio nelle prove di caratteristica, nei tiri per colpire e nei tiri salvezza. +Condition/&ConditionSickeningRadianceExhausted4Title=Esaurito 4 +Condition/&ConditionSickeningRadianceExhausted5Description=La tua velocità è 0, i tuoi punti ferita massimi sono dimezzati e hai svantaggio nelle prove di caratteristica, nei tiri per colpire e nei tiri salvezza. +Condition/&ConditionSickeningRadianceExhausted5Title=Esausto 5 Condition/&ConditionSickeningRadianceTitle=Radianza nauseante Condition/&ConditionStaggeringSmiteEnemyDescription=Sei colpito da un danno psichico. Condition/&ConditionStaggeringSmiteEnemyTitle=Punizione sconcertante diff --git a/SolastaUnfinishedBusiness/Translations/it/SubClasses/MartialTactician-it.txt b/SolastaUnfinishedBusiness/Translations/it/SubClasses/MartialTactician-it.txt index f67f955eef..a899cdfcc1 100644 --- a/SolastaUnfinishedBusiness/Translations/it/SubClasses/MartialTactician-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/SubClasses/MartialTactician-it.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=Acquisisci esperienza con un'a Feature/&FeatureSetTacticianHonedCraftTitle=Abilità affinata Feature/&FeatureSetTacticianSharpMindDescription=Ottieni competenza con un'abilità a tua scelta. Feature/&FeatureSetTacticianSharpMindTitle=Mente lucida -Feature/&FeatureSetTacticianTacticalAwarenessDescription=Finché non sei incapacitato, ottieni i seguenti vantaggi:\n• Una volta per turno, il tuo attacco con l'arma infligge danni extra pari al tuo bonus di competenza.\n• Gli attacchi di opportunità che effettui vengono effettuati con vantaggio.\n• Gli attacchi di opportunità contro di te vengono effettuati con svantaggio. -Feature/&FeatureSetTacticianTacticalAwarenessTitle=Consapevolezza tattica +Feature/&FeatureSetTacticianTacticalAwarenessDescription=Durante il combattimento, riacquisti un dado superiorità all'inizio di ogni tuo turno. +Feature/&FeatureSetTacticianTacticalAwarenessTitle=Maestro della guerra Feature/&FeatureTacticianGambitDieSizeD10Description=Il tuo dado superiorità viene aggiornato a D10. Feature/&FeatureTacticianGambitDieSizeD10Title=Dimensione del dado di superiorità (d10) Feature/&FeatureTacticianGambitDieSizeD12Description=Il tuo dado superiorità viene aggiornato a D12. diff --git a/SolastaUnfinishedBusiness/Translations/ja/Spells/Spells04-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Spells/Spells04-ja.txt index 5e206adffe..e559c9dae4 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Spells/Spells04-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Spells/Spells04-ja.txt @@ -13,7 +13,17 @@ Condition/&ConditionElementalBaneTitle=エレメンタルベイン: {0} Condition/&ConditionIrresistiblePerformanceDescription=手や口を必要とする動作は実行できませんが、それ以外の場合は通常どおり動作できます。 Condition/&ConditionIrresistiblePerformanceTitle=ダイナ・モー・ハム Condition/&ConditionPsionicBlastTitle=混乱した心 -Condition/&ConditionSickeningRadianceDescription=あなたは 1 レベルの疲労状態になり、半径 5 フィート内に薄暗い緑がかった光を発します。この光により、あなたは透明になることができなくなります。 +Condition/&ConditionSickeningRadianceDescription=あなたは半径 5 フィートに薄暗い光を放ちます。この光により、あなたは透明になることができなくなります。 +Condition/&ConditionSickeningRadianceExhausted1Description=能力判定に不利があります。 +Condition/&ConditionSickeningRadianceExhausted1Title=疲れ果てた1 +Condition/&ConditionSickeningRadianceExhausted2Description=あなたの速度は半分になり、能力判定に不利になります。 +Condition/&ConditionSickeningRadianceExhausted2Title=疲れ果てた2 +Condition/&ConditionSickeningRadianceExhausted3Description=あなたの速度は半分になり、能力値判定、攻撃ロール、セーヴィングスローに不利が生じます。 +Condition/&ConditionSickeningRadianceExhausted3Title=疲れ果てた3 +Condition/&ConditionSickeningRadianceExhausted4Description=あなたの速度と最大ヒットポイントは半分になり、能力値チェック、攻撃ロール、セーヴィングスローに不利になります。 +Condition/&ConditionSickeningRadianceExhausted4Title=疲れ果てた4 +Condition/&ConditionSickeningRadianceExhausted5Description=あなたの移動速度は 0 になり、最大ヒット ポイントは半分になり、能力値チェック、攻撃ロール、セーヴィング スローに不利が生じます。 +Condition/&ConditionSickeningRadianceExhausted5Title=疲れ果てた5 Condition/&ConditionSickeningRadianceTitle=不快な輝き Condition/&ConditionStaggeringSmiteEnemyDescription=精神的なダメージを受けてしまいます。 Condition/&ConditionStaggeringSmiteEnemyTitle=よろめきのスマイト diff --git a/SolastaUnfinishedBusiness/Translations/ja/SubClasses/MartialTactician-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/SubClasses/MartialTactician-ja.txt index c456c037a7..16817e352c 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/SubClasses/MartialTactician-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/SubClasses/MartialTactician-ja.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=選択したスキルまたは Feature/&FeatureSetTacticianHonedCraftTitle=研ぎ澄まされたスキル Feature/&FeatureSetTacticianSharpMindDescription=選択したスキルで熟練度を高めます。 Feature/&FeatureSetTacticianSharpMindTitle=鋭い知性 -Feature/&FeatureSetTacticianTacticalAwarenessDescription=無力化されていない間、あなたは以下の利益を得ます:\n• 1 ターンに 1 回、あなたの武器攻撃はあなたの熟練度ボーナスに等しい追加ダメージを与えます。\n• あなたが行う機会攻撃は有利に行われます。\n• あなたに対する機会攻撃は不利に行われます。 -Feature/&FeatureSetTacticianTacticalAwarenessTitle=戦術的認識 +Feature/&FeatureSetTacticianTacticalAwarenessDescription=戦闘中、各ターンの開始時に優勢ダイスを 1 つ回復します。 +Feature/&FeatureSetTacticianTacticalAwarenessTitle=戦争の達人 Feature/&FeatureTacticianGambitDieSizeD10Description=あなたの優位性ダイスは D10 にアップグレードされます。 Feature/&FeatureTacticianGambitDieSizeD10Title=優れたダイサイズ (d10) Feature/&FeatureTacticianGambitDieSizeD12Description=あなたの優位性ダイスは D12 にアップグレードされます。 diff --git a/SolastaUnfinishedBusiness/Translations/ko/Spells/Spells04-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Spells/Spells04-ko.txt index fbe93aa8fb..52b0308e22 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Spells/Spells04-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Spells/Spells04-ko.txt @@ -13,7 +13,17 @@ Condition/&ConditionElementalBaneTitle=엘리멘탈 베인: {0} Condition/&ConditionIrresistiblePerformanceDescription=손이나 입이 필요한 작업은 수행할 수 없지만 그 외에는 정상적으로 행동할 수 있습니다. Condition/&ConditionIrresistiblePerformanceTitle=디나-모에 훔 Condition/&ConditionPsionicBlastTitle=혼란스러운 마음 -Condition/&ConditionSickeningRadianceDescription=당신은 한 단계의 피로를 겪고 5피트 반경 내에서 희미한 녹색 빛을 발산합니다. 이 빛은 당신이 눈에 보이지 않는 것을 불가능하게 만듭니다. +Condition/&ConditionSickeningRadianceDescription=반경 5피트 범위에서 희미한 빛을 방출합니다. 이 빛은 당신이 눈에 보이지 않는 것을 불가능하게 만듭니다. +Condition/&ConditionSickeningRadianceExhausted1Description=능력치 판정에 불이익을 받습니다. +Condition/&ConditionSickeningRadianceExhausted1Title=지쳐 1 +Condition/&ConditionSickeningRadianceExhausted2Description=속도가 절반으로 줄어들고, 능력치 판정에 불이익을 받습니다. +Condition/&ConditionSickeningRadianceExhausted2Title=지쳐 2 +Condition/&ConditionSickeningRadianceExhausted3Description=당신의 속도는 절반으로 줄어들고 능력 판정, 공격 굴림, 내성 굴림에 불이익을 받습니다. +Condition/&ConditionSickeningRadianceExhausted3Title=지쳐 3 +Condition/&ConditionSickeningRadianceExhausted4Description=당신의 속도와 최대 체력은 절반으로 줄어들고, 능력 체크, 공격 굴림, 내성 굴림에 불이익을 받습니다. +Condition/&ConditionSickeningRadianceExhausted4Title=지쳐 4 +Condition/&ConditionSickeningRadianceExhausted5Description=속도는 0이고, 최대 체력은 절반으로 줄어들며, 능력 판정, 공격 굴림, 내성 굴림에 불이익을 받습니다. +Condition/&ConditionSickeningRadianceExhausted5Title=지쳐 5 Condition/&ConditionSickeningRadianceTitle=역겨운 광채 Condition/&ConditionStaggeringSmiteEnemyDescription=정신적 피해를 입게 됩니다. Condition/&ConditionStaggeringSmiteEnemyTitle=엄청난 일격 diff --git a/SolastaUnfinishedBusiness/Translations/ko/SubClasses/MartialTactician-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/SubClasses/MartialTactician-ko.txt index 1a17254bd5..2658693452 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/SubClasses/MartialTactician-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/SubClasses/MartialTactician-ko.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=선택한 기술이나 도구 Feature/&FeatureSetTacticianHonedCraftTitle=연마된 스킬 Feature/&FeatureSetTacticianSharpMindDescription=선택한 기술로 숙련도를 높이세요. Feature/&FeatureSetTacticianSharpMindTitle=날카로운 마음 -Feature/&FeatureSetTacticianTacticalAwarenessDescription=무력화되지 않은 동안에는 다음과 같은 이점을 얻습니다.\n• 턴당 한 번, 무기 공격은 숙련도 보너스와 동일한 추가 피해를 줍니다.\n• 기회 공격은 유리하게 수행됩니다.\n• 당신에 대한 기회 공격은 불리하게 수행됩니다. -Feature/&FeatureSetTacticianTacticalAwarenessTitle=전술적 인식 +Feature/&FeatureSetTacticianTacticalAwarenessDescription=전투 중에 당신은 매 턴 시작 시 우월 주사위를 얻습니다. +Feature/&FeatureSetTacticianTacticalAwarenessTitle=전쟁의 달인 Feature/&FeatureTacticianGambitDieSizeD10Description=당신의 우월성 주사위가 D10으로 업그레이드되었습니다. Feature/&FeatureTacticianGambitDieSizeD10Title=우수성 다이 크기(d10) Feature/&FeatureTacticianGambitDieSizeD12Description=당신의 우월성 주사위가 D12로 업그레이드되었습니다. diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Spells/Spells04-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Spells/Spells04-pt-BR.txt index 9be442bd21..489361b257 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Spells/Spells04-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Spells/Spells04-pt-BR.txt @@ -13,7 +13,17 @@ Condition/&ConditionElementalBaneTitle=Maldição Elemental: {0} Condition/&ConditionIrresistiblePerformanceDescription=Você não pode realizar nenhuma ação que exija as mãos ou a boca, mas pode agir normalmente. Condition/&ConditionIrresistiblePerformanceTitle=Dinah-Moe Humm Condition/&ConditionPsionicBlastTitle=Mente confusa -Condition/&ConditionSickeningRadianceDescription=Você sofre um nível de exaustão e emite uma luz fraca e esverdeada em um raio de 1,5 metro. Esta luz torna impossível que você fique invisível. +Condition/&ConditionSickeningRadianceDescription=Você emite uma luz fraca em um raio de 1,5 metro. Esta luz torna impossível que você fique invisível. +Condition/&ConditionSickeningRadianceExhausted1Description=Você tem desvantagem em testes de habilidade. +Condition/&ConditionSickeningRadianceExhausted1Title=Exausto 1 +Condition/&ConditionSickeningRadianceExhausted2Description=Sua velocidade é reduzida pela metade e você tem desvantagem em testes de habilidade. +Condition/&ConditionSickeningRadianceExhausted2Title=Exausto 2 +Condition/&ConditionSickeningRadianceExhausted3Description=Sua velocidade é reduzida pela metade e você tem desvantagem em testes de habilidade, jogadas de ataque e testes de resistência. +Condition/&ConditionSickeningRadianceExhausted3Title=Exausto 3 +Condition/&ConditionSickeningRadianceExhausted4Description=Sua velocidade e pontos de vida máximos são reduzidos pela metade e você tem desvantagem em testes de habilidade, jogadas de ataque e testes de resistência. +Condition/&ConditionSickeningRadianceExhausted4Title=Exausto 4 +Condition/&ConditionSickeningRadianceExhausted5Description=Sua velocidade é 0, seus pontos de vida máximos são reduzidos à metade e você tem desvantagem em testes de habilidade, jogadas de ataque e testes de resistência. +Condition/&ConditionSickeningRadianceExhausted5Title=Exausto 5 Condition/&ConditionSickeningRadianceTitle=Radiância Enjoativa Condition/&ConditionStaggeringSmiteEnemyDescription=Você é atingido por dano psíquico. Condition/&ConditionStaggeringSmiteEnemyTitle=Golpe impressionante diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/MartialTactician-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/MartialTactician-pt-BR.txt index c9ce241c71..6932bb7a5f 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/MartialTactician-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/MartialTactician-pt-BR.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=Ganhe experiência com uma hab Feature/&FeatureSetTacticianHonedCraftTitle=Habilidade aprimorada Feature/&FeatureSetTacticianSharpMindDescription=Ganhe proficiência com uma habilidade de sua escolha. Feature/&FeatureSetTacticianSharpMindTitle=Mente afiada -Feature/&FeatureSetTacticianTacticalAwarenessDescription=Enquanto não estiver incapacitado, você ganha os seguintes benefícios:\n• Uma vez por turno, seu ataque com arma causa dano extra igual ao seu bônus de proficiência.\n• Os ataques de oportunidade que você realiza são realizados com vantagem.\n• Ataques de oportunidade contra você são feitos com desvantagem. -Feature/&FeatureSetTacticianTacticalAwarenessTitle=Consciência Tática +Feature/&FeatureSetTacticianTacticalAwarenessDescription=Durante o combate, você recupera um dado de superioridade no início de cada um de seus turnos. +Feature/&FeatureSetTacticianTacticalAwarenessTitle=Mestre da Guerra Feature/&FeatureTacticianGambitDieSizeD10Description=Seu dado de superioridade é atualizado para D10. Feature/&FeatureTacticianGambitDieSizeD10Title=Tamanho do dado de superioridade (d10) Feature/&FeatureTacticianGambitDieSizeD12Description=Seu dado de superioridade é atualizado para D12. diff --git a/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt index 295091cfba..f7b5f1a8ac 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt @@ -13,7 +13,17 @@ Condition/&ConditionElementalBaneTitle=Проклятье стихий: {0} Condition/&ConditionIrresistiblePerformanceDescription=Вы не можете выполнять никаких действий, требующих использования рук или рта, но в остальном можете действовать нормально. Condition/&ConditionIrresistiblePerformanceTitle=Неотразимое исполнение Condition/&ConditionPsionicBlastTitle=Затуманенный разум -Condition/&ConditionSickeningRadianceDescription=Вы получили одну степень истощения и испускаете тусклый зеленоватый свет в радиусе 5 футов. Этот свет делает невозможным получение преимуществ от невидимости. +Condition/&ConditionSickeningRadianceDescription=Вы излучаете тусклый свет в радиусе 5 футов. Этот свет лишает вас возможности быть невидимым. +Condition/&ConditionSickeningRadianceExhausted1Description=У вас есть помеха при проверках способностей. +Condition/&ConditionSickeningRadianceExhausted1Title=Измученный 1 +Condition/&ConditionSickeningRadianceExhausted2Description=Ваша скорость уменьшается вдвое, и вы получаете помеху при проверках способностей. +Condition/&ConditionSickeningRadianceExhausted2Title=Измученный 2 +Condition/&ConditionSickeningRadianceExhausted3Description=Ваша скорость уменьшается вдвое, и вы получаете помеху при проверках характеристик, бросках атаки и спасбросках. +Condition/&ConditionSickeningRadianceExhausted3Title=Измученный 3 +Condition/&ConditionSickeningRadianceExhausted4Description=Ваша скорость и максимальное количество очков жизни уменьшаются вдвое, и вы получаете помеху при проверках характеристик, бросках атаки и спасбросках. +Condition/&ConditionSickeningRadianceExhausted4Title=Измученный 4 +Condition/&ConditionSickeningRadianceExhausted5Description=Ваша скорость равна 0, максимальное количество очков здоровья уменьшено вдвое, и вы получаете помеху при проверках способностей, бросках атаки и спасбросках. +Condition/&ConditionSickeningRadianceExhausted5Title=Устал 5 Condition/&ConditionSickeningRadianceTitle=Болезненное сияние Condition/&ConditionStaggeringSmiteEnemyDescription=Вас поразили психическим уроном. Condition/&ConditionStaggeringSmiteEnemyTitle=Оглушающая кара diff --git a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/MartialTactician-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/MartialTactician-ru.txt index a36584cbe5..638b5a9241 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/MartialTactician-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/MartialTactician-ru.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=Вы получаете ком Feature/&FeatureSetTacticianHonedCraftTitle=Отточенное ремесло Feature/&FeatureSetTacticianSharpMindDescription=Вы получаете владение одним навыком по вашему выбору. Feature/&FeatureSetTacticianSharpMindTitle=Острый ум -Feature/&FeatureSetTacticianTacticalAwarenessDescription=Пока вы не недееспособны, вы получаете следующие преимущества:\n• Раз в ход ваша атака оружием наносит дополнительный урон, равный вашему бонусу мастерства.\n• Атаки по возможности, которые вы производите, совершаются с преимуществом.\n• Атаки по возможности против вас совершаются с помехой. -Feature/&FeatureSetTacticianTacticalAwarenessTitle=Тактическая осведомлённость +Feature/&FeatureSetTacticianTacticalAwarenessDescription=Во время боя вы восстанавливаете кубик превосходства в начале каждого своего хода. +Feature/&FeatureSetTacticianTacticalAwarenessTitle=Мастер войны Feature/&FeatureTacticianGambitDieSizeD10Description=Ваша кость превосходства улучшена до D10. Feature/&FeatureTacticianGambitDieSizeD10Title=Размер кости превосходства (d10) Feature/&FeatureTacticianGambitDieSizeD12Description=Ваша кость превосходства улучшена до D12. diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Spells/Spells04-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Spells/Spells04-zh-CN.txt index b10e6e32f5..e343af48b6 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Spells/Spells04-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Spells/Spells04-zh-CN.txt @@ -13,7 +13,17 @@ Condition/&ConditionElementalBaneTitle=元素灾厄:{0} Condition/&ConditionIrresistiblePerformanceDescription=你无法执行任何需要用手或嘴但可以正常行动的动作。 Condition/&ConditionIrresistiblePerformanceTitle=动人演出 Condition/&ConditionPsionicBlastTitle=心绪混乱 -Condition/&ConditionSickeningRadianceDescription=您会感到一级疲劳,并在 5 英尺半径范围内发出暗淡的绿光。这束光会让您无法隐形。 +Condition/&ConditionSickeningRadianceDescription=你发出半径 5 英尺的微弱光芒。这束光芒使你无法隐身。 +Condition/&ConditionSickeningRadianceExhausted1Description=你在能力检定上处于劣势。 +Condition/&ConditionSickeningRadianceExhausted1Title=精疲力尽 1 +Condition/&ConditionSickeningRadianceExhausted2Description=你的速度减半,并且在能力检定上处于劣势。 +Condition/&ConditionSickeningRadianceExhausted2Title=精疲力尽 2 +Condition/&ConditionSickeningRadianceExhausted3Description=你的速度减半,并且在能力检定、攻击检定和豁免检定中处于劣势。 +Condition/&ConditionSickeningRadianceExhausted3Title=精疲力尽 3 +Condition/&ConditionSickeningRadianceExhausted4Description=你的速度和最大生命值减半,并且在能力检定、攻击掷骰和豁免检定中处于劣势。 +Condition/&ConditionSickeningRadianceExhausted4Title=筋疲力尽 4 +Condition/&ConditionSickeningRadianceExhausted5Description=您的速度为 0,最大生命值减半,并且您在能力检定、攻击掷骰和豁免检定中处于劣势。 +Condition/&ConditionSickeningRadianceExhausted5Title=精疲力尽 5 Condition/&ConditionSickeningRadianceTitle=令人作呕的光芒 Condition/&ConditionStaggeringSmiteEnemyDescription=你受到心灵伤害。 Condition/&ConditionStaggeringSmiteEnemyTitle=惊惧斩 diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/MartialTactician-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/MartialTactician-zh-CN.txt index ab16e5a5e2..141f43b9b7 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/MartialTactician-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/MartialTactician-zh-CN.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=获得你选择的技能或工 Feature/&FeatureSetTacticianHonedCraftTitle=砥砺技能 Feature/&FeatureSetTacticianSharpMindDescription=获得你选择的技能熟练项。 Feature/&FeatureSetTacticianSharpMindTitle=欺骗思想 -Feature/&FeatureSetTacticianTacticalAwarenessDescription=当你没有失能时,你将获得以下好处:\n• 每回合一次,你的武器攻击会造成相当于你熟练加值的额外伤害。\n• 你进行的借机攻击具有优势。\n• 对你的借机攻击具有劣势。 -Feature/&FeatureSetTacticianTacticalAwarenessTitle=战术意识 +Feature/&FeatureSetTacticianTacticalAwarenessDescription=在战斗中,你会在每个回合开始时重新获得一个优势骰子。 +Feature/&FeatureSetTacticianTacticalAwarenessTitle=战争大师 Feature/&FeatureTacticianGambitDieSizeD10Description=你的卓越骰升级为 d10。 Feature/&FeatureTacticianGambitDieSizeD10Title=卓越骰大小 (d10) Feature/&FeatureTacticianGambitDieSizeD12Description=你的卓越骰升级为 d12。 From eff2223d9dd8f28b9d36dba1e340e13c4e744f62 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 14:11:46 -0700 Subject: [PATCH 52/91] update collaterals --- .../UnfinishedBusinessBlueprints/Assets.txt | 19 ++- .../MartialTactician.json | 6 +- .../ConditionSickeningRadiance.json | 1 - .../ConditionSickeningRadianceExhausted1.json | 157 +++++++++++++++++ .../ConditionSickeningRadianceExhausted2.json | 158 +++++++++++++++++ .../ConditionSickeningRadianceExhausted3.json | 160 ++++++++++++++++++ .../ConditionSickeningRadianceExhausted4.json | 160 ++++++++++++++++++ .../ConditionSickeningRadianceExhausted5.json | 160 ++++++++++++++++++ .../FeatureSetTacticianTacticalAwareness.json | 13 +- ...ionalDamageTacticianTacticalAwareness.json | 75 -------- ...tAffinitySickeningRadianceExhausted3.json} | 12 +- .../ConditionAffinitySickeningRadiance.json | 4 +- ...owAffinitySickeningRadianceExhausted3.json | 117 +++++++++++++ Documentation/Spells.md | 2 +- Documentation/Subclasses.md | 23 ++- 15 files changed, 947 insertions(+), 120 deletions(-) create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted1.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted2.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted3.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted4.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted5.json rename Diagnostics/UnfinishedBusinessBlueprints/{FeatureDefinitionFeatureSet => FeatureDefinition}/FeatureSetTacticianTacticalAwareness.json (64%) delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageTacticianTacticalAwareness.json rename Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/{CombatAffinityTacticianTacticalAwareness.json => CombatAffinitySickeningRadianceExhausted3.json} (83%) create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionSavingThrowAffinity/SavingThrowAffinitySickeningRadianceExhausted3.json diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index d14cd73c49..80772d4b52 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -1127,6 +1127,11 @@ ConditionShelterFromEnergyDamageNecrotic ConditionDefinition ConditionDefinition ConditionShelterFromEnergyDamageRadiant ConditionDefinition ConditionDefinition b526fa38-0a7e-50ea-a5f2-41de5a744caf ConditionShelterFromEnergyDamageThunder ConditionDefinition ConditionDefinition 7ea42934-33a0-5eac-a2f2-cfe75f9dbd56 ConditionSickeningRadiance ConditionDefinition ConditionDefinition 8e8f5489-4e47-5457-9038-7e3193e4686e +ConditionSickeningRadianceExhausted1 ConditionDefinition ConditionDefinition 294beaa0-e0ab-568f-9329-0b999035977c +ConditionSickeningRadianceExhausted2 ConditionDefinition ConditionDefinition f5eb4f9d-4c35-5d36-b3a1-fd0376d67ef7 +ConditionSickeningRadianceExhausted3 ConditionDefinition ConditionDefinition 509fb040-ddec-56b5-95c4-71b80fb9f314 +ConditionSickeningRadianceExhausted4 ConditionDefinition ConditionDefinition f1432c9c-b863-51a5-8bf2-dd0534f70b05 +ConditionSickeningRadianceExhausted5 ConditionDefinition ConditionDefinition eddc23ff-9c5e-5fa2-9dac-28c3c4d038e9 ConditionSickeningRadianceMark ConditionDefinition ConditionDefinition e7c8bace-e63a-541f-a8a1-74ef61590f5a ConditionSignatureSpells ConditionDefinition ConditionDefinition 7d490159-e05b-5c67-ab55-1763b1188d63 ConditionSkinOfRetribution ConditionDefinition ConditionDefinition 756ee728-5506-5f03-b552-b94004839697 @@ -1770,7 +1775,6 @@ AdditionalDamageStaggeringSmite FeatureDefinitionAdditionalDamage FeatureDefinit AdditionalDamageStrikeWithTheWind FeatureDefinitionAdditionalDamage FeatureDefinition fd6f9ee6-54aa-5eef-867a-01ba35c35370 AdditionalDamageSuckerPunch FeatureDefinitionAdditionalDamage FeatureDefinition bfc08531-f4aa-58f4-94f7-f0b06ad757a4 AdditionalDamageSunlightBlade FeatureDefinitionAdditionalDamage FeatureDefinition 1bd17141-b9ba-5502-a83b-00a846cf4c39 -AdditionalDamageTacticianTacticalAwareness FeatureDefinitionAdditionalDamage FeatureDefinition 8578c41d-ae85-5346-9f89-020167d17c71 AdditionalDamageTraditionLightRadiantStrikesLuminousKiD6 FeatureDefinitionAdditionalDamage FeatureDefinition 3c4f70ef-3a56-5436-b35a-3228d9e5fdaa AdditionalDamageTraditionLightRadiantStrikesShineD6 FeatureDefinitionAdditionalDamage FeatureDefinition 46d19e1f-83a7-5678-8cd6-edbc7b4b5e7c AdditionalDamageWayOfSilhouetteStrikeTheVitals FeatureDefinitionAdditionalDamage FeatureDefinition faeef1b6-3f34-5a9b-a26f-539f4d3bd1fd @@ -2126,10 +2130,10 @@ CombatAffinityRoguishAcrobatFluidMotions FeatureDefinitionCombatAffinity Feature CombatAffinityRoguishBladeCallerBladeMark FeatureDefinitionCombatAffinity FeatureDefinition 39dca5c9-fd26-5e7b-b7e9-dfc2112b4c52 CombatAffinityRoguishOpportunistExposedWeakness FeatureDefinitionCombatAffinity FeatureDefinition 1f120df2-b5c1-5b8e-8f46-f1adc5d0b8f2 CombatAffinityRoyalKnightSpiritedSurge FeatureDefinitionCombatAffinity FeatureDefinition d42e798e-d827-549d-a6dc-d07844fec664 +CombatAffinitySickeningRadianceExhausted3 FeatureDefinitionCombatAffinity FeatureDefinition ed0bba01-a7af-58ff-b7e1-96650ddf5d76 CombatAffinitySoulExpulsion FeatureDefinitionCombatAffinity FeatureDefinition 2a270517-7b68-53ba-a2c7-36e7b6f36fd1 CombatAffinityStaggeringSmite FeatureDefinitionCombatAffinity FeatureDefinition bec893d0-747c-520d-a494-b5c9551b2c73 CombatAffinityStrikeWithTheWind FeatureDefinitionCombatAffinity FeatureDefinition 4a9706fc-be59-5efb-a679-00d13298b19f -CombatAffinityTacticianTacticalAwareness FeatureDefinitionCombatAffinity FeatureDefinition 9f8adbd8-c957-518c-a49d-c8679f32983b CombatAffinityTaunted FeatureDefinitionCombatAffinity FeatureDefinition 8a9c32ac-8aaa-5888-8a17-1f78d723b3a4 CombatAffinityWayOfSilhouetteSilhouetteStep FeatureDefinitionCombatAffinity FeatureDefinition a926a6b4-aa9f-5279-8aa6-fd357e746f91 CombatAffinityWayOfTheDiscordanceTurmoil FeatureDefinitionCombatAffinity FeatureDefinition 38754e5f-6a63-5bc1-8918-19c944826d34 @@ -2624,7 +2628,7 @@ FeatureSetSpellStoringItem FeatureDefinitionFeatureSet FeatureDefinition 60af9dd FeatureSetTacticianBattleClarity FeatureDefinitionFeatureSet FeatureDefinition f473d7da-4fae-5487-8385-08c181825099 FeatureSetTacticianHonedCraft FeatureDefinitionFeatureSet FeatureDefinition c3440a1e-19b8-5765-9b3a-682310d7f982 FeatureSetTacticianSharpMind FeatureDefinitionFeatureSet FeatureDefinition 4db7f8bb-dad9-5fa6-a85b-db8a535e0484 -FeatureSetTacticianTacticalAwareness FeatureDefinitionFeatureSet FeatureDefinition 706ec4b9-110b-5c3e-b6b5-fb1078e639bf +FeatureSetTacticianTacticalAwareness FeatureDefinition FeatureDefinition 706ec4b9-110b-5c3e-b6b5-fb1078e639bf FeatureSetTieflingFeralDemonicWings FeatureDefinitionFeatureSet FeatureDefinition d96ff7e0-0226-51e9-bc79-d1720563a88f FeatureSetTraditionLightPurityOfLight FeatureDefinitionFeatureSet FeatureDefinition 7acaa801-4e92-5327-a8e2-8e5d27466612 FeatureSetTraditionOpenHandQuiveringPalm FeatureDefinitionFeatureSet FeatureDefinition a9ec5960-aa15-581d-bf38-1a2b1d2d0fe5 @@ -4117,6 +4121,7 @@ SavingThrowAffinityRoguishArcaneScoundrelDistractingAmbush FeatureDefinitionSavi SavingThrowAffinityRoguishOpportunistDebilitatingStrike FeatureDefinitionSavingThrowAffinity FeatureDefinition 9606365c-6ee2-55cd-9a61-915464c3f215 SavingThrowAffinityRoguishOpportunistImprovedDebilitatingStrike FeatureDefinitionSavingThrowAffinity FeatureDefinition cdea0f41-45eb-564e-a83d-13a6a7787d3d SavingThrowAffinityRoyalKnightSpiritedSurge FeatureDefinitionSavingThrowAffinity FeatureDefinition a88e2078-1c9a-57ea-8789-506e26ac6489 +SavingThrowAffinitySickeningRadianceExhausted3 FeatureDefinitionSavingThrowAffinity FeatureDefinition bb2186f4-5847-5e4a-a3dc-f613ad953662 SavingThrowAffinitySorcerousSorrAkkathDarknessAffinity FeatureDefinitionSavingThrowAffinity FeatureDefinition 01d34613-f72b-596c-872f-ec312d19f26b SavingThrowAffinitySoulExpulsion FeatureDefinitionSavingThrowAffinity FeatureDefinition 76748aa6-df93-5909-8f20-1f7577272aa7 SavingThrowAffinitySpellMasterSpellResistance FeatureDefinitionSavingThrowAffinity FeatureDefinition 5f04b83f-67b6-58ee-856d-ec98d007859c @@ -4392,7 +4397,6 @@ AdditionalDamageStaggeringSmite FeatureDefinitionAdditionalDamage FeatureDefinit AdditionalDamageStrikeWithTheWind FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage fd6f9ee6-54aa-5eef-867a-01ba35c35370 AdditionalDamageSuckerPunch FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage bfc08531-f4aa-58f4-94f7-f0b06ad757a4 AdditionalDamageSunlightBlade FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage 1bd17141-b9ba-5502-a83b-00a846cf4c39 -AdditionalDamageTacticianTacticalAwareness FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage 8578c41d-ae85-5346-9f89-020167d17c71 AdditionalDamageTraditionLightRadiantStrikesLuminousKiD6 FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage 3c4f70ef-3a56-5436-b35a-3228d9e5fdaa AdditionalDamageTraditionLightRadiantStrikesShineD6 FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage 46d19e1f-83a7-5678-8cd6-edbc7b4b5e7c AdditionalDamageWayOfSilhouetteStrikeTheVitals FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage faeef1b6-3f34-5a9b-a26f-539f4d3bd1fd @@ -4558,10 +4562,10 @@ CombatAffinityRoguishAcrobatFluidMotions FeatureDefinitionCombatAffinity Feature CombatAffinityRoguishBladeCallerBladeMark FeatureDefinitionCombatAffinity FeatureDefinitionAffinity 39dca5c9-fd26-5e7b-b7e9-dfc2112b4c52 CombatAffinityRoguishOpportunistExposedWeakness FeatureDefinitionCombatAffinity FeatureDefinitionAffinity 1f120df2-b5c1-5b8e-8f46-f1adc5d0b8f2 CombatAffinityRoyalKnightSpiritedSurge FeatureDefinitionCombatAffinity FeatureDefinitionAffinity d42e798e-d827-549d-a6dc-d07844fec664 +CombatAffinitySickeningRadianceExhausted3 FeatureDefinitionCombatAffinity FeatureDefinitionAffinity ed0bba01-a7af-58ff-b7e1-96650ddf5d76 CombatAffinitySoulExpulsion FeatureDefinitionCombatAffinity FeatureDefinitionAffinity 2a270517-7b68-53ba-a2c7-36e7b6f36fd1 CombatAffinityStaggeringSmite FeatureDefinitionCombatAffinity FeatureDefinitionAffinity bec893d0-747c-520d-a494-b5c9551b2c73 CombatAffinityStrikeWithTheWind FeatureDefinitionCombatAffinity FeatureDefinitionAffinity 4a9706fc-be59-5efb-a679-00d13298b19f -CombatAffinityTacticianTacticalAwareness FeatureDefinitionCombatAffinity FeatureDefinitionAffinity 9f8adbd8-c957-518c-a49d-c8679f32983b CombatAffinityTaunted FeatureDefinitionCombatAffinity FeatureDefinitionAffinity 8a9c32ac-8aaa-5888-8a17-1f78d723b3a4 CombatAffinityWayOfSilhouetteSilhouetteStep FeatureDefinitionCombatAffinity FeatureDefinitionAffinity a926a6b4-aa9f-5279-8aa6-fd357e746f91 CombatAffinityWayOfTheDiscordanceTurmoil FeatureDefinitionCombatAffinity FeatureDefinitionAffinity 38754e5f-6a63-5bc1-8918-19c944826d34 @@ -4822,6 +4826,7 @@ SavingThrowAffinityRoguishArcaneScoundrelDistractingAmbush FeatureDefinitionSavi SavingThrowAffinityRoguishOpportunistDebilitatingStrike FeatureDefinitionSavingThrowAffinity FeatureDefinitionAffinity 9606365c-6ee2-55cd-9a61-915464c3f215 SavingThrowAffinityRoguishOpportunistImprovedDebilitatingStrike FeatureDefinitionSavingThrowAffinity FeatureDefinitionAffinity cdea0f41-45eb-564e-a83d-13a6a7787d3d SavingThrowAffinityRoyalKnightSpiritedSurge FeatureDefinitionSavingThrowAffinity FeatureDefinitionAffinity a88e2078-1c9a-57ea-8789-506e26ac6489 +SavingThrowAffinitySickeningRadianceExhausted3 FeatureDefinitionSavingThrowAffinity FeatureDefinitionAffinity bb2186f4-5847-5e4a-a3dc-f613ad953662 SavingThrowAffinitySorcerousSorrAkkathDarknessAffinity FeatureDefinitionSavingThrowAffinity FeatureDefinitionAffinity 01d34613-f72b-596c-872f-ec312d19f26b SavingThrowAffinitySoulExpulsion FeatureDefinitionSavingThrowAffinity FeatureDefinitionAffinity 76748aa6-df93-5909-8f20-1f7577272aa7 SavingThrowAffinitySpellMasterSpellResistance FeatureDefinitionSavingThrowAffinity FeatureDefinitionAffinity 5f04b83f-67b6-58ee-856d-ec98d007859c @@ -5185,10 +5190,10 @@ CombatAffinityRoguishAcrobatFluidMotions FeatureDefinitionCombatAffinity Feature CombatAffinityRoguishBladeCallerBladeMark FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity 39dca5c9-fd26-5e7b-b7e9-dfc2112b4c52 CombatAffinityRoguishOpportunistExposedWeakness FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity 1f120df2-b5c1-5b8e-8f46-f1adc5d0b8f2 CombatAffinityRoyalKnightSpiritedSurge FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity d42e798e-d827-549d-a6dc-d07844fec664 +CombatAffinitySickeningRadianceExhausted3 FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity ed0bba01-a7af-58ff-b7e1-96650ddf5d76 CombatAffinitySoulExpulsion FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity 2a270517-7b68-53ba-a2c7-36e7b6f36fd1 CombatAffinityStaggeringSmite FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity bec893d0-747c-520d-a494-b5c9551b2c73 CombatAffinityStrikeWithTheWind FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity 4a9706fc-be59-5efb-a679-00d13298b19f -CombatAffinityTacticianTacticalAwareness FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity 9f8adbd8-c957-518c-a49d-c8679f32983b CombatAffinityTaunted FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity 8a9c32ac-8aaa-5888-8a17-1f78d723b3a4 CombatAffinityWayOfSilhouetteSilhouetteStep FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity a926a6b4-aa9f-5279-8aa6-fd357e746f91 CombatAffinityWayOfTheDiscordanceTurmoil FeatureDefinitionCombatAffinity FeatureDefinitionCombatAffinity 38754e5f-6a63-5bc1-8918-19c944826d34 @@ -5504,7 +5509,6 @@ FeatureSetSpellStoringItem FeatureDefinitionFeatureSet FeatureDefinitionFeatureS FeatureSetTacticianBattleClarity FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet f473d7da-4fae-5487-8385-08c181825099 FeatureSetTacticianHonedCraft FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet c3440a1e-19b8-5765-9b3a-682310d7f982 FeatureSetTacticianSharpMind FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet 4db7f8bb-dad9-5fa6-a85b-db8a535e0484 -FeatureSetTacticianTacticalAwareness FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet 706ec4b9-110b-5c3e-b6b5-fb1078e639bf FeatureSetTieflingFeralDemonicWings FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet d96ff7e0-0226-51e9-bc79-d1720563a88f FeatureSetTraditionLightPurityOfLight FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet 7acaa801-4e92-5327-a8e2-8e5d27466612 FeatureSetTraditionOpenHandQuiveringPalm FeatureDefinitionFeatureSet FeatureDefinitionFeatureSet a9ec5960-aa15-581d-bf38-1a2b1d2d0fe5 @@ -6914,6 +6918,7 @@ SavingThrowAffinityRoguishArcaneScoundrelDistractingAmbush FeatureDefinitionSavi SavingThrowAffinityRoguishOpportunistDebilitatingStrike FeatureDefinitionSavingThrowAffinity FeatureDefinitionSavingThrowAffinity 9606365c-6ee2-55cd-9a61-915464c3f215 SavingThrowAffinityRoguishOpportunistImprovedDebilitatingStrike FeatureDefinitionSavingThrowAffinity FeatureDefinitionSavingThrowAffinity cdea0f41-45eb-564e-a83d-13a6a7787d3d SavingThrowAffinityRoyalKnightSpiritedSurge FeatureDefinitionSavingThrowAffinity FeatureDefinitionSavingThrowAffinity a88e2078-1c9a-57ea-8789-506e26ac6489 +SavingThrowAffinitySickeningRadianceExhausted3 FeatureDefinitionSavingThrowAffinity FeatureDefinitionSavingThrowAffinity bb2186f4-5847-5e4a-a3dc-f613ad953662 SavingThrowAffinitySorcerousSorrAkkathDarknessAffinity FeatureDefinitionSavingThrowAffinity FeatureDefinitionSavingThrowAffinity 01d34613-f72b-596c-872f-ec312d19f26b SavingThrowAffinitySoulExpulsion FeatureDefinitionSavingThrowAffinity FeatureDefinitionSavingThrowAffinity 76748aa6-df93-5909-8f20-1f7577272aa7 SavingThrowAffinitySpellMasterSpellResistance FeatureDefinitionSavingThrowAffinity FeatureDefinitionSavingThrowAffinity 5f04b83f-67b6-58ee-856d-ec98d007859c diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialTactician.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialTactician.json index 630278b635..e62a176599 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialTactician.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialTactician.json @@ -78,17 +78,17 @@ }, { "$type": "FeatureUnlockByLevel, Assembly-CSharp", - "featureDefinition": "Definition:InvocationPoolGambitUnlearn:444d8f27-2c19-580a-bb72-1fe476ae5ec6", + "featureDefinition": "Definition:FeatureSetTacticianTacticalAwareness:706ec4b9-110b-5c3e-b6b5-fb1078e639bf", "level": 18 }, { "$type": "FeatureUnlockByLevel, Assembly-CSharp", - "featureDefinition": "Definition:FeatureTacticianGambitDieSizeD12:e40d45bb-fc63-55a5-8d99-56561ba957fc", + "featureDefinition": "Definition:InvocationPoolGambitUnlearn:444d8f27-2c19-580a-bb72-1fe476ae5ec6", "level": 18 }, { "$type": "FeatureUnlockByLevel, Assembly-CSharp", - "featureDefinition": "Definition:FeatureSetTacticianTacticalAwareness:706ec4b9-110b-5c3e-b6b5-fb1078e639bf", + "featureDefinition": "Definition:FeatureTacticianGambitDieSizeD12:e40d45bb-fc63-55a5-8d99-56561ba957fc", "level": 18 } ], diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadiance.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadiance.json index e430e68a23..2e45c2bc24 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadiance.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadiance.json @@ -4,7 +4,6 @@ "parentCondition": null, "conditionType": "Detrimental", "features": [ - "Definition:AbilityCheckAffinityConditionExhausted:addbff861499fbc47a0c9505f58a5404", "Definition:ConditionAffinitySickeningRadiance:fc61f40d-38f7-5a41-b8fb-d6e4464a3135" ], "allowMultipleInstances": false, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted1.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted1.json new file mode 100644 index 0000000000..b04b19c57b --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted1.json @@ -0,0 +1,157 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Detrimental", + "features": [ + "Definition:AbilityCheckAffinityConditionExhausted:addbff861499fbc47a0c9505f58a5404" + ], + "allowMultipleInstances": false, + "silentWhenAdded": false, + "silentWhenRemoved": false, + "silentWhenRefreshed": false, + "terminateWhenRemoved": false, + "specialDuration": true, + "durationType": "Minute", + "durationParameterDie": "D1", + "durationParameter": 10, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "4b0997de69b577c41a5016decc0f4a07", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "4758c4ccb17a08a43a638c9e8c7b5060", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "d7cb33f68cae01844a5aed6064f61fdc", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": true, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Condition/&ConditionSickeningRadianceExhausted1Title", + "description": "Condition/&ConditionSickeningRadianceExhausted1Description", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "c361725f0a278ea4bbef108455b7029d", + "m_SubObjectName": "ConditionProne", + "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "294beaa0-e0ab-568f-9329-0b999035977c", + "contentPack": 9999, + "name": "ConditionSickeningRadianceExhausted1" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted2.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted2.json new file mode 100644 index 0000000000..7b0f57e0cc --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted2.json @@ -0,0 +1,158 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Detrimental", + "features": [ + "Definition:AbilityCheckAffinityConditionExhausted:addbff861499fbc47a0c9505f58a5404", + "Definition:MovementAffinityConditionSlowed:d1cc31d667617454e9751c34328770d4" + ], + "allowMultipleInstances": false, + "silentWhenAdded": false, + "silentWhenRemoved": false, + "silentWhenRefreshed": false, + "terminateWhenRemoved": false, + "specialDuration": true, + "durationType": "Minute", + "durationParameterDie": "D1", + "durationParameter": 10, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "4b0997de69b577c41a5016decc0f4a07", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "4758c4ccb17a08a43a638c9e8c7b5060", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "d7cb33f68cae01844a5aed6064f61fdc", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": true, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Condition/&ConditionSickeningRadianceExhausted2Title", + "description": "Condition/&ConditionSickeningRadianceExhausted2Description", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "c361725f0a278ea4bbef108455b7029d", + "m_SubObjectName": "ConditionProne", + "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "f5eb4f9d-4c35-5d36-b3a1-fd0376d67ef7", + "contentPack": 9999, + "name": "ConditionSickeningRadianceExhausted2" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted3.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted3.json new file mode 100644 index 0000000000..f8f9ef1d74 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted3.json @@ -0,0 +1,160 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Detrimental", + "features": [ + "Definition:AbilityCheckAffinityConditionExhausted:addbff861499fbc47a0c9505f58a5404", + "Definition:CombatAffinitySickeningRadianceExhausted3:ed0bba01-a7af-58ff-b7e1-96650ddf5d76", + "Definition:MovementAffinityConditionSlowed:d1cc31d667617454e9751c34328770d4", + "Definition:SavingThrowAffinitySickeningRadianceExhausted3:bb2186f4-5847-5e4a-a3dc-f613ad953662" + ], + "allowMultipleInstances": false, + "silentWhenAdded": false, + "silentWhenRemoved": false, + "silentWhenRefreshed": false, + "terminateWhenRemoved": false, + "specialDuration": true, + "durationType": "Minute", + "durationParameterDie": "D1", + "durationParameter": 10, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "4b0997de69b577c41a5016decc0f4a07", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "4758c4ccb17a08a43a638c9e8c7b5060", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "d7cb33f68cae01844a5aed6064f61fdc", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": true, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Condition/&ConditionSickeningRadianceExhausted3Title", + "description": "Condition/&ConditionSickeningRadianceExhausted3Description", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "c361725f0a278ea4bbef108455b7029d", + "m_SubObjectName": "ConditionProne", + "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "509fb040-ddec-56b5-95c4-71b80fb9f314", + "contentPack": 9999, + "name": "ConditionSickeningRadianceExhausted3" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted4.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted4.json new file mode 100644 index 0000000000..bafcabf1c1 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted4.json @@ -0,0 +1,160 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Detrimental", + "features": [ + "Definition:AbilityCheckAffinityConditionExhausted:addbff861499fbc47a0c9505f58a5404", + "Definition:CombatAffinitySickeningRadianceExhausted3:ed0bba01-a7af-58ff-b7e1-96650ddf5d76", + "Definition:MovementAffinityConditionSlowed:d1cc31d667617454e9751c34328770d4", + "Definition:SavingThrowAffinitySickeningRadianceExhausted3:bb2186f4-5847-5e4a-a3dc-f613ad953662" + ], + "allowMultipleInstances": false, + "silentWhenAdded": false, + "silentWhenRemoved": false, + "silentWhenRefreshed": false, + "terminateWhenRemoved": false, + "specialDuration": true, + "durationType": "Minute", + "durationParameterDie": "D1", + "durationParameter": 10, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "4b0997de69b577c41a5016decc0f4a07", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "4758c4ccb17a08a43a638c9e8c7b5060", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "d7cb33f68cae01844a5aed6064f61fdc", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": true, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Condition/&ConditionSickeningRadianceExhausted4Title", + "description": "Condition/&ConditionSickeningRadianceExhausted4Description", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "c361725f0a278ea4bbef108455b7029d", + "m_SubObjectName": "ConditionProne", + "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "f1432c9c-b863-51a5-8bf2-dd0534f70b05", + "contentPack": 9999, + "name": "ConditionSickeningRadianceExhausted4" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted5.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted5.json new file mode 100644 index 0000000000..889dac5850 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted5.json @@ -0,0 +1,160 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Detrimental", + "features": [ + "Definition:AbilityCheckAffinityConditionExhausted:addbff861499fbc47a0c9505f58a5404", + "Definition:CombatAffinitySickeningRadianceExhausted3:ed0bba01-a7af-58ff-b7e1-96650ddf5d76", + "Definition:MovementAffinityConditionRestrained:ed9d9d5986e47f845819579f936ee8cc", + "Definition:SavingThrowAffinitySickeningRadianceExhausted3:bb2186f4-5847-5e4a-a3dc-f613ad953662" + ], + "allowMultipleInstances": false, + "silentWhenAdded": false, + "silentWhenRemoved": false, + "silentWhenRefreshed": false, + "terminateWhenRemoved": false, + "specialDuration": true, + "durationType": "Minute", + "durationParameterDie": "D1", + "durationParameter": 10, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "4b0997de69b577c41a5016decc0f4a07", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "4758c4ccb17a08a43a638c9e8c7b5060", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "d7cb33f68cae01844a5aed6064f61fdc", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": true, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Condition/&ConditionSickeningRadianceExhausted5Title", + "description": "Condition/&ConditionSickeningRadianceExhausted5Description", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "c361725f0a278ea4bbef108455b7029d", + "m_SubObjectName": "ConditionProne", + "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "eddc23ff-9c5e-5fa2-9dac-28c3c4d038e9", + "contentPack": 9999, + "name": "ConditionSickeningRadianceExhausted5" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetTacticianTacticalAwareness.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinition/FeatureSetTacticianTacticalAwareness.json similarity index 64% rename from Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetTacticianTacticalAwareness.json rename to Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinition/FeatureSetTacticianTacticalAwareness.json index 65d1e97897..a9c5165147 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionFeatureSet/FeatureSetTacticianTacticalAwareness.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinition/FeatureSetTacticianTacticalAwareness.json @@ -1,16 +1,5 @@ { - "$type": "FeatureDefinitionFeatureSet, Assembly-CSharp", - "featureSet": [ - "Definition:AdditionalDamageTacticianTacticalAwareness:8578c41d-ae85-5346-9f89-020167d17c71", - "Definition:CombatAffinityTacticianTacticalAwareness:9f8adbd8-c957-518c-a49d-c8679f32983b" - ], - "mode": "Union", - "ancestryDamageTypeMap": [], - "ancestryType": "Sorcerer", - "defaultSelection": 0, - "uniqueChoices": false, - "enumerateInDescription": false, - "hasRacialAffinity": false, + "$type": "FeatureDefinition, Assembly-CSharp", "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", "hidden": false, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageTacticianTacticalAwareness.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageTacticianTacticalAwareness.json deleted file mode 100644 index 25550632ce..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageTacticianTacticalAwareness.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "$type": "FeatureDefinitionAdditionalDamage, Assembly-CSharp", - "notificationTag": "TacticalAwareness", - "limitedUsage": "OncePerTurn", - "firstTargetOnly": true, - "targetSide": "Enemy", - "otherSimilarAdditionalDamages": [], - "triggerCondition": "AlwaysActive", - "requiredProperty": "None", - "attackModeOnly": false, - "attackOnly": false, - "requiredTargetCondition": null, - "requiredTargetSenseType": "Darkvision", - "requiredTargetCreatureTag": "", - "requiredCharacterFamily": null, - "requiredSpecificSpell": null, - "requiredAncestryType": "Sorcerer", - "damageValueDetermination": "ProficiencyBonus", - "flatBonus": 0, - "damageDieType": "D6", - "damageDiceNumber": 0, - "additionalDamageType": "SameAsBaseDamage", - "specificDamageType": "Radiant", - "ancestryTypeForDamageType": "Sorcerer", - "damageAdvancement": "None", - "diceByRankTable": [], - "familiesWithAdditionalDice": [], - "familiesDiceNumber": 1, - "ignoreCriticalDoubleDice": false, - "hasSavingThrow": false, - "savingThrowAbility": "Dexterity", - "dcComputation": "FixedValue", - "savingThrowDC": 10, - "savingThrowDCAbilityModifier": "Dexterity", - "damageSaveAffinity": "None", - "conditionOperations": [], - "addLightSource": false, - "lightSourceForm": null, - "impactParticleReference": null, - "particlesBasedOnAncestryDamageType": false, - "ancestryType": "Sorcerer", - "acidImpactParticleReference": null, - "coldImpactParticleReference": null, - "fireImpactParticleReference": null, - "lightningImpactParticleReference": null, - "poisonImpactParticleReference": null, - "computeDescription": false, - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "8578c41d-ae85-5346-9f89-020167d17c71", - "contentPack": 9999, - "name": "AdditionalDamageTacticianTacticalAwareness" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityTacticianTacticalAwareness.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinitySickeningRadianceExhausted3.json similarity index 83% rename from Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityTacticianTacticalAwareness.json rename to Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinitySickeningRadianceExhausted3.json index 8d290b7028..9b1e52d9f9 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityTacticianTacticalAwareness.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinitySickeningRadianceExhausted3.json @@ -3,13 +3,13 @@ "initiativeAffinity": "None", "canRageToOvercomeSurprise": false, "attackOfOpportunityImmunity": false, - "attackOfOpportunityOnMeAdvantageType": "Disadvantage", + "attackOfOpportunityOnMeAdvantageType": "None", "attackOnMeAdvantage": "None", "attackOnMeCountLimit": -1, "autoCritical": false, "criticalHitImmunity": false, "myAttackAffinityFilter": "Always", - "myAttackAdvantage": "None", + "myAttackAdvantage": "Disadvantage", "ignoreCover": false, "permanentCover": "None", "ignoreRangeAdvantage": false, @@ -35,8 +35,8 @@ "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", "hidden": false, - "title": "Feature/&FeatureSetTacticianTacticalAwarenessTitle", - "description": "Feature/&FeatureSetTacticianTacticalAwarenessDescription", + "title": "Condition/&ConditionSickeningRadianceExhausted3Title", + "description": "Feature/&NoContentTitle", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", "m_AssetGUID": "", @@ -56,7 +56,7 @@ "usedInValleyDLC": false }, "contentCopyright": "UserContent", - "guid": "9f8adbd8-c957-518c-a49d-c8679f32983b", + "guid": "ed0bba01-a7af-58ff-b7e1-96650ddf5d76", "contentPack": 9999, - "name": "CombatAffinityTacticianTacticalAwareness" + "name": "CombatAffinitySickeningRadianceExhausted3" } \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinitySickeningRadiance.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinitySickeningRadiance.json index b39eded101..8de006da51 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinitySickeningRadiance.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinitySickeningRadiance.json @@ -11,8 +11,8 @@ "otherCharacterFamilyRestrictions": [], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", + "hidden": false, + "title": "Condition/&ConditionSickeningRadianceTitle", "description": "Feature/&NoContentTitle", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionSavingThrowAffinity/SavingThrowAffinitySickeningRadianceExhausted3.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionSavingThrowAffinity/SavingThrowAffinitySickeningRadianceExhausted3.json new file mode 100644 index 0000000000..55a79afbbf --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionSavingThrowAffinity/SavingThrowAffinitySickeningRadianceExhausted3.json @@ -0,0 +1,117 @@ +{ + "$type": "FeatureDefinitionSavingThrowAffinity, Assembly-CSharp", + "useControllerSavingThrows": false, + "priorityAbilityScore": "", + "affinityGroups": [ + { + "$type": "FeatureDefinitionSavingThrowAffinity+SavingThrowAffinityGroup, Assembly-CSharp", + "abilityScoreName": "Charisma", + "affinity": "Disadvantage", + "savingThrowModifierType": "AddDice", + "savingThrowModifierDiceNumber": 0, + "savingThrowModifierDieType": "D1", + "restrictedForms": [], + "restrictedSchools": [], + "restrictedSpells": [], + "restrictedPowers": [], + "savingThrowContext": "None" + }, + { + "$type": "FeatureDefinitionSavingThrowAffinity+SavingThrowAffinityGroup, Assembly-CSharp", + "abilityScoreName": "Constitution", + "affinity": "Disadvantage", + "savingThrowModifierType": "AddDice", + "savingThrowModifierDiceNumber": 0, + "savingThrowModifierDieType": "D1", + "restrictedForms": [], + "restrictedSchools": [], + "restrictedSpells": [], + "restrictedPowers": [], + "savingThrowContext": "None" + }, + { + "$type": "FeatureDefinitionSavingThrowAffinity+SavingThrowAffinityGroup, Assembly-CSharp", + "abilityScoreName": "Dexterity", + "affinity": "Disadvantage", + "savingThrowModifierType": "AddDice", + "savingThrowModifierDiceNumber": 0, + "savingThrowModifierDieType": "D1", + "restrictedForms": [], + "restrictedSchools": [], + "restrictedSpells": [], + "restrictedPowers": [], + "savingThrowContext": "None" + }, + { + "$type": "FeatureDefinitionSavingThrowAffinity+SavingThrowAffinityGroup, Assembly-CSharp", + "abilityScoreName": "Intelligence", + "affinity": "Disadvantage", + "savingThrowModifierType": "AddDice", + "savingThrowModifierDiceNumber": 0, + "savingThrowModifierDieType": "D1", + "restrictedForms": [], + "restrictedSchools": [], + "restrictedSpells": [], + "restrictedPowers": [], + "savingThrowContext": "None" + }, + { + "$type": "FeatureDefinitionSavingThrowAffinity+SavingThrowAffinityGroup, Assembly-CSharp", + "abilityScoreName": "Strength", + "affinity": "Disadvantage", + "savingThrowModifierType": "AddDice", + "savingThrowModifierDiceNumber": 0, + "savingThrowModifierDieType": "D1", + "restrictedForms": [], + "restrictedSchools": [], + "restrictedSpells": [], + "restrictedPowers": [], + "savingThrowContext": "None" + }, + { + "$type": "FeatureDefinitionSavingThrowAffinity+SavingThrowAffinityGroup, Assembly-CSharp", + "abilityScoreName": "Wisdom", + "affinity": "Disadvantage", + "savingThrowModifierType": "AddDice", + "savingThrowModifierDiceNumber": 0, + "savingThrowModifierDieType": "D1", + "restrictedForms": [], + "restrictedSchools": [], + "restrictedSpells": [], + "restrictedPowers": [], + "savingThrowContext": "None" + } + ], + "indomitableSavingThrows": 0, + "canBorrowLuck": false, + "canUseDiamondSoul": false, + "myselfFamilyRestrictions": [], + "otherCharacterFamilyRestrictions": [], + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Condition/&ConditionSickeningRadianceExhausted3Title", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "bb2186f4-5847-5e4a-a3dc-f613ad953662", + "contentPack": 9999, + "name": "SavingThrowAffinitySickeningRadianceExhausted3" +} \ No newline at end of file diff --git a/Documentation/Spells.md b/Documentation/Spells.md index cb99567775..2f085d0176 100644 --- a/Documentation/Spells.md +++ b/Documentation/Spells.md @@ -942,7 +942,7 @@ You unleash a shimmering lance of psychic power from your forehead at a creature # 229. - *Sickening Radiance* © (V,S) level 4 Evocation [Concentration] [UB] -Dim, greenish light spreads within a 30-foot-radius sphere centered on a point you choose within range. The light spreads around corners, and it lasts until the spell ends. When a creature moves into the spell's area for the first time on a turn or starts its turn there, that creature must succeed on a Constitution saving throw or take 4d10 radiant damage, and it suffers one level of exhaustion and emits a dim, greenish light in a 5-foot radius. This light makes it impossible for the creature to benefit from being invisible. The light and any levels of exhaustion caused by this spell go away when the spell ends. +Dim light spreads within a 30-foot-radius sphere centered on a point you choose within range. The light spreads around corners, and it lasts until the spell ends. When a creature moves into the spell's area for the first time on a turn or starts its turn there, that creature must succeed on a Constitution saving throw or take 4d10 radiant damage, and it suffers one level of exhaustion and emits a dim light in a 5-foot radius. This light makes it impossible for the creature to benefit from being invisible. The light and any levels of exhaustion caused by this spell go away when the spell ends. # 230. - *Staggering Smite* © (V) level 4 Evocation [Concentration] [UB] diff --git a/Documentation/Subclasses.md b/Documentation/Subclasses.md index ab6c585cef..00b0758223 100644 --- a/Documentation/Subclasses.md +++ b/Documentation/Subclasses.md @@ -1166,12 +1166,12 @@ Bards of the College of Swords entertain through daring feats of weapon prowess. ### Level 3 -* Audacious Whirl +* Blade Flourish Whenever you take the Attack action on your turn, your walking speed increases by 10 feet until the end of the turn, and if a melee weapon attack that you make as part of this action hits a creature, you can expend one use of your Bardic Inspiration to cause the weapon to deal extra damage to the target you hit. The damage equals the number you roll on the Bardic Inspiration die. You also choose a particular maneuver: -• Defensive Whirl: You add the Bardic Inspiration die roll to your AC until the start of your next turn. -• Slashing Whirl: You deal the extra damage to all other enemy creatures within 5 feet of you. -• Mobile Whirl: You gain benefits of disengage until the end of your turn. +• Defensive Flourish: You add the Bardic Inspiration die roll to your AC until the start of your next turn. +• Slashing Flourish: You deal the extra damage to all other enemy creatures within 5 feet of you. +• Mobile Flourish: You gain benefits of disengage until the end of your turn. * Bonus Proficiencies @@ -1195,9 +1195,9 @@ You gain an extra attack and can now attack up to 2 times in your turn. ### Level 14 -* Masterful Whirl +* Master's Flourish -Whenever you use an Audacious Whirl option, you can roll a D6 and use it instead of expending a Bardic Inspiration die. +Whenever you use a Blade Flourish option, you can roll a D6 and use it instead of expending a Bardic Inspiration die. @@ -3059,6 +3059,10 @@ You can replace one maneuver you know with a new one. ### Level 18 +* Master of Warfare + +During combat, you regain a superiority die at the start of each of your turns. + * Replace Maneuver You can replace one maneuver you know with a new one. @@ -3067,13 +3071,6 @@ You can replace one maneuver you know with a new one. Your superiority die is upgraded to D12. -* Tactical Awareness - -While you are not incapacitated, you gain the following benefits: -• Once per turn, your weapon attack deals extra damage equal to your proficiency bonus. -• Attacks of Opportunity you make are done with advantage. -• Attacks of Opportunity against you are done with disadvantage. - ## 4. Champion [SOL] From 234b2baf20f5b6fc8984cd8984c5674bd2dabb7d Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 14:12:40 -0700 Subject: [PATCH 53/91] fix coordinated attack staying longer than it should and replaced BM level 18th --- .../Subclasses/Builders/GambitsBuilders.cs | 37 +++++++++---- .../Subclasses/MartialTactician.cs | 52 +++++-------------- 2 files changed, 42 insertions(+), 47 deletions(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs b/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs index 3faf1baac8..7a378f452c 100644 --- a/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs +++ b/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs @@ -516,7 +516,17 @@ internal static void BuildGambits() .Build()) .AddToDB(); - reactionPower.AddCustomSubFeatures(ForcePowerUseInSpendPowerAction.Marker); + var conditionReaction = ConditionDefinitionBuilder + .Create($"Condition{name}") + .SetGuiPresentation(name, Category.Feature, Sprites.ConditionGambit) + .SetPossessive() + .SetFeatures(reactionPower) + .AddCustomSubFeatures(AddUsablePowersFromCondition.Marker) + .AddToDB(); + + reactionPower.AddCustomSubFeatures( + ForcePowerUseInSpendPowerAction.Marker, + new CoordinatedAttackReaction(conditionReaction)); power = FeatureDefinitionPowerBuilder .Create($"Power{name}Activate") @@ -532,14 +542,7 @@ internal static void BuildGambits() .SetDurationData(DurationType.Round) .SetEffectForms( EffectFormBuilder.ConditionForm(conditionGambitDieDamage), - EffectFormBuilder.ConditionForm( - ConditionDefinitionBuilder - .Create($"Condition{name}") - .SetGuiPresentation(name, Category.Feature, Sprites.ConditionGambit) - .SetPossessive() - .SetFeatures(reactionPower) - .AddCustomSubFeatures(AddUsablePowersFromCondition.Marker) - .AddToDB())) + EffectFormBuilder.ConditionForm(conditionReaction)) .Build()) .AddToDB(); @@ -1851,6 +1854,22 @@ public IEnumerator OnTryAlterOutcomeAttack( // Coordinated Attack // + private sealed class CoordinatedAttackReaction(ConditionDefinition conditionReaction) : IPowerOrSpellFinishedByMe + { + public IEnumerator OnPowerOrSpellFinishedByMe(CharacterActionMagicEffect action, BaseDefinition baseDefinition) + { + var rulesetAttacker = action.ActingCharacter.RulesetCharacter; + + if (rulesetAttacker.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionReaction.Name, out var activeCondition)) + { + rulesetAttacker.RemoveCondition(activeCondition); + } + + yield break; + } + } + private sealed class CoordinatedAttack : IFilterTargetingCharacter, ISelectPositionAfterCharacter, IFilterTargetingPosition, IPowerOrSpellFinishedByMe, IIgnoreInvisibilityInterruptionCheck diff --git a/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs b/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs index 83fa8e7883..d2023cbb7f 100644 --- a/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs +++ b/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs @@ -4,6 +4,7 @@ using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Api.Helpers; +using SolastaUnfinishedBusiness.Behaviors; using SolastaUnfinishedBusiness.Behaviors.Specific; using SolastaUnfinishedBusiness.Builders; using SolastaUnfinishedBusiness.Builders.Features; @@ -205,30 +206,16 @@ private static FeatureDefinition BuildGambitDieSize(DieType size) .AddToDB(); } - private static FeatureDefinitionFeatureSet BuildTacticalAwareness() + private static FeatureDefinition BuildTacticalAwareness() { - var additionalDamageTacticalAwareness = FeatureDefinitionAdditionalDamageBuilder - .Create("AdditionalDamageTacticianTacticalAwareness") - .SetGuiPresentationNoContent(true) - .SetNotificationTag("TacticalAwareness") - .SetDamageValueDetermination(AdditionalDamageValueDetermination.ProficiencyBonus) - .SetFrequencyLimit(FeatureLimitedUsage.OncePerTurn) - .AddToDB(); - - var combatAffinityTacticalAwareness = FeatureDefinitionCombatAffinityBuilder - .Create("CombatAffinityTacticianTacticalAwareness") - .SetGuiPresentation("FeatureSetTacticianTacticalAwareness", Category.Feature) - .SetAttackOfOpportunityOnMeAdvantage(AdvantageType.Disadvantage) - .AddToDB(); - - combatAffinityTacticalAwareness.AddCustomSubFeatures( - new PhysicalAttackInitiatedByMeTacticalAwareness(combatAffinityTacticalAwareness)); - - return FeatureDefinitionFeatureSetBuilder + var feature = FeatureDefinitionBuilder .Create("FeatureSetTacticianTacticalAwareness") .SetGuiPresentation(Category.Feature) - .AddFeatureSet(additionalDamageTacticalAwareness, combatAffinityTacticalAwareness) .AddToDB(); + + feature.AddCustomSubFeatures(new CharacterTurnStartListenerTacticalAwareness(feature)); + + return feature; } private class PhysicalAttackFinishedByMeAdaptiveStrategy( @@ -330,27 +317,16 @@ public void OnConditionRemoved(RulesetCharacter target, RulesetCondition ruleset } } - private sealed class PhysicalAttackInitiatedByMeTacticalAwareness( - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - FeatureDefinition featureDefinition) : IPhysicalAttackInitiatedByMe + private sealed class CharacterTurnStartListenerTacticalAwareness(FeatureDefinition featureDefinition) + : ICharacterTurnStartListener { - public IEnumerator OnPhysicalAttackInitiatedByMe( - GameLocationBattleManager battleManager, - CharacterAction action, - GameLocationCharacter attacker, - GameLocationCharacter defender, - ActionModifier attackModifier, - RulesetAttackMode attackMode) + public void OnCharacterTurnStarted(GameLocationCharacter character) { - if ((action.ActionType is not ActionDefinitions.ActionType.Reaction || - attackMode.AttackTags.Contains(AttacksOfOpportunity.NotAoOTag)) && - !attackMode.attackTags.Contains(TacticalAwareness)) - { - yield break; - } + var rulesetCharacter = character.RulesetCharacter; + var usablePower = PowerProvider.Get(GambitsBuilders.GambitPool, rulesetCharacter); - attackModifier.attackAdvantageTrends.Add( - new TrendInfo(1, FeatureSourceType.CharacterFeature, featureDefinition.Name, featureDefinition)); + usablePower.RepayUse(); + rulesetCharacter.LogCharacterUsedFeature(featureDefinition); } } } From 9de9d02623a9cc59027b350a11a5c517fd519087 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 16:47:51 -0700 Subject: [PATCH 54/91] tweak Exhausted conditions on Sickening Radiance --- .../UnfinishedBusinessBlueprints/Assets.txt | 2 + .../ConditionSickeningRadianceExhausted1.json | 6 +- .../ConditionSickeningRadianceExhausted2.json | 6 +- .../ConditionSickeningRadianceExhausted3.json | 6 +- .../ConditionSickeningRadianceExhausted4.json | 11 +- .../ConditionSickeningRadianceExhausted5.json | 11 +- ...teModifierSickeningRadianceExhausted4.json | 37 +++ .../Api/DatabaseHelper-RELEASE.cs | 4 + .../Spells/SpellBuildersLevel04.cs | 231 ++++++++++++++++-- 9 files changed, 277 insertions(+), 37 deletions(-) create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAttributeModifier/AttributeModifierSickeningRadianceExhausted4.json diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 80772d4b52..79de577ef8 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -1942,6 +1942,7 @@ AttributeModifierRangerWildMasterHitPoints FeatureDefinitionAttributeModifier Fe AttributeModifierRoguishAcrobatProtector FeatureDefinitionAttributeModifier FeatureDefinition c67d0548-f770-521a-99a5-e8b2c13ed77a AttributeModifierRoguishDuelistSureFooted FeatureDefinitionAttributeModifier FeatureDefinition 909eb80e-64aa-55b2-8460-778554872e7f AttributeModifierRopeItUp FeatureDefinitionAttributeModifier FeatureDefinition 0cb22e4d-85a2-58b6-a418-e3e38de57520 +AttributeModifierSickeningRadianceExhausted4 FeatureDefinitionAttributeModifier FeatureDefinition 86a93483-bc8e-5c63-8b08-36224f6860be AttributeModifierSorcererSorceryPointsBonus2 FeatureDefinitionAttributeModifier FeatureDefinition c83ac082-07a8-539e-b6ae-157e640b3a3c AttributeModifierSorcerousSorrAkkathDarknessAffinity FeatureDefinitionAttributeModifier FeatureDefinition e7705f1d-4447-5473-ab90-afc44a172f5d AttributeModifierSorcerousSpellBladeBattleReflexes FeatureDefinitionAttributeModifier FeatureDefinition 2fa53023-9a27-55ae-a981-42b9aefc5992 @@ -5002,6 +5003,7 @@ AttributeModifierRangerWildMasterHitPoints FeatureDefinitionAttributeModifier Fe AttributeModifierRoguishAcrobatProtector FeatureDefinitionAttributeModifier FeatureDefinitionAttributeModifier c67d0548-f770-521a-99a5-e8b2c13ed77a AttributeModifierRoguishDuelistSureFooted FeatureDefinitionAttributeModifier FeatureDefinitionAttributeModifier 909eb80e-64aa-55b2-8460-778554872e7f AttributeModifierRopeItUp FeatureDefinitionAttributeModifier FeatureDefinitionAttributeModifier 0cb22e4d-85a2-58b6-a418-e3e38de57520 +AttributeModifierSickeningRadianceExhausted4 FeatureDefinitionAttributeModifier FeatureDefinitionAttributeModifier 86a93483-bc8e-5c63-8b08-36224f6860be AttributeModifierSorcererSorceryPointsBonus2 FeatureDefinitionAttributeModifier FeatureDefinitionAttributeModifier c83ac082-07a8-539e-b6ae-157e640b3a3c AttributeModifierSorcerousSorrAkkathDarknessAffinity FeatureDefinitionAttributeModifier FeatureDefinitionAttributeModifier e7705f1d-4447-5473-ab90-afc44a172f5d AttributeModifierSorcerousSpellBladeBattleReflexes FeatureDefinitionAttributeModifier FeatureDefinitionAttributeModifier 2fa53023-9a27-55ae-a981-42b9aefc5992 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted1.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted1.json index b04b19c57b..9c5d91f25b 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted1.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted1.json @@ -8,7 +8,7 @@ ], "allowMultipleInstances": false, "silentWhenAdded": false, - "silentWhenRemoved": false, + "silentWhenRemoved": true, "silentWhenRefreshed": false, "terminateWhenRemoved": false, "specialDuration": true, @@ -134,8 +134,8 @@ "description": "Condition/&ConditionSickeningRadianceExhausted1Description", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "c361725f0a278ea4bbef108455b7029d", - "m_SubObjectName": "ConditionProne", + "m_AssetGUID": "2ef089b370685bd44833c621471d754e", + "m_SubObjectName": "ConditionExhausted", "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, "color": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted2.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted2.json index 7b0f57e0cc..115d685107 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted2.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted2.json @@ -9,7 +9,7 @@ ], "allowMultipleInstances": false, "silentWhenAdded": false, - "silentWhenRemoved": false, + "silentWhenRemoved": true, "silentWhenRefreshed": false, "terminateWhenRemoved": false, "specialDuration": true, @@ -135,8 +135,8 @@ "description": "Condition/&ConditionSickeningRadianceExhausted2Description", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "c361725f0a278ea4bbef108455b7029d", - "m_SubObjectName": "ConditionProne", + "m_AssetGUID": "2ef089b370685bd44833c621471d754e", + "m_SubObjectName": "ConditionExhausted", "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, "color": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted3.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted3.json index f8f9ef1d74..453f3a631b 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted3.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted3.json @@ -11,7 +11,7 @@ ], "allowMultipleInstances": false, "silentWhenAdded": false, - "silentWhenRemoved": false, + "silentWhenRemoved": true, "silentWhenRefreshed": false, "terminateWhenRemoved": false, "specialDuration": true, @@ -137,8 +137,8 @@ "description": "Condition/&ConditionSickeningRadianceExhausted3Description", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "c361725f0a278ea4bbef108455b7029d", - "m_SubObjectName": "ConditionProne", + "m_AssetGUID": "2ef089b370685bd44833c621471d754e", + "m_SubObjectName": "ConditionExhausted", "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, "color": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted4.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted4.json index bafcabf1c1..d080861053 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted4.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted4.json @@ -5,13 +5,14 @@ "conditionType": "Detrimental", "features": [ "Definition:AbilityCheckAffinityConditionExhausted:addbff861499fbc47a0c9505f58a5404", + "Definition:AttributeModifierSickeningRadianceExhausted4:86a93483-bc8e-5c63-8b08-36224f6860be", "Definition:CombatAffinitySickeningRadianceExhausted3:ed0bba01-a7af-58ff-b7e1-96650ddf5d76", "Definition:MovementAffinityConditionSlowed:d1cc31d667617454e9751c34328770d4", "Definition:SavingThrowAffinitySickeningRadianceExhausted3:bb2186f4-5847-5e4a-a3dc-f613ad953662" ], "allowMultipleInstances": false, "silentWhenAdded": false, - "silentWhenRemoved": false, + "silentWhenRemoved": true, "silentWhenRefreshed": false, "terminateWhenRemoved": false, "specialDuration": true, @@ -91,8 +92,8 @@ "timeToWaitBeforeApplyingShader": 0.5, "timeToWaitBeforeRemovingShader": 0.5, "possessive": true, - "amountOrigin": "None", - "baseAmount": 0, + "amountOrigin": "Fixed", + "baseAmount": 1, "additiveAmount": false, "sourceAbilityBonusMinValue": 1, "subsequentOnRemoval": null, @@ -137,8 +138,8 @@ "description": "Condition/&ConditionSickeningRadianceExhausted4Description", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "c361725f0a278ea4bbef108455b7029d", - "m_SubObjectName": "ConditionProne", + "m_AssetGUID": "2ef089b370685bd44833c621471d754e", + "m_SubObjectName": "ConditionExhausted", "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, "color": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted5.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted5.json index 889dac5850..c1799fe7ce 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted5.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceExhausted5.json @@ -5,13 +5,14 @@ "conditionType": "Detrimental", "features": [ "Definition:AbilityCheckAffinityConditionExhausted:addbff861499fbc47a0c9505f58a5404", + "Definition:AttributeModifierSickeningRadianceExhausted4:86a93483-bc8e-5c63-8b08-36224f6860be", "Definition:CombatAffinitySickeningRadianceExhausted3:ed0bba01-a7af-58ff-b7e1-96650ddf5d76", "Definition:MovementAffinityConditionRestrained:ed9d9d5986e47f845819579f936ee8cc", "Definition:SavingThrowAffinitySickeningRadianceExhausted3:bb2186f4-5847-5e4a-a3dc-f613ad953662" ], "allowMultipleInstances": false, "silentWhenAdded": false, - "silentWhenRemoved": false, + "silentWhenRemoved": true, "silentWhenRefreshed": false, "terminateWhenRemoved": false, "specialDuration": true, @@ -91,8 +92,8 @@ "timeToWaitBeforeApplyingShader": 0.5, "timeToWaitBeforeRemovingShader": 0.5, "possessive": true, - "amountOrigin": "None", - "baseAmount": 0, + "amountOrigin": "Fixed", + "baseAmount": 1, "additiveAmount": false, "sourceAbilityBonusMinValue": 1, "subsequentOnRemoval": null, @@ -137,8 +138,8 @@ "description": "Condition/&ConditionSickeningRadianceExhausted5Description", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "c361725f0a278ea4bbef108455b7029d", - "m_SubObjectName": "ConditionProne", + "m_AssetGUID": "2ef089b370685bd44833c621471d754e", + "m_SubObjectName": "ConditionExhausted", "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, "color": { diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAttributeModifier/AttributeModifierSickeningRadianceExhausted4.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAttributeModifier/AttributeModifierSickeningRadianceExhausted4.json new file mode 100644 index 0000000000..7bfffee036 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAttributeModifier/AttributeModifierSickeningRadianceExhausted4.json @@ -0,0 +1,37 @@ +{ + "$type": "FeatureDefinitionAttributeModifier, Assembly-CSharp", + "modifiedAttribute": "HitPoints", + "modifierOperation": "AddConditionAmount", + "modifierValue": 1, + "modifierAbilityScore": "Constitution", + "situationalContext": "None", + "minimum1": false, + "useBonusFromCaster": false, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&NoContentTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "86a93483-bc8e-5c63-8b08-36224f6860be", + "contentPack": 9999, + "name": "AttributeModifierSickeningRadianceExhausted4" +} \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs index 274d79253d..46da214677 100644 --- a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs +++ b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs @@ -754,6 +754,7 @@ internal static class EffectProxyDefinitions { internal static EffectProxyDefinition ProxyIndomitableLight { get; } = GetDefinition("ProxyIndomitableLight"); + internal static EffectProxyDefinition ProxyDelayedBlastFireball { get; } = GetDefinition("ProxyDelayedBlastFireball"); @@ -1601,6 +1602,9 @@ internal static class FeatureDefinitionMovementAffinitys internal static FeatureDefinitionMovementAffinity MovementAffinityCarriedByWind { get; } = GetDefinition("MovementAffinityCarriedByWind"); + internal static FeatureDefinitionMovementAffinity MovementAffinityConditionSlowed { get; } = + GetDefinition("MovementAffinityConditionSlowed"); + internal static FeatureDefinitionMovementAffinity MovementAffinityConditionFlyingAdaptive { get; } = GetDefinition("MovementAffinityConditionFlyingAdaptive"); diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs index 185ca12886..d5d4ac27c9 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs @@ -331,7 +331,113 @@ internal static SpellDefinition BuildSickeningRadiance() proxy.lightSourceForm.dimAdditionalRange = 6; proxy.lightSourceForm.color = new Color(0.5f, 0.7f, 0.3f, 1.0f); - var condition = ConditionDefinitionBuilder + var conditionExhausted1 = ConditionDefinitionBuilder + .Create($"Condition{NAME}Exhausted1") + .SetGuiPresentation(Category.Condition, ConditionLethargic) + .SetConditionType(ConditionType.Detrimental) + .SetPossessive() + .SetSilent(Silent.WhenRemoved) + .SetSpecialDuration(DurationType.Minute, 10) + .SetFeatures(FeatureDefinitionAbilityCheckAffinitys.AbilityCheckAffinityConditionExhausted) + .SetConditionParticleReference(ConditionHopeless) + .AddToDB(); + + var conditionExhausted2 = ConditionDefinitionBuilder + .Create($"Condition{NAME}Exhausted2") + .SetGuiPresentation(Category.Condition, ConditionLethargic) + .SetConditionType(ConditionType.Detrimental) + .SetPossessive() + .SetSilent(Silent.WhenRemoved) + .SetSpecialDuration(DurationType.Minute, 10) + .SetFeatures( + FeatureDefinitionAbilityCheckAffinitys.AbilityCheckAffinityConditionExhausted, + FeatureDefinitionMovementAffinitys.MovementAffinityConditionSlowed) + .SetConditionParticleReference(ConditionHopeless) + .AddToDB(); + + var combatAffinityExhausted3 = FeatureDefinitionCombatAffinityBuilder + .Create($"CombatAffinity{NAME}Exhausted3") + .SetGuiPresentation($"Condition{NAME}Exhausted3", Category.Condition, Gui.NoLocalization) + .SetMyAttackAdvantage(AdvantageType.Disadvantage) + .AddToDB(); + + var savingThrowAffinityExhausted3 = FeatureDefinitionSavingThrowAffinityBuilder + .Create($"SavingThrowAffinity{NAME}Exhausted3") + .SetGuiPresentation($"Condition{NAME}Exhausted3", Category.Condition, Gui.NoLocalization) + .SetAffinities(CharacterSavingThrowAffinity.Disadvantage, false, + AttributeDefinitions.Strength, + AttributeDefinitions.Dexterity, + AttributeDefinitions.Constitution, + AttributeDefinitions.Intelligence, + AttributeDefinitions.Wisdom, + AttributeDefinitions.Charisma) + .AddToDB(); + + var conditionExhausted3 = ConditionDefinitionBuilder + .Create($"Condition{NAME}Exhausted3") + .SetGuiPresentation(Category.Condition, ConditionLethargic) + .SetConditionType(ConditionType.Detrimental) + .SetPossessive() + .SetSilent(Silent.WhenRemoved) + .SetSpecialDuration(DurationType.Minute, 10) + .SetFeatures( + FeatureDefinitionAbilityCheckAffinitys.AbilityCheckAffinityConditionExhausted, + FeatureDefinitionMovementAffinitys.MovementAffinityConditionSlowed, + combatAffinityExhausted3, + savingThrowAffinityExhausted3) + .SetConditionParticleReference(ConditionHopeless) + .AddToDB(); + + var attributeModifierExhausted4 = FeatureDefinitionAttributeModifierBuilder + .Create($"AttributeModifier{NAME}Exhausted4") + .SetGuiPresentationNoContent(true) + .SetAddConditionAmount(AttributeDefinitions.HitPoints) + .AddToDB(); + + var conditionExhausted4 = ConditionDefinitionBuilder + .Create($"Condition{NAME}Exhausted4") + .SetGuiPresentation(Category.Condition, ConditionLethargic) + .SetConditionType(ConditionType.Detrimental) + .SetPossessive() + .SetSilent(Silent.WhenRemoved) + .SetSpecialDuration(DurationType.Minute, 10) + .SetFixedAmount(1) + .SetFeatures( + FeatureDefinitionAbilityCheckAffinitys.AbilityCheckAffinityConditionExhausted, + FeatureDefinitionMovementAffinitys.MovementAffinityConditionSlowed, + combatAffinityExhausted3, + savingThrowAffinityExhausted3, + attributeModifierExhausted4) + .SetConditionParticleReference(ConditionHopeless) + .AddToDB(); + + var conditionExhausted5 = ConditionDefinitionBuilder + .Create($"Condition{NAME}Exhausted5") + .SetGuiPresentation(Category.Condition, ConditionLethargic) + .SetConditionType(ConditionType.Detrimental) + .SetPossessive() + .SetSilent(Silent.WhenRemoved) + .SetSpecialDuration(DurationType.Minute, 10) + .SetFixedAmount(1) + .SetFeatures( + FeatureDefinitionAbilityCheckAffinitys.AbilityCheckAffinityConditionExhausted, + FeatureDefinitionMovementAffinitys.MovementAffinityConditionRestrained, + combatAffinityExhausted3, + savingThrowAffinityExhausted3, + attributeModifierExhausted4) + .SetConditionParticleReference(ConditionHopeless) + .AddToDB(); + + ConditionDefinition[] conditionsExhausted = + [ + conditionExhausted1, + conditionExhausted2, + conditionExhausted3, + conditionExhausted4, + conditionExhausted5 + ]; + + var conditionSickenedRadiance = ConditionDefinitionBuilder .Create($"Condition{NAME}") .SetGuiPresentation(Category.Condition, ConditionBaned) .SetConditionType(ConditionType.Detrimental) @@ -340,21 +446,21 @@ internal static SpellDefinition BuildSickeningRadiance() .SetFeatures( FeatureDefinitionConditionAffinityBuilder .Create($"ConditionAffinity{NAME}") - .SetGuiPresentationNoContent(true) + .SetGuiPresentation($"Condition{NAME}", Category.Condition, Gui.NoLocalization) .SetConditionType(ConditionInvisibleBase) .SetConditionAffinityType(ConditionAffinityType.Immunity) - .AddToDB(), - FeatureDefinitionAbilityCheckAffinitys.AbilityCheckAffinityConditionExhausted) - .AddCustomSubFeatures(new OnConditionAddedOrRemovedSickeningRadiance()) + .AddToDB()) + .AddCustomSubFeatures(new OnConditionAddedOrRemovedSickeningRadiance(conditionsExhausted)) .AddToDB(); - condition.silentWhenRefreshed = true; + conditionSickenedRadiance.silentWhenRefreshed = true; var conditionMark = ConditionDefinitionBuilder .Create($"Condition{NAME}Mark") .SetGuiPresentationNoContent(true) .SetSilent(Silent.WhenAddedOrRemoved) - .AddCustomSubFeatures(new OnConditionAddedOrRemovedSickeningRadianceSelf(condition)) + .AddCustomSubFeatures( + new OnConditionAddedOrRemovedSickeningRadianceSelf(conditionSickenedRadiance, conditionsExhausted)) .AddToDB(); var spell = SpellDefinitionBuilder @@ -388,7 +494,7 @@ internal static SpellDefinition BuildSickeningRadiance() EffectFormBuilder .Create() .HasSavingThrow(EffectSavingThrowType.Negates) - .SetConditionForm(condition, ConditionForm.ConditionOperation.Add) + .SetConditionForm(conditionSickenedRadiance, ConditionForm.ConditionOperation.Add) .Build(), EffectFormBuilder .Create() @@ -404,8 +510,9 @@ internal static SpellDefinition BuildSickeningRadiance() return spell; } - private sealed class OnConditionAddedOrRemovedSickeningRadianceSelf(ConditionDefinition conditionSickenedRadiance) - : IOnConditionAddedOrRemoved + private sealed class OnConditionAddedOrRemovedSickeningRadianceSelf( + ConditionDefinition conditionSickenedRadiance, + params ConditionDefinition[] conditionsExhausted) : IOnConditionAddedOrRemoved { public void OnConditionAdded(RulesetCharacter target, RulesetCondition rulesetCondition) { @@ -428,21 +535,39 @@ public void OnConditionRemoved(RulesetCharacter target, RulesetCondition ruleset { rulesetContender.RemoveCondition(activeCondition); } + + foreach (var conditionExhausted in conditionsExhausted) + { + if (contender.RulesetCharacter.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionExhausted.Name, out var exhaustedCondition)) + { + rulesetContender.RemoveCondition(exhaustedCondition); + } + } } } } - private sealed class OnConditionAddedOrRemovedSickeningRadiance : IOnConditionAddedOrRemoved + private sealed class OnConditionAddedOrRemovedSickeningRadiance(params ConditionDefinition[] conditionsExhausted) + : IOnConditionAddedOrRemoved { public void OnConditionAdded(RulesetCharacter rulesetTarget, RulesetCondition rulesetCondition) { - var caster = EffectHelpers.GetCharacterByGuid(rulesetCondition.SourceGuid); + var rulesetCaster = EffectHelpers.GetCharacterByGuid(rulesetCondition.SourceGuid); + + if (rulesetCaster?.ConcentratedSpell == null) + { + return; + } - rulesetCondition.RemainingRounds = caster.ConcentratedSpell.RemainingRounds; + rulesetCondition.RemainingRounds = rulesetCaster.ConcentratedSpell.RemainingRounds; - var effectGuid = caster.ConcentratedSpell.Guid; + HandleExhaustedCondition(rulesetCaster, rulesetTarget, rulesetCondition.RemainingRounds); - if (rulesetTarget.PersonalLightSource?.EffectGuid == effectGuid) + var effectGuid = rulesetCaster.ConcentratedSpell.Guid; + + if (rulesetTarget is not (RulesetCharacterHero or RulesetCharacterMonster) || + rulesetTarget.PersonalLightSource?.EffectGuid == effectGuid) { return; } @@ -465,10 +590,17 @@ public void OnConditionAdded(RulesetCharacter rulesetTarget, RulesetCondition ru public void OnConditionRemoved(RulesetCharacter rulesetTarget, RulesetCondition rulesetCondition) { - var caster = EffectHelpers.GetCharacterByGuid(rulesetCondition.SourceGuid); - var effectGuid = caster.ConcentratedSpell.Guid; + var rulesetCaster = EffectHelpers.GetCharacterByGuid(rulesetCondition.SourceGuid); + + if (rulesetCaster?.ConcentratedSpell == null) + { + return; + } + + var effectGuid = rulesetCaster.ConcentratedSpell.Guid; - if (rulesetTarget.PersonalLightSource?.EffectGuid != effectGuid) + if (rulesetTarget is not (RulesetCharacterHero or RulesetCharacterMonster) || + rulesetTarget.PersonalLightSource?.EffectGuid != effectGuid) { return; } @@ -478,6 +610,69 @@ public void OnConditionRemoved(RulesetCharacter rulesetTarget, RulesetCondition visibilityService.RemoveCharacterLightSource(target, rulesetTarget.PersonalLightSource); } + + private void HandleExhaustedCondition( + RulesetCharacter rulesetCaster, RulesetCharacter rulesetTarget, int remainingRounds) + { + var amount = 0; + var conditionName = string.Empty; + + if (rulesetTarget.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionsExhausted[4].Name, out _)) + { + rulesetTarget.SustainDamage(1000, "DamagePure", false, rulesetCaster.Guid, null, out _); + } + else if (rulesetTarget.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionsExhausted[3].Name, out var exhaustedCondition4)) + { + conditionName = conditionsExhausted[4].Name; + + rulesetTarget.RemoveCondition(exhaustedCondition4); + } + else if (rulesetTarget.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionsExhausted[2].Name, out var exhaustedCondition3)) + { + amount = -rulesetTarget.GetAttribute(AttributeDefinitions.HitPoints).BaseValue / 2; + conditionName = conditionsExhausted[3].Name; + + rulesetTarget.RemoveCondition(exhaustedCondition3); + } + else if (rulesetTarget.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionsExhausted[1].Name, out var exhaustedCondition2)) + { + conditionName = conditionsExhausted[2].Name; + + rulesetTarget.RemoveCondition(exhaustedCondition2); + } + else if (rulesetTarget.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionsExhausted[0].Name, out var exhaustedCondition1)) + { + conditionName = conditionsExhausted[1].Name; + + rulesetTarget.RemoveCondition(exhaustedCondition1); + } + else + { + conditionName = conditionsExhausted[0].Name; + } + + if (conditionName != string.Empty) + { + rulesetTarget.InflictCondition( + conditionName, + DurationType.Round, + remainingRounds, + TurnOccurenceType.EndOfTurn, + AttributeDefinitions.TagEffect, + rulesetCaster.guid, + rulesetCaster.CurrentFaction.Name, + 1, + conditionName, + amount, + 0, + 0); + } + } } #endregion From e4b8f3bec41633625031e7cf1c931f28ff71b333 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 18:22:53 -0700 Subject: [PATCH 55/91] minor fixes --- .../Subclasses/Builders/GambitsBuilders.cs | 25 ++++++++++++------- .../Subclasses/CollegeOfAudacity.cs | 3 ++- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs b/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs index 7a378f452c..ddd2a31552 100644 --- a/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs +++ b/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs @@ -514,6 +514,7 @@ internal static void BuildGambits() .AddCustomSubFeatures(AddUsablePowersFromCondition.Marker) .AddToDB())) .Build()) + .AddCustomSubFeatures(ForcePowerUseInSpendPowerAction.Marker) .AddToDB(); var conditionReaction = ConditionDefinitionBuilder @@ -524,9 +525,7 @@ internal static void BuildGambits() .AddCustomSubFeatures(AddUsablePowersFromCondition.Marker) .AddToDB(); - reactionPower.AddCustomSubFeatures( - ForcePowerUseInSpendPowerAction.Marker, - new CoordinatedAttackReaction(conditionReaction)); + conditionReaction.AddCustomSubFeatures(new CoordinatedAttackReaction(conditionReaction)); power = FeatureDefinitionPowerBuilder .Create($"Power{name}Activate") @@ -1854,19 +1853,27 @@ public IEnumerator OnTryAlterOutcomeAttack( // Coordinated Attack // - private sealed class CoordinatedAttackReaction(ConditionDefinition conditionReaction) : IPowerOrSpellFinishedByMe + private sealed class CoordinatedAttackReaction(ConditionDefinition conditionReaction) : IPhysicalAttackFinishedByMe { - public IEnumerator OnPowerOrSpellFinishedByMe(CharacterActionMagicEffect action, BaseDefinition baseDefinition) + public IEnumerator OnPhysicalAttackFinishedByMe( + GameLocationBattleManager battleManager, + CharacterAction action, + GameLocationCharacter attacker, + GameLocationCharacter defender, + RulesetAttackMode attackMode, + RollOutcome rollOutcome, + int damageAmount) { - var rulesetAttacker = action.ActingCharacter.RulesetCharacter; + var rulesetAttacker = attacker.RulesetCharacter; - if (rulesetAttacker.TryGetConditionOfCategoryAndType( + if (rollOutcome is not (RollOutcome.Success or RollOutcome.CriticalSuccess) || + !rulesetAttacker.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, conditionReaction.Name, out var activeCondition)) { - rulesetAttacker.RemoveCondition(activeCondition); + yield break; } - yield break; + rulesetAttacker.RemoveCondition(activeCondition); } } diff --git a/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs b/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs index 2a2a10fe3e..d6d71c8c9c 100644 --- a/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs +++ b/SolastaUnfinishedBusiness/Subclasses/CollegeOfAudacity.cs @@ -477,7 +477,8 @@ public IEnumerator OnPhysicalAttackFinishedByMe( { case 0 when attacker.UsedSpecialFeatures.TryGetValue(WhirlDamage, out var damage): - var dieType = rulesetAttacker.GetBardicInspirationDieValue(); + var isMasterfulWhirl = rulesetAttacker.IsToggleEnabled(MasterfulWhirlToggle); + var dieType = isMasterfulWhirl ? DieType.D6 : rulesetAttacker.GetBardicInspirationDieValue(); rulesetAttacker.LogCharacterActivatesAbility( Gui.NoLocalization, "Feedback/&CollegeOfAudacityDefensiveWhirl", true, From 2398091c5f8adf17224f657a1166a3cbdf3e20cf Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 14 Jul 2024 20:42:38 -0700 Subject: [PATCH 56/91] rider clean up --- .../Models/SharedSpellsContext.cs | 6 +++--- .../Patches/GuiCharacterPatcher.cs | 4 +++- .../Patches/SlotStatusTablePatcher.cs | 4 +++- .../Subclasses/CircleOfTheWildfire.png | Bin 35688 -> 31570 bytes .../Subclasses/CollegeOfElegance.png | Bin 36750 -> 32088 bytes .../Subclasses/CollegeOfValiance.png | Bin 38566 -> 34216 bytes .../Resources/Subclasses/DomainNature.png | Bin 36544 -> 31739 bytes .../Resources/Subclasses/DomainTempest.png | Bin 35773 -> 31436 bytes 8 files changed, 9 insertions(+), 5 deletions(-) diff --git a/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs b/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs index 8c88b16d87..8a35707d91 100644 --- a/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SharedSpellsContext.cs @@ -22,9 +22,6 @@ internal static class SharedSpellsContext { internal const int PactMagicSlotsTab = -1; - // supports custom MaxSpellLevelOfSpellCastLevel behaviors - internal static bool UseMaxSpellLevelOfSpellCastingLevelDefaultBehavior { get; private set; } - internal static readonly Dictionary RecoverySlots = new() { { PowerCircleLandNaturalRecovery.Name, Druid }, @@ -53,6 +50,9 @@ internal static class SharedSpellsContext { MartialSpellShield.FullName, CasterProgression.OneThird } }; + // supports custom MaxSpellLevelOfSpellCastLevel behaviors + internal static bool UseMaxSpellLevelOfSpellCastingLevelDefaultBehavior { get; private set; } + // supports auto prepared spells scenarios on subs internal static CasterProgression GetCasterTypeForClassOrSubclass( [CanBeNull] string characterClassDefinition, diff --git a/SolastaUnfinishedBusiness/Patches/GuiCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/GuiCharacterPatcher.cs index cb4a8b564b..028bbbab09 100644 --- a/SolastaUnfinishedBusiness/Patches/GuiCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/GuiCharacterPatcher.cs @@ -42,7 +42,9 @@ public static void Postfix( // need to check for not null hero as we don't wanna these slots displayed under WS var hero = __instance.RulesetCharacterHero; - if (hero != null && !(Main.Settings.DisplayPactSlotsOnSpellSelectionPanel && !Main.Settings.UseAlternateSpellPointsSystem)) + if (hero != null && + !(Main.Settings.DisplayPactSlotsOnSpellSelectionPanel && + !Main.Settings.UseAlternateSpellPointsSystem)) { return; } diff --git a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs index e9e2a8cdef..7fb5a7c51d 100644 --- a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs @@ -90,7 +90,9 @@ public static void Postfix( spells.Count, __instance, (Global.InspectedHero != null && spellRepertoire.spellCastingClass == Warlock) || - (Global.InspectedHero == null && !(Main.Settings.DisplayPactSlotsOnSpellSelectionPanel && !Main.Settings.UseAlternateSpellPointsSystem))); + (Global.InspectedHero == null && + !(Main.Settings.DisplayPactSlotsOnSpellSelectionPanel && + !Main.Settings.UseAlternateSpellPointsSystem))); } } diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/CircleOfTheWildfire.png b/SolastaUnfinishedBusiness/Resources/Subclasses/CircleOfTheWildfire.png index 3b05dae85c1c2e9002d5e13ef76c57d635f25568..3965b5c9d6907b0306cf75aba8dd6a768cd1e516 100644 GIT binary patch literal 31570 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 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/CollegeOfElegance.png b/SolastaUnfinishedBusiness/Resources/Subclasses/CollegeOfElegance.png index de652ccc1659b11c506c3630a6e1e2a5e44167dc..51d57acc9e4fc05a996dfb6ca6bb8f887b416b80 100644 GIT binary patch delta 32073 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

*Fx$ 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

6lz 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 IM6N<$g8tu09{>OV diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/DomainTempest.png b/SolastaUnfinishedBusiness/Resources/Subclasses/DomainTempest.png index 1c15318404f32e8169fba448ccef5ea56f09b68a..3db055c2a4cb2a2b048fc324a1074a2ca736919e 100644 GIT binary patch literal 31436 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

FT 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�Q6Rme==m{ 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 literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Portraits/OrcFemale.png b/SolastaUnfinishedBusiness/Portraits/OrcFemale.png new file mode 100644 index 0000000000000000000000000000000000000000..a36e24bde3f441fd6d073ee44fa514d41b575abc GIT binary patch literal 65191 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�K$Qd{UVu!m6=>gGR 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 IM6N<$g0>IZbN~PV literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Portraits/Thieflings.png b/SolastaUnfinishedBusiness/Portraits/Thieflings.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0bc55e5f63987a0132288a937f90252b8ab6cb GIT binary patch literal 52485 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 literal 0 HcmV?d00001 From fbae5469a32c77b884dd766da825ae034e1afc45 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 17:12:47 -0700 Subject: [PATCH 63/91] auto format and clean up --- .../ConditionRangerHellWalkerDammingStrike.json | 5 ++++- .../SpellDefinition/SickeningRadiance.json | 2 +- SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs | 3 ++- SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs | 3 ++- SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs | 3 +-- SolastaUnfinishedBusiness/Subclasses/RangerWildMaster.cs | 6 +++--- SolastaUnfinishedBusiness/Subclasses/WizardBladeDancer.cs | 3 +-- 7 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionRangerHellWalkerDammingStrike.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionRangerHellWalkerDammingStrike.json index 9803dc9d0a..0f353a9880 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionRangerHellWalkerDammingStrike.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionRangerHellWalkerDammingStrike.json @@ -15,7 +15,10 @@ "durationParameter": 1, "forceTurnOccurence": false, "turnOccurence": "StartOfTurn", - "specialInterruptions": [], + "specialInterruptions": [ + "Extinguish", + "Revive" + ], "interruptionRequiresSavingThrow": false, "interruptionSavingThrowComputationMethod": "SaveOverride", "interruptionSavingThrowAbility": "", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SickeningRadiance.json b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SickeningRadiance.json index 1f7b86ee61..70682aa895 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SickeningRadiance.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SickeningRadiance.json @@ -267,7 +267,7 @@ }, "impactParticleReference": { "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", + "m_AssetGUID": "79dc2f6ea0fb8f44ba249db5f834c8c9", "m_SubObjectName": "", "m_SubObjectType": "" }, diff --git a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs index 4a4f510cb6..93edbc5a38 100644 --- a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs +++ b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs @@ -198,7 +198,8 @@ internal static void PaintPactSlots( //PATCH: support display cost on spell level blocks (SPELL_POINTS) if (Main.Settings.UseAlternateSpellPointsSystem) { - SpellPointsContext.DisplayCostOnSpellLevelBlocks(slotStatusTable, component, slotLevel, spellsAtLevel); + SpellPointsContext.DisplayCostOnSpellLevelBlocks(slotStatusTable, component, slotLevel, + spellsAtLevel); } else { diff --git a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs index 1e787ce521..dcbfc86992 100644 --- a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs @@ -73,7 +73,8 @@ public static void Postfix( { var component = __instance.table.GetChild(index).GetComponent(); - SpellPointsContext.DisplayCostOnSpellLevelBlocks(__instance, component, spellLevel, spells.Count); + SpellPointsContext.DisplayCostOnSpellLevelBlocks(__instance, component, spellLevel, + spells.Count); } } diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs b/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs index a8093451a3..a5d38afcb7 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections; +using System.Collections; using System.Collections.Generic; using System.Linq; using JetBrains.Annotations; diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerWildMaster.cs b/SolastaUnfinishedBusiness/Subclasses/RangerWildMaster.cs index 3c21b05bf3..00a7ac334d 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerWildMaster.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerWildMaster.cs @@ -418,12 +418,12 @@ public void OnConditionAdded(RulesetCharacter target, RulesetCondition rulesetCo } foreach (var ally in Gui.Battle.GetMyContenders(target.Side) - .Where(x => + .Where(x => x.RulesetActor is { IsDeadOrDyingOrUnconscious: false } && - x.RulesetActor != target)) + x.RulesetActor != target)) { var rulesetAlly = ally.RulesetActor; - + // should only remove the conditions from the same source if (rulesetAlly.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, conditionKillCommand.Name, out var activeCondition) && diff --git a/SolastaUnfinishedBusiness/Subclasses/WizardBladeDancer.cs b/SolastaUnfinishedBusiness/Subclasses/WizardBladeDancer.cs index 64099c8fba..9a0c5411e9 100644 --- a/SolastaUnfinishedBusiness/Subclasses/WizardBladeDancer.cs +++ b/SolastaUnfinishedBusiness/Subclasses/WizardBladeDancer.cs @@ -1,5 +1,4 @@ -using System.Linq; -using JetBrains.Annotations; +using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Builders; using SolastaUnfinishedBusiness.Builders.Features; From 788ca6e66df6b5be2c4c5b5640f7bbd3f8642139 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 17:13:18 -0700 Subject: [PATCH 64/91] fix Arcane Backslash countered validator under MP - fix #4814 --- .../Subclasses/RoguishArcaneScoundrel.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs b/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs index bfac969889..8e510b1f3a 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs @@ -303,10 +303,10 @@ public IEnumerator OnMagicEffectFinishedByMe( { if ((action is not CharacterActionCastSpell characterActionCastSpell || characterActionCastSpell.ActiveSpell.SpellDefinition != Counterspell || - !characterActionCastSpell.ActionParams.TargetAction.Countered) && + !characterActionCastSpell.Countered) && (action is not CharacterActionUsePower characterActionUsePower || characterActionUsePower.activePower.PowerDefinition != powerCounterSpell || - !characterActionUsePower.ActionParams.TargetAction.Countered)) + !characterActionUsePower.Countered)) { yield break; } From 34956f941bf26df64b8785b8f55241be58c523bd Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 18:43:31 -0700 Subject: [PATCH 65/91] additional clean up --- .../ChangelogHistory.txt | 5 +-- .../Models/CustomConditionsContext.cs | 13 +++---- .../Models/Level20Context.cs | 3 +- .../Models/Level20SubclassesContext.cs | 39 +++---------------- SolastaUnfinishedBusiness/Races/Fairy.cs | 11 ++---- .../Races/TieflingVariant.cs | 11 ++---- SolastaUnfinishedBusiness/Resources/Names.txt | 11 +----- .../Builders/InvocationsBuilders.cs | 3 -- .../Subclasses/CircleOfTheLife.cs | 8 ++-- .../Subclasses/CollegeOfValiance.cs | 3 +- .../Subclasses/PathOfTheLight.cs | 7 +--- .../Subclasses/RangerHellWalker.cs | 1 + .../Subclasses/RoguishUmbralStalker.cs | 3 +- 13 files changed, 31 insertions(+), 87 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 65e53d951b..d2fddafd4c 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -4,15 +4,14 @@ - fixed Export Hero and RESPEC auras, infusions, etc. termination - fixed Martial Arcane Archer arcane shot soft lock if enemy dead - fixed Ring of Knifes spell follow up power to-hit modifier +- fixed Roguish Arcane Scoundrel arcane backslash sneak damage - fixed target selection on Field Manipulator displacement - fixed target selection on Scatter spell KNOWN ISSUES: - Artillerist Force Ballista tiny cannon doesn't force attack DIS within 5 ft -- Chaos Bolt spell damage will be of wrong type under multiplayer if twinned and any bolt misses -- Lightning Arrow spell won't trigger custom behaviors if target dies from damage on a miss -- Oath of Altruism Guardian Aura won't trigger custom behaviors if self dies on swapped damage taken +- Chaos Bolt spell damage will be of wrong type under multiplayer if twinned and one bolt misses 1.5.97.19: diff --git a/SolastaUnfinishedBusiness/Models/CustomConditionsContext.cs b/SolastaUnfinishedBusiness/Models/CustomConditionsContext.cs index 3ca24e9549..92a2fcae37 100644 --- a/SolastaUnfinishedBusiness/Models/CustomConditionsContext.cs +++ b/SolastaUnfinishedBusiness/Models/CustomConditionsContext.cs @@ -480,24 +480,23 @@ Id.AttackReadied or } var actingCharacter = characterAction.ActingCharacter; - var rulesetCharacter = actingCharacter.RulesetCharacter; var targets = Gui.Battle.GetContenders(actingCharacter); foreach (var target in targets) { - var rulesetCondition = target.RulesetCharacter.AllConditions.FirstOrDefault(x => - x.ConditionDefinition.Name == Taunted.Name && - x.SourceGuid == rulesetCharacter.Guid); + var rulesetTarget = target.RulesetActor; - if (rulesetCondition == null) + if (!rulesetTarget.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, Taunted.Name, out var activeCondition) && + activeCondition.SourceGuid == actingCharacter.Guid) { continue; } // ruleset amount carries the max range for the condition - if (!actingCharacter.IsWithinRange(target, rulesetCondition.Amount)) + if (!actingCharacter.IsWithinRange(target, activeCondition.Amount)) { - target.RulesetCharacter.RemoveCondition(rulesetCondition); + target.RulesetCharacter.RemoveCondition(activeCondition); } } } diff --git a/SolastaUnfinishedBusiness/Models/Level20Context.cs b/SolastaUnfinishedBusiness/Models/Level20Context.cs index dec48e829a..cc8afde494 100644 --- a/SolastaUnfinishedBusiness/Models/Level20Context.cs +++ b/SolastaUnfinishedBusiness/Models/Level20Context.cs @@ -909,8 +909,7 @@ public void MinRoll( ref int rollModifier, ref int minRoll) { - if (character != null && - abilityScoreName == AttributeDefinitions.Strength) + if (abilityScoreName == AttributeDefinitions.Strength) { minRoll = Math.Max(minRoll, character.TryGetAttributeValue(AttributeDefinitions.Strength)); } diff --git a/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs b/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs index 3e6ad3cbf6..ba76460f8b 100644 --- a/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs +++ b/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs @@ -1285,12 +1285,10 @@ private static void SorcererLoad() var conditionMindDominatedByHauntedSoul = ConditionDefinitionBuilder .Create(ConditionDefinitions.ConditionMindDominatedByCaster, "ConditionMindDominatedByHauntedSoul") + .AddCustomSubFeatures(new OnConditionAddedOrRemovedPossession()) .SetSpecialInterruptions(Array.Empty()) .AddToDB(); - conditionMindDominatedByHauntedSoul.AddCustomSubFeatures( - new OnConditionAddedOrRemovedPossession(conditionMindDominatedByHauntedSoul)); - var powerSorcererHauntedSoulPossession = FeatureDefinitionPowerBuilder .Create("PowerSorcererHauntedSoulPossession") .SetGuiPresentation(Category.Feature, PowerSorcererHauntedSoulVengefulSpirits) @@ -1738,8 +1736,7 @@ public void OnAttackComputeModifier( // // ReSharper disable once SuggestBaseTypeForParameterInConstructor - private sealed class OnConditionAddedOrRemovedPossession(ConditionDefinition conditionPossession) - : IOnConditionAddedOrRemoved + private sealed class OnConditionAddedOrRemovedPossession: IOnConditionAddedOrRemoved { public void OnConditionAdded(RulesetCharacter target, RulesetCondition rulesetCondition) { @@ -1748,18 +1745,7 @@ public void OnConditionAdded(RulesetCharacter target, RulesetCondition rulesetCo public void OnConditionRemoved(RulesetCharacter target, RulesetCondition rulesetCondition) { - if (rulesetCondition.ConditionDefinition != conditionPossession) - { - return; - } - var rulesetAttacker = EffectHelpers.GetCharacterByGuid(rulesetCondition.SourceGuid); - - if (rulesetAttacker == null) - { - return; - } - var conditionExhausted = ConditionDefinitions.ConditionExhausted; target.InflictCondition( @@ -1801,25 +1787,17 @@ public void OnSavingThrowFinished( ref int outcomeDelta, List effectForms) { - if (outcome is not (RollOutcome.Success or RollOutcome.CriticalSuccess)) - { - return; - } - var hero = defender.GetOriginalHero(); - - if (hero == null) + + if (outcome is not (RollOutcome.Success or RollOutcome.CriticalSuccess) || + hero == null) { return; } var character = GameLocationCharacter.GetFromActor(hero); - if (character != null) - { - EffectHelpers.StartVisualEffect(character, character, MageArmor, EffectHelpers.EffectType.Caster); - } - + EffectHelpers.StartVisualEffect(character, character, MageArmor, EffectHelpers.EffectType.Caster); hero.LogCharacterUsedFeature(featureManaOverflow); hero.GainSorceryPoints(1); } @@ -1902,11 +1880,6 @@ public IEnumerator HandleReducedToZeroHpByEnemy( var rulesetCharacter = defender.RulesetCharacter; - if (rulesetCharacter == null) - { - yield break; - } - var actionService = ServiceRepository.GetService(); var implementationManager = ServiceRepository.GetService() as RulesetImplementationManager; diff --git a/SolastaUnfinishedBusiness/Races/Fairy.cs b/SolastaUnfinishedBusiness/Races/Fairy.cs index cf8993110c..56f1adbf57 100644 --- a/SolastaUnfinishedBusiness/Races/Fairy.cs +++ b/SolastaUnfinishedBusiness/Races/Fairy.cs @@ -1,5 +1,4 @@ -using System.Linq; -using JetBrains.Annotations; +using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Builders; using SolastaUnfinishedBusiness.Builders.Features; @@ -169,12 +168,10 @@ public void OnItemEquipped(RulesetCharacterHero hero) return; } - var rulesetCondition = hero.AllConditions - .FirstOrDefault(x => x.ConditionDefinition == condition); - - if (rulesetCondition != null) + if (hero.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, condition.Name, out var activeCondition)) { - hero.RemoveCondition(rulesetCondition); + hero.RemoveCondition(activeCondition); } } } diff --git a/SolastaUnfinishedBusiness/Races/TieflingVariant.cs b/SolastaUnfinishedBusiness/Races/TieflingVariant.cs index 1fafdae943..762f58c2de 100644 --- a/SolastaUnfinishedBusiness/Races/TieflingVariant.cs +++ b/SolastaUnfinishedBusiness/Races/TieflingVariant.cs @@ -1,5 +1,4 @@ -using System.Linq; -using JetBrains.Annotations; +using JetBrains.Annotations; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Api.LanguageExtensions; using SolastaUnfinishedBusiness.Builders; @@ -277,12 +276,10 @@ public void OnItemEquipped(RulesetCharacterHero hero) return; } - var rulesetCondition = hero.AllConditions - .FirstOrDefault(x => x.ConditionDefinition == condition); - - if (rulesetCondition != null) + if (hero.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, condition.Name, out var activeCondition)) { - hero.RemoveCondition(rulesetCondition); + hero.RemoveCondition(activeCondition); } } } diff --git a/SolastaUnfinishedBusiness/Resources/Names.txt b/SolastaUnfinishedBusiness/Resources/Names.txt index ecad8bc845..42aa0490b8 100644 --- a/SolastaUnfinishedBusiness/Resources/Names.txt +++ b/SolastaUnfinishedBusiness/Resources/Names.txt @@ -591,9 +591,6 @@ RaceFairy Sur Maeradok RaceFairy Sur Ceinnath RaceFairy Sur Joxisys RaceFairy Sur Mossy -RaceFairy Sur Ourrith -RaceFairy Sur Urchin -RaceFairy Sur Yeswenys RaceOligath Sur Sulzar RaceOligath Sur Runnern RaceOligath Sur Zaztej @@ -614,7 +611,6 @@ RaceWyrmkin Sur Thraksaeurt RaceWyrmkin Sur Vernart RaceWyrmkin Sur Maeradok RaceWendigo Sur Drucnur -RaceWendigo Sur Fenthwick RaceWendigo Sur Wayrick RaceWendigo Sur Koemi RaceWendigo Sur Demi @@ -622,12 +618,7 @@ RaceWendigo Male Mirayarus RaceWendigo Male Fenmyar RaceWendigo Male Mirayarus RaceWendigo Male Yeljor -RaceWendigo Male Corfra -RaceWendigo Male Aeghal -RaceWendigo Male Stone RaceWendigo Female Lucky RaceWendigo Female Nightfall RaceWendigo Female Sylmoira -RaceWendigo Female Fastina -RaceWendigo Female Envaris -RaceWendigo Female Wuenwetel \ No newline at end of file +RaceWendigo Female Fastina \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Subclasses/Builders/InvocationsBuilders.cs b/SolastaUnfinishedBusiness/Subclasses/Builders/InvocationsBuilders.cs index 664ebb7722..ca5175ed49 100644 --- a/SolastaUnfinishedBusiness/Subclasses/Builders/InvocationsBuilders.cs +++ b/SolastaUnfinishedBusiness/Subclasses/Builders/InvocationsBuilders.cs @@ -1620,11 +1620,8 @@ public void OnConditionRemoved(RulesetCharacter target, RulesetCondition ruleset { var glc = GameLocationCharacter.GetFromActor(target); - if (glc != null) - { EffectHelpers.StartVisualEffect( glc, glc, PowerDomainElementalHeraldOfTheElementsCold, EffectHelpers.EffectType.Effect); - } target.InflictCondition( conditionTombOfFrost.Name, diff --git a/SolastaUnfinishedBusiness/Subclasses/CircleOfTheLife.cs b/SolastaUnfinishedBusiness/Subclasses/CircleOfTheLife.cs index 3787c444d1..baa6d6e0a4 100644 --- a/SolastaUnfinishedBusiness/Subclasses/CircleOfTheLife.cs +++ b/SolastaUnfinishedBusiness/Subclasses/CircleOfTheLife.cs @@ -308,15 +308,13 @@ public void OnCharacterTurnStarted(GameLocationCharacter locationCharacter) return; } - var rulesetCondition = rulesetCharacter.AllConditions - .FirstOrDefault(x => x.ConditionDefinition.Name == ConditionSeedOfLife); - - if (rulesetCondition == null) + if (!rulesetCharacter.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, ConditionSeedOfLife, out var activeCondition)) { return; } - var caster = EffectHelpers.GetCharacterByGuid(rulesetCondition.SourceGuid); + var caster = EffectHelpers.GetCharacterByGuid(activeCondition.SourceGuid); if (caster is not { IsDeadOrDyingOrUnconscious: false }) { diff --git a/SolastaUnfinishedBusiness/Subclasses/CollegeOfValiance.cs b/SolastaUnfinishedBusiness/Subclasses/CollegeOfValiance.cs index aeba036a80..01dd84a1d2 100644 --- a/SolastaUnfinishedBusiness/Subclasses/CollegeOfValiance.cs +++ b/SolastaUnfinishedBusiness/Subclasses/CollegeOfValiance.cs @@ -155,8 +155,7 @@ public void MinRoll( ref int rollModifier, ref int minRoll) { - if (character != null && - abilityScoreName == AttributeDefinitions.Charisma && + if (abilityScoreName == AttributeDefinitions.Charisma && proficiencyName is SkillDefinitions.Deception or SkillDefinitions.Persuasion) { minRoll = Math.Max(minRoll, 10); diff --git a/SolastaUnfinishedBusiness/Subclasses/PathOfTheLight.cs b/SolastaUnfinishedBusiness/Subclasses/PathOfTheLight.cs index 0a73f56d38..0fd8e3eb41 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PathOfTheLight.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PathOfTheLight.cs @@ -371,12 +371,7 @@ private static void HandleAfterIlluminatedConditionRemoved(RulesetActor removedF var visibilityService = ServiceRepository.GetService(); var gameLocationCharacter = GameLocationCharacter.GetFromActor(removedFrom); - if (gameLocationCharacter != null) - { - visibilityService.RemoveCharacterLightSource(gameLocationCharacter, character.PersonalLightSource); - } - - character.PersonalLightSource = null; + visibilityService.RemoveCharacterLightSource(gameLocationCharacter, character.PersonalLightSource); } } } diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs b/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs index a5d38afcb7..49c6350ab3 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs @@ -324,6 +324,7 @@ public IEnumerator OnPowerOrSpellFinishedByMe(CharacterActionMagicEffect action, var gameLocationDefender = action.actionParams.targetCharacters[0]; // remove this condition from all other enemies + // ReSharper disable once ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator foreach (var gameLocationCharacter in Gui.Battle .GetContenders(gameLocationDefender, isOppositeSide: false)) { diff --git a/SolastaUnfinishedBusiness/Subclasses/RoguishUmbralStalker.cs b/SolastaUnfinishedBusiness/Subclasses/RoguishUmbralStalker.cs index e2da493d98..3f45c3d6b0 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RoguishUmbralStalker.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RoguishUmbralStalker.cs @@ -246,8 +246,7 @@ private static bool CanUseShadowStride(RulesetCharacter character, bool enableOf var locationCharacter = GameLocationCharacter.GetFromActor(character); - return locationCharacter != null && - locationCharacter.OnceInMyTurnIsValid("ShadowStride") && + return locationCharacter.OnceInMyTurnIsValid("ShadowStride") && ValidatorsCharacter.IsNotInBrightLight(character); } From c4b0c50fbb20b376e7093f9c4b49d95e7f1f2306 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 19:00:47 -0700 Subject: [PATCH 66/91] fix main spell action leaving bonus spell action available --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 2 +- .../Patches/CharacterActionMagicEffectPatcher.cs | 6 +++++- .../Patches/GameLocationCharacterPatcher.cs | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index d2fddafd4c..55f0d3c05c 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -2,9 +2,9 @@ - added variant spell points rules and Sickening Radiance spell - fixed Export Hero and RESPEC auras, infusions, etc. termination +- fixed main spell action leaving bonus spell action available - fixed Martial Arcane Archer arcane shot soft lock if enemy dead - fixed Ring of Knifes spell follow up power to-hit modifier -- fixed Roguish Arcane Scoundrel arcane backslash sneak damage - fixed target selection on Field Manipulator displacement - fixed target selection on Scatter spell diff --git a/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs index d238337aa5..8e3a424a94 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs @@ -391,11 +391,15 @@ private static IEnumerator ExecuteImpl(CharacterActionMagicEffect __instance) // BEGIN PATCH - //PATCH: mark if bonus spell was used for correct action surge interaction + //PATCH: mark which spell action type was used for correct action surge interaction if (__instance is CharacterActionCastSpell { ActionType: ActionDefinitions.ActionType.Bonus }) { actingCharacter.UsedSpecialFeatures.TryAdd("BonusSpell", 0); } + if (__instance is CharacterActionCastSpell { ActionType: ActionDefinitions.ActionType.Main }) + { + actingCharacter.UsedSpecialFeatures.TryAdd("MainSpell", 0); + } //PATCH: skip spell animation if this is an AttackAfterMagicEffect spell if (baseDefinition.HasSubFeatureOfType()) diff --git a/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs index e51f152645..cec87338e1 100644 --- a/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs @@ -477,6 +477,11 @@ public static void Postfix( { __instance.UsedMainSpell = true; } + //PATCH: ensure we block casting bonus spells if main spell was used + if (__instance.UsedSpecialFeatures.TryGetValue("MainSpell", out _)) + { + __instance.UsedBonusSpell = true; + } //PATCH: support for `AttackAfterMagicEffect` AttackAfterMagicEffect.HandleAttackAfterMagicEffect(__instance, actionParams); From f12b31486bd0bd2a911f430e11437aa0d1109a10 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 19:04:24 -0700 Subject: [PATCH 67/91] Revert "fix Arcane Backslash countered validator under MP" This reverts commit 788ca6e66df6b5be2c4c5b5640f7bbd3f8642139. --- .../Subclasses/RoguishArcaneScoundrel.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs b/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs index 8e510b1f3a..bfac969889 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RoguishArcaneScoundrel.cs @@ -303,10 +303,10 @@ public IEnumerator OnMagicEffectFinishedByMe( { if ((action is not CharacterActionCastSpell characterActionCastSpell || characterActionCastSpell.ActiveSpell.SpellDefinition != Counterspell || - !characterActionCastSpell.Countered) && + !characterActionCastSpell.ActionParams.TargetAction.Countered) && (action is not CharacterActionUsePower characterActionUsePower || characterActionUsePower.activePower.PowerDefinition != powerCounterSpell || - !characterActionUsePower.Countered)) + !characterActionUsePower.ActionParams.TargetAction.Countered)) { yield break; } From 9dbb16e1f5c6aef5ac71d3f4c9cf63bd6ea91412 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 19:10:18 -0700 Subject: [PATCH 68/91] update arcane scoundrel reaction text --- .../Translations/de/SubClasses/RoguishArcaneScoundrel-de.txt | 2 +- .../Translations/en/SubClasses/RoguishArcaneScoundrel-en.txt | 2 +- .../Translations/es/SubClasses/RoguishArcaneScoundrel-es.txt | 2 +- .../Translations/fr/SubClasses/RoguishArcaneScoundrel-fr.txt | 2 +- .../Translations/it/SubClasses/RoguishArcaneScoundrel-it.txt | 2 +- .../Translations/ja/SubClasses/RoguishArcaneScoundrel-ja.txt | 2 +- .../Translations/ko/SubClasses/RoguishArcaneScoundrel-ko.txt | 2 +- .../pt-BR/SubClasses/RoguishArcaneScoundrel-pt-BR.txt | 2 +- .../zh-CN/SubClasses/RoguishArcaneScoundrel-zh-CN.txt | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/de/SubClasses/RoguishArcaneScoundrel-de.txt b/SolastaUnfinishedBusiness/Translations/de/SubClasses/RoguishArcaneScoundrel-de.txt index c9e091ba3d..03f7d8ecbe 100644 --- a/SolastaUnfinishedBusiness/Translations/de/SubClasses/RoguishArcaneScoundrel-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/SubClasses/RoguishArcaneScoundrel-de.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=Sie können einer Kr Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Essenzbruch Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=Du erwirbst Kenntnisse in der Arcana-Fähigkeit. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Arkane Affinität -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} wirkt einen Zauber! Sie können reagieren, um dem Zauber entgegenzuwirken, ohne einen Zauberslot auszugeben. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} wirkt {2}! Du kannst reagieren, um den Zauber zu neutralisieren, ohne einen Zauberplatz zu verbrauchen. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Wirke einen Gegenzauber und kontere den gegnerischen Zauber. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Schalter Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Feindlicher Zauberspruch diff --git a/SolastaUnfinishedBusiness/Translations/en/SubClasses/RoguishArcaneScoundrel-en.txt b/SolastaUnfinishedBusiness/Translations/en/SubClasses/RoguishArcaneScoundrel-en.txt index 1e29ae77d2..830ae44182 100644 --- a/SolastaUnfinishedBusiness/Translations/en/SubClasses/RoguishArcaneScoundrel-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/SubClasses/RoguishArcaneScoundrel-en.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=You can steal essenc Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Essence Rupture Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=You gain proficiency in the Arcana skill. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Arcane Affinity -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} is casting a spell! You can react to counter the spell without spending a spell slot. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} is casting {2}! You can react to counter the spell without spending a spell slot. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Cast counterspell and counter the enemy spell. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Counter Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Hostile Spell Casting diff --git a/SolastaUnfinishedBusiness/Translations/es/SubClasses/RoguishArcaneScoundrel-es.txt b/SolastaUnfinishedBusiness/Translations/es/SubClasses/RoguishArcaneScoundrel-es.txt index a4cf62dbc5..c3190066fe 100644 --- a/SolastaUnfinishedBusiness/Translations/es/SubClasses/RoguishArcaneScoundrel-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/SubClasses/RoguishArcaneScoundrel-es.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=Puedes robar esencia Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Ruptura de esencia Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=Obtienes competencia en la habilidad Arcana. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Afinidad Arcana -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription=¡{0} está lanzando un hechizo! Puedes reaccionar para contrarrestar el hechizo sin gastar un espacio de hechizo. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription=¡{1} está lanzando {2}! Puedes reaccionar para contrarrestar el hechizo sin gastar un espacio de hechizo. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Lanza un contrahechizo y contrarresta el hechizo enemigo. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Encimera Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Lanzamiento de hechizos hostiles diff --git a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/RoguishArcaneScoundrel-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/RoguishArcaneScoundrel-fr.txt index 4ce1b0e40f..5bc3d45760 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/RoguishArcaneScoundrel-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/RoguishArcaneScoundrel-fr.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=Vous pouvez voler l' Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Rupture d'essence Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=Vous maîtrisez la compétence Arcana. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Affinité arcanique -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} lance un sort ! Vous pouvez réagir pour contrer le sort sans dépenser d'emplacement de sort. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} lance {2} ! Vous pouvez réagir pour contrer le sort sans dépenser d'emplacement de sort. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Lancez un contre-sort et contrez le sort ennemi. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Comptoir Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Lancer des sorts hostiles diff --git a/SolastaUnfinishedBusiness/Translations/it/SubClasses/RoguishArcaneScoundrel-it.txt b/SolastaUnfinishedBusiness/Translations/it/SubClasses/RoguishArcaneScoundrel-it.txt index 1cc7f2ea45..8594f973d1 100644 --- a/SolastaUnfinishedBusiness/Translations/it/SubClasses/RoguishArcaneScoundrel-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/SubClasses/RoguishArcaneScoundrel-it.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=Puoi rubare l'essenz Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Rottura dell'Essenza Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=Ottieni competenza nell'abilità Arcana. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Affinità Arcana -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} sta lanciando un incantesimo! Puoi reagire per contrastare l'incantesimo senza spendere uno slot incantesimo. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} sta trasmettendo {2}! Puoi reagire per contrastare l'incantesimo senza spendere uno slot incantesimo. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Lancia un controincantesimo e neutralizza l'incantesimo nemico. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Contatore Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Lancio di incantesimi ostili diff --git a/SolastaUnfinishedBusiness/Translations/ja/SubClasses/RoguishArcaneScoundrel-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/SubClasses/RoguishArcaneScoundrel-ja.txt index 3f4cf33292..23b34bdd83 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/SubClasses/RoguishArcaneScoundrel-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/SubClasses/RoguishArcaneScoundrel-ja.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=ある生き物か Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=エッセンスラプチャー Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=アルカナスキルに習熟します。 Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=秘術の親和性 -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} が呪文を唱えています!呪文スロットを消費せずに呪文に対抗することができます。 +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} が {2} を唱えています! 呪文スロットを消費せずに反応して呪文を打ち消すことができます。 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=カウンタースペルを唱えて敵の呪文に対抗します。 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=カウンター Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=敵対的な呪文の詠唱 diff --git a/SolastaUnfinishedBusiness/Translations/ko/SubClasses/RoguishArcaneScoundrel-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/SubClasses/RoguishArcaneScoundrel-ko.txt index 12bc50ab4a..295ec954fa 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/SubClasses/RoguishArcaneScoundrel-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/SubClasses/RoguishArcaneScoundrel-ko.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=한 생물에게서 Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=정수 파열 Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=아르카나 스킬에 능숙해집니다. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=비전 친화력 -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0}님이 주문을 걸고 있습니다! 주문 슬롯을 사용하지 않고도 주문에 대응하여 대응할 수 있습니다. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1}이(가) {2}을(를) 전송 중입니다! 주문 슬롯을 사용하지 않고도 주문에 대응하여 대응할 수 있습니다. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=반격 주문을 시전하고 적의 주문에 반격하십시오. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=카운터 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=적대적인 주문 시전 diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/RoguishArcaneScoundrel-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/RoguishArcaneScoundrel-pt-BR.txt index 8f504682ff..3e2bdbf6a5 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/RoguishArcaneScoundrel-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/RoguishArcaneScoundrel-pt-BR.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=Você pode roubar es Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Ruptura de Essência Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=Você ganha proficiência na habilidade Arcana. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Afinidade Arcana -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} está lançando um feitiço! Você pode reagir para anular o feitiço sem gastar um espaço de feitiço. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} está lançando {2}! Você pode reagir para anular o feitiço sem gastar um espaço de feitiço. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Lance contra-feitiço e contra-ataque ao feitiço inimigo. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Contador Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Lançamento de feitiços hostis diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/RoguishArcaneScoundrel-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/RoguishArcaneScoundrel-zh-CN.txt index 4f08ec902c..6100544881 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/RoguishArcaneScoundrel-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/RoguishArcaneScoundrel-zh-CN.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=你可以从一个 Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=本源破裂 Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=获得奥秘技能熟练项。 Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=奥术亲和 -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} 正在施法!你可以在不花费法术位的情况下做出反制法术的反应。 +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} 正在施放 {2}!您可以做出反应来反击该法术,而无需花费法术位。 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=施放法术反制并反制敌人的法术。 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=反应 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=对抗法术施法 From 448f23602fcba1736d26a71d6cf65b5f45d5966b Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 19:20:52 -0700 Subject: [PATCH 69/91] Revert "update arcane scoundrel reaction text" This reverts commit 9dbb16e1f5c6aef5ac71d3f4c9cf63bd6ea91412. --- .../Translations/de/SubClasses/RoguishArcaneScoundrel-de.txt | 2 +- .../Translations/en/SubClasses/RoguishArcaneScoundrel-en.txt | 2 +- .../Translations/es/SubClasses/RoguishArcaneScoundrel-es.txt | 2 +- .../Translations/fr/SubClasses/RoguishArcaneScoundrel-fr.txt | 2 +- .../Translations/it/SubClasses/RoguishArcaneScoundrel-it.txt | 2 +- .../Translations/ja/SubClasses/RoguishArcaneScoundrel-ja.txt | 2 +- .../Translations/ko/SubClasses/RoguishArcaneScoundrel-ko.txt | 2 +- .../pt-BR/SubClasses/RoguishArcaneScoundrel-pt-BR.txt | 2 +- .../zh-CN/SubClasses/RoguishArcaneScoundrel-zh-CN.txt | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/de/SubClasses/RoguishArcaneScoundrel-de.txt b/SolastaUnfinishedBusiness/Translations/de/SubClasses/RoguishArcaneScoundrel-de.txt index 03f7d8ecbe..c9e091ba3d 100644 --- a/SolastaUnfinishedBusiness/Translations/de/SubClasses/RoguishArcaneScoundrel-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/SubClasses/RoguishArcaneScoundrel-de.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=Sie können einer Kr Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Essenzbruch Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=Du erwirbst Kenntnisse in der Arcana-Fähigkeit. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Arkane Affinität -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} wirkt {2}! Du kannst reagieren, um den Zauber zu neutralisieren, ohne einen Zauberplatz zu verbrauchen. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} wirkt einen Zauber! Sie können reagieren, um dem Zauber entgegenzuwirken, ohne einen Zauberslot auszugeben. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Wirke einen Gegenzauber und kontere den gegnerischen Zauber. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Schalter Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Feindlicher Zauberspruch diff --git a/SolastaUnfinishedBusiness/Translations/en/SubClasses/RoguishArcaneScoundrel-en.txt b/SolastaUnfinishedBusiness/Translations/en/SubClasses/RoguishArcaneScoundrel-en.txt index 830ae44182..1e29ae77d2 100644 --- a/SolastaUnfinishedBusiness/Translations/en/SubClasses/RoguishArcaneScoundrel-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/SubClasses/RoguishArcaneScoundrel-en.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=You can steal essenc Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Essence Rupture Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=You gain proficiency in the Arcana skill. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Arcane Affinity -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} is casting {2}! You can react to counter the spell without spending a spell slot. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} is casting a spell! You can react to counter the spell without spending a spell slot. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Cast counterspell and counter the enemy spell. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Counter Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Hostile Spell Casting diff --git a/SolastaUnfinishedBusiness/Translations/es/SubClasses/RoguishArcaneScoundrel-es.txt b/SolastaUnfinishedBusiness/Translations/es/SubClasses/RoguishArcaneScoundrel-es.txt index c3190066fe..a4cf62dbc5 100644 --- a/SolastaUnfinishedBusiness/Translations/es/SubClasses/RoguishArcaneScoundrel-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/SubClasses/RoguishArcaneScoundrel-es.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=Puedes robar esencia Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Ruptura de esencia Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=Obtienes competencia en la habilidad Arcana. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Afinidad Arcana -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription=¡{1} está lanzando {2}! Puedes reaccionar para contrarrestar el hechizo sin gastar un espacio de hechizo. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription=¡{0} está lanzando un hechizo! Puedes reaccionar para contrarrestar el hechizo sin gastar un espacio de hechizo. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Lanza un contrahechizo y contrarresta el hechizo enemigo. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Encimera Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Lanzamiento de hechizos hostiles diff --git a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/RoguishArcaneScoundrel-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/RoguishArcaneScoundrel-fr.txt index 5bc3d45760..4ce1b0e40f 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/SubClasses/RoguishArcaneScoundrel-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/SubClasses/RoguishArcaneScoundrel-fr.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=Vous pouvez voler l' Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Rupture d'essence Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=Vous maîtrisez la compétence Arcana. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Affinité arcanique -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} lance {2} ! Vous pouvez réagir pour contrer le sort sans dépenser d'emplacement de sort. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} lance un sort ! Vous pouvez réagir pour contrer le sort sans dépenser d'emplacement de sort. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Lancez un contre-sort et contrez le sort ennemi. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Comptoir Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Lancer des sorts hostiles diff --git a/SolastaUnfinishedBusiness/Translations/it/SubClasses/RoguishArcaneScoundrel-it.txt b/SolastaUnfinishedBusiness/Translations/it/SubClasses/RoguishArcaneScoundrel-it.txt index 8594f973d1..1cc7f2ea45 100644 --- a/SolastaUnfinishedBusiness/Translations/it/SubClasses/RoguishArcaneScoundrel-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/SubClasses/RoguishArcaneScoundrel-it.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=Puoi rubare l'essenz Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Rottura dell'Essenza Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=Ottieni competenza nell'abilità Arcana. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Affinità Arcana -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} sta trasmettendo {2}! Puoi reagire per contrastare l'incantesimo senza spendere uno slot incantesimo. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} sta lanciando un incantesimo! Puoi reagire per contrastare l'incantesimo senza spendere uno slot incantesimo. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Lancia un controincantesimo e neutralizza l'incantesimo nemico. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Contatore Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Lancio di incantesimi ostili diff --git a/SolastaUnfinishedBusiness/Translations/ja/SubClasses/RoguishArcaneScoundrel-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/SubClasses/RoguishArcaneScoundrel-ja.txt index 23b34bdd83..3f4cf33292 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/SubClasses/RoguishArcaneScoundrel-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/SubClasses/RoguishArcaneScoundrel-ja.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=ある生き物か Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=エッセンスラプチャー Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=アルカナスキルに習熟します。 Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=秘術の親和性 -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} が {2} を唱えています! 呪文スロットを消費せずに反応して呪文を打ち消すことができます。 +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} が呪文を唱えています!呪文スロットを消費せずに呪文に対抗することができます。 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=カウンタースペルを唱えて敵の呪文に対抗します。 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=カウンター Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=敵対的な呪文の詠唱 diff --git a/SolastaUnfinishedBusiness/Translations/ko/SubClasses/RoguishArcaneScoundrel-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/SubClasses/RoguishArcaneScoundrel-ko.txt index 295ec954fa..12bc50ab4a 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/SubClasses/RoguishArcaneScoundrel-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/SubClasses/RoguishArcaneScoundrel-ko.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=한 생물에게서 Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=정수 파열 Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=아르카나 스킬에 능숙해집니다. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=비전 친화력 -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1}이(가) {2}을(를) 전송 중입니다! 주문 슬롯을 사용하지 않고도 주문에 대응하여 대응할 수 있습니다. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0}님이 주문을 걸고 있습니다! 주문 슬롯을 사용하지 않고도 주문에 대응하여 대응할 수 있습니다. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=반격 주문을 시전하고 적의 주문에 반격하십시오. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=카운터 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=적대적인 주문 시전 diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/RoguishArcaneScoundrel-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/RoguishArcaneScoundrel-pt-BR.txt index 3e2bdbf6a5..8f504682ff 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/RoguishArcaneScoundrel-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/SubClasses/RoguishArcaneScoundrel-pt-BR.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=Você pode roubar es Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=Ruptura de Essência Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=Você ganha proficiência na habilidade Arcana. Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=Afinidade Arcana -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} está lançando {2}! Você pode reagir para anular o feitiço sem gastar um espaço de feitiço. +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} está lançando um feitiço! Você pode reagir para anular o feitiço sem gastar um espaço de feitiço. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=Lance contra-feitiço e contra-ataque ao feitiço inimigo. Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=Contador Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=Lançamento de feitiços hostis diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/RoguishArcaneScoundrel-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/RoguishArcaneScoundrel-zh-CN.txt index 6100544881..4f08ec902c 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/RoguishArcaneScoundrel-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/SubClasses/RoguishArcaneScoundrel-zh-CN.txt @@ -16,7 +16,7 @@ Feature/&PowerRoguishArcaneScoundrelEssenceTheftDescription=你可以从一个 Feature/&PowerRoguishArcaneScoundrelEssenceTheftTitle=本源破裂 Feature/&ProficiencyRoguishArcaneScoundrelArcanaDescription=获得奥秘技能熟练项。 Feature/&ProficiencyRoguishArcaneScoundrelArcanaTitle=奥术亲和 -Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={1} 正在施放 {2}!您可以做出反应来反击该法术,而无需花费法术位。 +Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellDescription={0} 正在施法!你可以在不花费法术位的情况下做出反制法术的反应。 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactDescription=施放法术反制并反制敌人的法术。 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellReactTitle=反应 Reaction/&SpendPowerPowerRoguishArcaneScoundrelArcaneBackslashCounterSpellTitle=对抗法术施法 From f5a8b911c83531c054ae6534a4dad3cb35296d89 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 19:23:54 -0700 Subject: [PATCH 70/91] improve main/bonus spell tab logic --- .../CharacterActionMagicEffectPatcher.cs | 19 +++++++++---------- .../Patches/GameLocationCharacterPatcher.cs | 11 ----------- 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs index 8e3a424a94..7419dcedac 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs @@ -391,16 +391,6 @@ private static IEnumerator ExecuteImpl(CharacterActionMagicEffect __instance) // BEGIN PATCH - //PATCH: mark which spell action type was used for correct action surge interaction - if (__instance is CharacterActionCastSpell { ActionType: ActionDefinitions.ActionType.Bonus }) - { - actingCharacter.UsedSpecialFeatures.TryAdd("BonusSpell", 0); - } - if (__instance is CharacterActionCastSpell { ActionType: ActionDefinitions.ActionType.Main }) - { - actingCharacter.UsedSpecialFeatures.TryAdd("MainSpell", 0); - } - //PATCH: skip spell animation if this is an AttackAfterMagicEffect spell if (baseDefinition.HasSubFeatureOfType()) { @@ -965,6 +955,15 @@ private static IEnumerator ExecuteImpl(CharacterActionMagicEffect __instance) } } + if (__instance is CharacterActionCastSpell { ActionType: ActionDefinitions.ActionType.Bonus }) + { + actingCharacter.UsedMainSpell = true; + } + if (__instance is CharacterActionCastSpell { ActionType: ActionDefinitions.ActionType.Main }) + { + actingCharacter.UsedBonusSpell = true; + } + // END PATCH yield return __instance.HandlePostExecution(); diff --git a/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs index cec87338e1..ae3e8ab989 100644 --- a/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs @@ -472,17 +472,6 @@ public static void Postfix( CharacterActionParams actionParams, ActionDefinitions.ActionScope scope) { - //PATCH: ensure we block casting main spells if bonus spell was used - if (__instance.UsedSpecialFeatures.TryGetValue("BonusSpell", out _)) - { - __instance.UsedMainSpell = true; - } - //PATCH: ensure we block casting bonus spells if main spell was used - if (__instance.UsedSpecialFeatures.TryGetValue("MainSpell", out _)) - { - __instance.UsedBonusSpell = true; - } - //PATCH: support for `AttackAfterMagicEffect` AttackAfterMagicEffect.HandleAttackAfterMagicEffect(__instance, actionParams); From e4fbac6b740b3e4db3afbf49900581e94674f255 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 22:17:17 -0700 Subject: [PATCH 71/91] remove previously demoted FS --- ...esentation-InvalidSyntaxTranslation-en.txt | 2 +- .../UnfinishedBusinessBlueprints/Assets.txt | 31 +- .../FeatDefinition/FeatGroupHalfStrength.json | 2 +- .../FeatMerciless.json | 7 +- .../FeatPolearmExpert.json | 6 +- .../FeatRopeItUp.json | 6 +- .../FeatSentinel.json | 6 +- .../FeatShieldExpert.json | 6 +- .../FeatMonkShieldExpert.json | 44 --- .../ProficiencyFeatMerciless.json | 35 -- .../ProficiencyFeatMonkShieldExpert.json | 35 -- .../ProficiencyFeatPolearmExpert.json | 35 -- .../ProficiencyFeatRopeItUp.json | 35 -- .../ProficiencyFeatSentinel.json | 35 -- .../ProficiencyFeatShieldExpert.json | 35 -- .../ProficiencyMonkShieldExpert.json | 35 -- .../FightingStyleDefinition/Merciless.json | 35 -- .../MonkShieldExpert.json | 34 -- .../PolearmExpert.json | 34 -- .../FightingStyleDefinition/RopeItUp.json | 34 -- .../FightingStyleDefinition/Sentinel.json | 34 -- .../FightingStyleDefinition/ShieldExpert.json | 34 -- .../RulesetCharacterExtensions.cs | 8 - .../Behaviors/CustomSituationalContext.cs | 11 - .../ChangelogHistory.txt | 1 + SolastaUnfinishedBusiness/Feats/OtherFeats.cs | 356 ++++++++++++++++-- .../FightingStyles/Merciless.cs | 154 -------- .../FightingStyles/MonkShieldExpert.cs | 25 -- .../FightingStyles/PolearmExpert.cs | 39 -- .../FightingStyles/RopeItUp.cs | 53 --- .../FightingStyles/Sentinel.cs | 111 ------ .../FightingStyles/ShieldExpert.cs | 37 -- .../Models/CharacterUAContext.cs | 1 - .../Models/FightingStyleContext.cs | 18 - .../GameLocationBattleManagerPatcher.cs | 4 +- .../RulesetImplementationManagerPatcher.cs | 28 -- .../Resources/FightingStyles/Merciless.png | Bin 29769 -> 0 bytes .../FightingStyles/PolearmExpert.png | Bin 30136 -> 0 bytes .../Resources/FightingStyles/RopeItUp.png | Bin 30896 -> 0 bytes .../Resources/FightingStyles/Sentinel.png | Bin 29954 -> 0 bytes .../Resources/FightingStyles/ShieldExpert.png | Bin 30620 -> 0 bytes .../Translations/de/FightingStyles-de.txt | 2 - .../Translations/en/FightingStyles-en.txt | 2 - .../Translations/es/FightingStyles-es.txt | 2 - .../Translations/fr/FightingStyles-fr.txt | 2 - .../Translations/it/FightingStyles-it.txt | 2 - .../Translations/ja/FightingStyles-ja.txt | 2 - .../Translations/ko/FightingStyles-ko.txt | 2 - .../pt-BR/FightingStyles-pt-BR.txt | 2 - .../Translations/ru/FightingStyles-ru.txt | 2 - .../zh-CN/FightingStyles-zh-CN.txt | 2 - 51 files changed, 340 insertions(+), 1086 deletions(-) rename Diagnostics/UnfinishedBusinessBlueprints/{FeatDefinitionWithPrerequisites => FeatDefinition}/FeatMerciless.json (82%) rename Diagnostics/UnfinishedBusinessBlueprints/{FeatDefinitionWithPrerequisites => FeatDefinition}/FeatPolearmExpert.json (84%) rename Diagnostics/UnfinishedBusinessBlueprints/{FeatDefinitionWithPrerequisites => FeatDefinition}/FeatRopeItUp.json (84%) rename Diagnostics/UnfinishedBusinessBlueprints/{FeatDefinitionWithPrerequisites => FeatDefinition}/FeatSentinel.json (84%) rename Diagnostics/UnfinishedBusinessBlueprints/{FeatDefinitionWithPrerequisites => FeatDefinition}/FeatShieldExpert.json (84%) delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMonkShieldExpert.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMerciless.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMonkShieldExpert.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPolearmExpert.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatRopeItUp.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatSentinel.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatShieldExpert.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyMonkShieldExpert.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Merciless.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/MonkShieldExpert.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/PolearmExpert.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/RopeItUp.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Sentinel.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/ShieldExpert.json delete mode 100644 SolastaUnfinishedBusiness/FightingStyles/Merciless.cs delete mode 100644 SolastaUnfinishedBusiness/FightingStyles/MonkShieldExpert.cs delete mode 100644 SolastaUnfinishedBusiness/FightingStyles/PolearmExpert.cs delete mode 100644 SolastaUnfinishedBusiness/FightingStyles/RopeItUp.cs delete mode 100644 SolastaUnfinishedBusiness/FightingStyles/Sentinel.cs delete mode 100644 SolastaUnfinishedBusiness/FightingStyles/ShieldExpert.cs delete mode 100644 SolastaUnfinishedBusiness/Resources/FightingStyles/Merciless.png delete mode 100644 SolastaUnfinishedBusiness/Resources/FightingStyles/PolearmExpert.png delete mode 100644 SolastaUnfinishedBusiness/Resources/FightingStyles/RopeItUp.png delete mode 100644 SolastaUnfinishedBusiness/Resources/FightingStyles/Sentinel.png delete mode 100644 SolastaUnfinishedBusiness/Resources/FightingStyles/ShieldExpert.png diff --git a/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt b/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt index 04d4a52bf0..4a3b35de9e 100644 --- a/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt +++ b/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt @@ -865,7 +865,7 @@ FeatGroupHalfCharisma Description='Aegis Touched [Cha], Apothecary [Cha], Awaken FeatGroupHalfConstitution Description='Awaken the Beast [Con], Badlands Marauder, Baleful Scion [Con], Chef [Con], Creed of Arun, Crusher [Con], Dragon Fear [Con], Dragon Hide [Con], Dwarven Fortitude, Enduring Body, Focused Sleeper, Frost Adaptation, Grudge Bearer [Con], Hard to Kill, Hardy [Con], Infernal Constitution, Orcish Aggression [Con], Orcish Fury [Con], Primal Rage [Con], Robust, Second Chance [Con], Sturdiness of the Tundra'. FeatGroupHalfDexterity Description='Acrobat, Ambidextrous, Athlete [Dex], Awaken the Beast [Dex], Baleful Scion [Dex], Close Quarters [Dex], Creed of Misaye, Devastating Strikes [Dex], Discretion of the Coedymwarth, Eager for Battle, Elven Accuracy [Dex], Fade Away [Dex], Forest Runner, Longsword Finesse, Moderately Armored [Dex], Old Tactics [Dex], Piercer [Dex], Revenant Blade [Dex], Second Chance [Dex], Slasher [Dex], Squat Nimbleness [Dex], Stealthy, Uncanny Accuracy, Weapon Master [Dex]'. FeatGroupHalfIntelligence Description='Aegis Touched [Int], Apothecary [Int], Arcane Defense, Arcane Precision, Arcanist, Awaken the Beast [Int], Baleful Scion [Int], Celestial Touched [Int], Close Quarters [Int], Creed of Pakri, Elven Accuracy [Int], Fade Away [Int], Fey Teleportation [Int], Flame Touched [Int], Flames of Phlegethos [Int], Iridescent Touched [Int], Peregrination Touched [Int], Retinue Touched [Int], Scriber, Shadow Touched [Int], Telekinetic [Int], Theologian, Toxicologist [Int], Verdant Touched [Int]'. -FeatGroupHalfStrength Description='Athlete [Str], Awaken the Beast [Str], Baleful Scion [Str], Creed of Einar, Crusher [Str], Devastating Strikes [Str], Dragon Fear [Str], Dragon Hide [Str], Grudge Bearer [Str], Hardy [Str], Hauler, Heavy Armor Master, Might of the Iron Legion, Moderately Armored [Str], Old Tactics [Str], Orcish Aggression [Str], Orcish Fury [Str], Piercer [Str], Primal Rage [Str], Revenant Blade [Str], Slasher [Str], Squat Nimbleness [Str], Weapon Master [Str]'. +FeatGroupHalfStrength Description='Athlete [Str], Awaken the Beast [Str], Baleful Scion [Str], Creed of Einar, Crusher [Str], Devastating Strikes [Str], Dragon Fear [Str], Dragon Hide [Str], Grudge Bearer [Str], Hardy [Str], Hauler, Heavy Armor Master, Might of the Iron Legion, Moderately Armored [Str], Old Tactics [Str], Orcish Aggression [Str], Orcish Fury [Str], Piercer [Str], Primal Rage [Str], Revenant Blade [Str], Slasher [Str], Squat Nimbleness [Str], Thrown Weapons Master, Weapon Master [Str]'. FeatGroupHalfWisdom Description='Aegis Touched [Wis], Apothecary [Wis], Awaken the Beast [Wis], Baleful Scion [Wis], Blessed Soul [Cleric], Celestial Touched [Wis], Chef [Wis], Creed of Maraike, Elven Accuracy [Wis], Expand the Hunt, Fey Teleportation [Wis], Flame Touched [Wis], Grudge Bearer [Wis], Iridescent Touched [Wis], Peregrination Touched [Wis], Retinue Touched [Wis], Shadow Touched [Wis], Telekinetic [Wis], Toxicologist [Wis], Verdant Touched [Wis], Wise Archery, Wise Defense, Wise Precision'. FeatGroupHardy Description='Increase your Strength or Constitution by 1, to a maximum of 20. Whenever you use your second wind feature, you gain 1D10 + your class level temporary hit points.'. FeatGroupIridescentTouched Description='Increase one of your mental attributes by 1, to a maximum of 20. diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 79de577ef8..7c415b4767 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -1449,11 +1449,10 @@ FeatMediumArmorDex FeatDefinition FeatDefinition 5cf08c9e-126a-5d79-b085-21952bb FeatMediumArmorMaster FeatDefinition FeatDefinition 54856802-e69c-52bc-969b-79089adfbd67 FeatMediumArmorStr FeatDefinition FeatDefinition 80edeffa-2a0e-55d2-bb69-54bb1c21366e FeatMenacing FeatDefinitionWithPrerequisites FeatDefinition 5a87a730-7598-5f80-8f4b-13499a99099d -FeatMerciless FeatDefinitionWithPrerequisites FeatDefinition f91e4faa-6d59-5cf1-964e-9dd2943ed8e8 +FeatMerciless FeatDefinition FeatDefinition f91e4faa-6d59-5cf1-964e-9dd2943ed8e8 FeatMetamagicAdept FeatDefinitionWithPrerequisites FeatDefinition 2f81cb57-a32f-515e-8a8d-a75c96ef957d FeatMobile FeatDefinition FeatDefinition 18295c91-9f65-57c4-b28d-eaf0711cf5de FeatMonkInitiate FeatDefinition FeatDefinition 5eb46cdf-c9c5-56b7-a66d-a3e747fe80ab -FeatMonkShieldExpert FeatDefinitionWithPrerequisites FeatDefinition 40aae7ca-8def-5541-a01c-e6f6374ec9cf FeatNaturalFluidity FeatDefinitionWithPrerequisites FeatDefinition 0f7ab357-9ce6-5a4e-8833-b25db493c19c FeatOldTacticsDex FeatDefinition FeatDefinition 6431e575-edf1-54b8-a5f6-802e190b9385 FeatOldTacticsStr FeatDefinition FeatDefinition 0aabc417-70b8-56e8-b2ff-c1cc2425bb5d @@ -1469,7 +1468,7 @@ FeatPiercerDex FeatDefinition FeatDefinition 83f56c16-81c6-56ae-bae5-90040b40be9 FeatPiercerStr FeatDefinition FeatDefinition 62e785f0-3e17-5635-97fa-4c97c07b6830 FeatPoisoner FeatDefinitionWithPrerequisites FeatDefinition 4ebd3fe5-310c-5620-a38f-9b40d6e1027b FeatPoisonousSkin FeatDefinition FeatDefinition 4eb4bebb-bd80-58fc-a7d0-832f0013471c -FeatPolearmExpert FeatDefinitionWithPrerequisites FeatDefinition cb389132-d8dc-597c-a510-15ee95d029e7 +FeatPolearmExpert FeatDefinition FeatDefinition cb389132-d8dc-597c-a510-15ee95d029e7 FeatPotentSpellcasterBard FeatDefinitionWithPrerequisites FeatDefinition 786c72cc-a7a0-54d0-bf2c-e0c327c9b71f FeatPotentSpellcasterCleric FeatDefinitionWithPrerequisites FeatDefinition da26887a-efc8-50f9-976d-e77ec117e506 FeatPotentSpellcasterDruid FeatDefinitionWithPrerequisites FeatDefinition 9cdcb7c8-7e11-5211-9b4c-37520b4593ee @@ -1489,16 +1488,16 @@ FeatRetinueTouchedInt FeatDefinition FeatDefinition 65992cc4-5314-571e-b12c-aab1 FeatRetinueTouchedWis FeatDefinition FeatDefinition ec222b4d-37f3-5a42-ba9d-6599a142be6e FeatRevenantGreatSwordDex FeatDefinitionWithPrerequisites FeatDefinition ec489b38-d0ef-5db6-a6c8-374091a91353 FeatRevenantGreatSwordStr FeatDefinitionWithPrerequisites FeatDefinition 9f8126fa-5634-5dc8-b9fa-ae83d8ef01d2 -FeatRopeItUp FeatDefinitionWithPrerequisites FeatDefinition f3b31d3e-1fd9-5aa3-ab73-1ba343a45840 +FeatRopeItUp FeatDefinition FeatDefinition f3b31d3e-1fd9-5aa3-ab73-1ba343a45840 FeatSavageAttack FeatDefinition FeatDefinition 9d9b6ca7-e9ff-5d6f-9a74-d1226e179ef4 FeatSecondChanceCha FeatDefinitionWithPrerequisites FeatDefinition 4990af6f-1705-541a-acb1-1931e88b0af2 FeatSecondChanceCon FeatDefinitionWithPrerequisites FeatDefinition e1376d00-a9ce-53a0-b6cb-4355e46a68b1 FeatSecondChanceDex FeatDefinitionWithPrerequisites FeatDefinition 947401e0-17dc-5f4c-bae5-c092e34a45c9 -FeatSentinel FeatDefinitionWithPrerequisites FeatDefinition 3682aea3-2741-538a-9471-d8d00bf2cd0f +FeatSentinel FeatDefinition FeatDefinition 3682aea3-2741-538a-9471-d8d00bf2cd0f FeatShadowTouchedCha FeatDefinition FeatDefinition 38c0a46e-5443-5fe2-aa4d-c726e0656514 FeatShadowTouchedInt FeatDefinition FeatDefinition b3d92fa6-273c-51c1-8a12-fd52fa5003da FeatShadowTouchedWis FeatDefinition FeatDefinition 19acb877-4540-5570-9223-72393d215b12 -FeatShieldExpert FeatDefinitionWithPrerequisites FeatDefinition 75c0d5b6-2fcf-56ef-8a01-aed0adc45084 +FeatShieldExpert FeatDefinition FeatDefinition 75c0d5b6-2fcf-56ef-8a01-aed0adc45084 FeatShieldTechniques FeatDefinition FeatDefinition c46efc4c-6363-5893-b56f-23f968875f4e FeatSlasherDex FeatDefinition FeatDefinition 2e921b1b-f659-5c0a-83f4-f0a64325017d FeatSlasherStr FeatDefinition FeatDefinition dc98aa3d-c4f7-52a6-ad94-b6666033fe66 @@ -4007,17 +4006,11 @@ ProficiencyFeatInterception FeatureDefinitionProficiency FeatureDefinition f3314 ProficiencyFeatLunger FeatureDefinitionProficiency FeatureDefinition 0da39cf7-2df3-563d-ab18-f8ad7c8507af ProficiencyFeatMediumArmor FeatureDefinitionProficiency FeatureDefinition ed422a81-c767-56b0-a455-ad1c88d88869 ProficiencyFeatMenacing FeatureDefinitionProficiency FeatureDefinition 124a0eba-3658-5337-a675-1de95d55c6ad -ProficiencyFeatMerciless FeatureDefinitionProficiency FeatureDefinition 19a654a6-15c9-57af-a93f-f14f5eed5b71 -ProficiencyFeatMonkShieldExpert FeatureDefinitionProficiency FeatureDefinition 3c9cec58-0a28-5b43-b9e5-adaf1049543d ProficiencyFeatPickPocket FeatureDefinitionProficiency FeatureDefinition 3b9d1757-103e-57a0-bd7b-b9174e57400f ProficiencyFeatPoisoner FeatureDefinitionProficiency FeatureDefinition 9fcf9187-9d80-5363-b82e-e1f162565cab -ProficiencyFeatPolearmExpert FeatureDefinitionProficiency FeatureDefinition 1c75c89c-a39e-5546-8bba-022b6b9b1271 ProficiencyFeatProtection FeatureDefinitionProficiency FeatureDefinition 3db145d9-c49b-59da-93d2-df3587fd6104 ProficiencyFeatPugilist FeatureDefinitionProficiency FeatureDefinition a213f59d-9130-5168-a0ac-0ae7f54fcdb1 ProficiencyFeatRemarkableTechnique FeatureDefinitionProficiency FeatureDefinition 11294f12-730d-550d-832c-049e9de2ae52 -ProficiencyFeatRopeItUp FeatureDefinitionProficiency FeatureDefinition a85c3f98-b265-5c63-b11f-0e2299e0935c -ProficiencyFeatSentinel FeatureDefinitionProficiency FeatureDefinition 69cd3b17-4a21-5c62-bd20-818e72c83031 -ProficiencyFeatShieldExpert FeatureDefinitionProficiency FeatureDefinition 6fd6a6d7-783e-52d3-8122-7d906ebcb8cd ProficiencyFeatSquatNimblenessAcrobatics FeatureDefinitionProficiency FeatureDefinition bc612781-dacc-53dd-b622-a98ea5294bb8 ProficiencyFeatSquatNimblenessAthletics FeatureDefinitionProficiency FeatureDefinition f09658d1-a649-544e-9467-8ba8e37474a0 ProficiencyFeatStealthy FeatureDefinitionProficiency FeatureDefinition dfb97213-b173-5c3c-910c-1b555599df79 @@ -4063,7 +4056,6 @@ ProficiencyMartialArcaneArcherArcana FeatureDefinitionProficiency FeatureDefinit ProficiencyMartialArcaneArcherNature FeatureDefinitionProficiency FeatureDefinition 91b27fc5-3efe-52b3-994e-841d3f98ae06 ProficiencyMartialGuardianSentinel FeatureDefinitionProficiency FeatureDefinition e8fcd6dd-8e93-5062-8b61-c0b4556f6f1c ProficiencyMartialGuardianUnyielding FeatureDefinitionProficiency FeatureDefinition 3377a4a1-b5e8-5838-aa80-4b332878779b -ProficiencyMonkShieldExpert FeatureDefinitionProficiency FeatureDefinition db009d3e-bbd3-5750-b5b2-24dab1d3ec3b ProficiencyObsidianDwarfLanguages FeatureDefinitionProficiency FeatureDefinition 0b99ff27-3652-5c77-abce-2b00cd7dec30 ProficiencyOligathLanguages FeatureDefinitionProficiency FeatureDefinition b4c55bc0-1663-5e3c-a660-3858df85ea98 ProficiencyOligathNaturalAthlete FeatureDefinitionProficiency FeatureDefinition 027ff7ae-3d0b-5451-a89c-95f3d4a5df64 @@ -6813,17 +6805,11 @@ ProficiencyFeatInterception FeatureDefinitionProficiency FeatureDefinitionProfic ProficiencyFeatLunger FeatureDefinitionProficiency FeatureDefinitionProficiency 0da39cf7-2df3-563d-ab18-f8ad7c8507af ProficiencyFeatMediumArmor FeatureDefinitionProficiency FeatureDefinitionProficiency ed422a81-c767-56b0-a455-ad1c88d88869 ProficiencyFeatMenacing FeatureDefinitionProficiency FeatureDefinitionProficiency 124a0eba-3658-5337-a675-1de95d55c6ad -ProficiencyFeatMerciless FeatureDefinitionProficiency FeatureDefinitionProficiency 19a654a6-15c9-57af-a93f-f14f5eed5b71 -ProficiencyFeatMonkShieldExpert FeatureDefinitionProficiency FeatureDefinitionProficiency 3c9cec58-0a28-5b43-b9e5-adaf1049543d ProficiencyFeatPickPocket FeatureDefinitionProficiency FeatureDefinitionProficiency 3b9d1757-103e-57a0-bd7b-b9174e57400f ProficiencyFeatPoisoner FeatureDefinitionProficiency FeatureDefinitionProficiency 9fcf9187-9d80-5363-b82e-e1f162565cab -ProficiencyFeatPolearmExpert FeatureDefinitionProficiency FeatureDefinitionProficiency 1c75c89c-a39e-5546-8bba-022b6b9b1271 ProficiencyFeatProtection FeatureDefinitionProficiency FeatureDefinitionProficiency 3db145d9-c49b-59da-93d2-df3587fd6104 ProficiencyFeatPugilist FeatureDefinitionProficiency FeatureDefinitionProficiency a213f59d-9130-5168-a0ac-0ae7f54fcdb1 ProficiencyFeatRemarkableTechnique FeatureDefinitionProficiency FeatureDefinitionProficiency 11294f12-730d-550d-832c-049e9de2ae52 -ProficiencyFeatRopeItUp FeatureDefinitionProficiency FeatureDefinitionProficiency a85c3f98-b265-5c63-b11f-0e2299e0935c -ProficiencyFeatSentinel FeatureDefinitionProficiency FeatureDefinitionProficiency 69cd3b17-4a21-5c62-bd20-818e72c83031 -ProficiencyFeatShieldExpert FeatureDefinitionProficiency FeatureDefinitionProficiency 6fd6a6d7-783e-52d3-8122-7d906ebcb8cd ProficiencyFeatSquatNimblenessAcrobatics FeatureDefinitionProficiency FeatureDefinitionProficiency bc612781-dacc-53dd-b622-a98ea5294bb8 ProficiencyFeatSquatNimblenessAthletics FeatureDefinitionProficiency FeatureDefinitionProficiency f09658d1-a649-544e-9467-8ba8e37474a0 ProficiencyFeatStealthy FeatureDefinitionProficiency FeatureDefinitionProficiency dfb97213-b173-5c3c-910c-1b555599df79 @@ -6869,7 +6855,6 @@ ProficiencyMartialArcaneArcherArcana FeatureDefinitionProficiency FeatureDefinit ProficiencyMartialArcaneArcherNature FeatureDefinitionProficiency FeatureDefinitionProficiency 91b27fc5-3efe-52b3-994e-841d3f98ae06 ProficiencyMartialGuardianSentinel FeatureDefinitionProficiency FeatureDefinitionProficiency e8fcd6dd-8e93-5062-8b61-c0b4556f6f1c ProficiencyMartialGuardianUnyielding FeatureDefinitionProficiency FeatureDefinitionProficiency 3377a4a1-b5e8-5838-aa80-4b332878779b -ProficiencyMonkShieldExpert FeatureDefinitionProficiency FeatureDefinitionProficiency db009d3e-bbd3-5750-b5b2-24dab1d3ec3b ProficiencyObsidianDwarfLanguages FeatureDefinitionProficiency FeatureDefinitionProficiency 0b99ff27-3652-5c77-abce-2b00cd7dec30 ProficiencyOligathLanguages FeatureDefinitionProficiency FeatureDefinitionProficiency b4c55bc0-1663-5e3c-a660-3858df85ea98 ProficiencyOligathNaturalAthlete FeatureDefinitionProficiency FeatureDefinitionProficiency 027ff7ae-3d0b-5451-a89c-95f3d4a5df64 @@ -6957,14 +6942,8 @@ Executioner FightingStyleDefinition FightingStyleDefinition d64dd596-85ae-5bea-9 HandAndAHalf FightingStyleDefinition FightingStyleDefinition 0d3fd48d-ae29-598e-b4d0-5202a9b35d9c Interception FightingStyleDefinition FightingStyleDefinition 047741c7-24ee-597e-b480-8f0d3d881712 Lunger FightingStyleDefinition FightingStyleDefinition b20cff60-4c4a-5c64-818f-c6102e5bfdb5 -Merciless FightingStyleDefinition FightingStyleDefinition 6d7a4f67-8035-55e2-823e-619534487125 -MonkShieldExpert FightingStyleDefinition FightingStyleDefinition 1bfb8998-a933-52c1-9b4b-8f8ec5f85e83 -PolearmExpert FightingStyleDefinition FightingStyleDefinition f595a71b-7902-5950-87d4-86abd4b656e9 Pugilist FightingStyleDefinition FightingStyleDefinition 00d288b7-bce4-54f4-903e-00299392f8c6 RemarkableTechnique FightingStyleDefinition FightingStyleDefinition 8cdb592b-9041-52a5-801f-fa620bdd9d0b -RopeItUp FightingStyleDefinition FightingStyleDefinition 5ee8beac-d159-5b23-87d0-77a989d37ce6 -Sentinel FightingStyleDefinition FightingStyleDefinition 55d7318b-c14b-5742-8605-eb774f5444d6 -ShieldExpert FightingStyleDefinition FightingStyleDefinition 51d8b57b-ad17-5f32-a593-2a5a72bd584f Torchbearer FightingStyleDefinition FightingStyleDefinition 6fee9da0-fcf2-5f30-bc96-9d839f770760 ActivatorPlate~Catacombs~MOD GadgetBlueprint GadgetBlueprint 7c4dcc42-484e-5b1e-882f-7015214f0a16 ActivatorPlate~CityValley~MOD GadgetBlueprint GadgetBlueprint b00f93c7-d849-528c-bc1d-92fc924a9438 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfStrength.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfStrength.json index 3da05d3413..2b471e3b53 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfStrength.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfStrength.json @@ -16,7 +16,7 @@ "$type": "GuiPresentation, Assembly-CSharp", "hidden": true, "title": "Feat/&FeatGroupHalfStrengthTitle", - "description": "Athlete [Str], Awaken the Beast [Str], Baleful Scion [Str], Creed of Einar, Crusher [Str], Devastating Strikes [Str], Dragon Fear [Str], Dragon Hide [Str], Grudge Bearer [Str], Hardy [Str], Hauler, Heavy Armor Master, Might of the Iron Legion, Moderately Armored [Str], Old Tactics [Str], Orcish Aggression [Str], Orcish Fury [Str], Piercer [Str], Primal Rage [Str], Revenant Blade [Str], Slasher [Str], Squat Nimbleness [Str], Weapon Master [Str]", + "description": "Athlete [Str], Awaken the Beast [Str], Baleful Scion [Str], Creed of Einar, Crusher [Str], Devastating Strikes [Str], Dragon Fear [Str], Dragon Hide [Str], Grudge Bearer [Str], Hardy [Str], Hauler, Heavy Armor Master, Might of the Iron Legion, Moderately Armored [Str], Old Tactics [Str], Orcish Aggression [Str], Orcish Fury [Str], Piercer [Str], Primal Rage [Str], Revenant Blade [Str], Slasher [Str], Squat Nimbleness [Str], Thrown Weapons Master, Weapon Master [Str]", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", "m_AssetGUID": "", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMerciless.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatMerciless.json similarity index 82% rename from Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMerciless.json rename to Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatMerciless.json index 07a6b699f0..c686ad9a70 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMerciless.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatMerciless.json @@ -1,5 +1,5 @@ { - "$type": "FeatDefinitionWithPrerequisites, SolastaUnfinishedBusiness", + "$type": "FeatDefinition, Assembly-CSharp", "compatibleClassesPrerequisite": [], "mustCastSpellsPrerequisite": false, "compatibleRacesPrerequisite": [], @@ -12,7 +12,8 @@ "familyTag": "", "knownFeatsPrerequisite": [], "features": [ - "Definition:ProficiencyFeatMerciless:19a654a6-15c9-57af-a93f-f14f5eed5b71" + "Definition:PowerFightingStyleMerciless:2500343e-570f-57ec-bf7c-02225d302cba", + "Definition:TargetReducedToZeroHpFightingStyleMerciless:915fb6af-6989-5e40-9087-1ce64a2bbfba" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", @@ -21,7 +22,7 @@ "description": "FightingStyle/&MercilessDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "e0b4a203-382b-5ab4-acfa-af309c1a019c", + "m_AssetGUID": "", "m_SubObjectName": null, "m_SubObjectType": null }, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatPolearmExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatPolearmExpert.json similarity index 84% rename from Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatPolearmExpert.json rename to Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatPolearmExpert.json index 999d167b5a..b580535f74 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatPolearmExpert.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatPolearmExpert.json @@ -1,5 +1,5 @@ { - "$type": "FeatDefinitionWithPrerequisites, SolastaUnfinishedBusiness", + "$type": "FeatDefinition, Assembly-CSharp", "compatibleClassesPrerequisite": [], "mustCastSpellsPrerequisite": false, "compatibleRacesPrerequisite": [], @@ -12,7 +12,7 @@ "familyTag": "", "knownFeatsPrerequisite": [], "features": [ - "Definition:ProficiencyFeatPolearmExpert:1c75c89c-a39e-5546-8bba-022b6b9b1271" + "Definition:FeaturePolearm:8e6e835a-2424-5900-8677-034801779b88" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", @@ -21,7 +21,7 @@ "description": "FightingStyle/&PolearmExpertDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "4b56c077-b3ab-5cac-b4ae-1aa5a3ecdfd5", + "m_AssetGUID": "", "m_SubObjectName": null, "m_SubObjectType": null }, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatRopeItUp.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatRopeItUp.json similarity index 84% rename from Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatRopeItUp.json rename to Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatRopeItUp.json index 9d884263b2..2738ae27f4 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatRopeItUp.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatRopeItUp.json @@ -1,5 +1,5 @@ { - "$type": "FeatDefinitionWithPrerequisites, SolastaUnfinishedBusiness", + "$type": "FeatDefinition, Assembly-CSharp", "compatibleClassesPrerequisite": [], "mustCastSpellsPrerequisite": false, "compatibleRacesPrerequisite": [], @@ -12,7 +12,7 @@ "familyTag": "", "knownFeatsPrerequisite": [], "features": [ - "Definition:ProficiencyFeatRopeItUp:a85c3f98-b265-5c63-b11f-0e2299e0935c" + "Definition:AttributeModifierRopeItUp:0cb22e4d-85a2-58b6-a418-e3e38de57520" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", @@ -21,7 +21,7 @@ "description": "FightingStyle/&RopeItUpDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "54c7e250-8ec1-5fac-9a50-f273402e0a62", + "m_AssetGUID": "", "m_SubObjectName": null, "m_SubObjectType": null }, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatSentinel.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatSentinel.json similarity index 84% rename from Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatSentinel.json rename to Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatSentinel.json index 78ac7a39d3..9f3a16d64a 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatSentinel.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatSentinel.json @@ -1,5 +1,5 @@ { - "$type": "FeatDefinitionWithPrerequisites, SolastaUnfinishedBusiness", + "$type": "FeatDefinition, Assembly-CSharp", "compatibleClassesPrerequisite": [], "mustCastSpellsPrerequisite": false, "compatibleRacesPrerequisite": [], @@ -12,7 +12,7 @@ "familyTag": "", "knownFeatsPrerequisite": [], "features": [ - "Definition:ProficiencyFeatSentinel:69cd3b17-4a21-5c62-bd20-818e72c83031" + "Definition:OnAttackHitEffectFeatSentinel:1a2abf93-483e-5e6e-8408-bc553864469f" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", @@ -21,7 +21,7 @@ "description": "FightingStyle/&SentinelDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "c694eed9-c1d3-5d5b-b69d-b9459bf27cb9", + "m_AssetGUID": "", "m_SubObjectName": null, "m_SubObjectType": null }, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatShieldExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatShieldExpert.json similarity index 84% rename from Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatShieldExpert.json rename to Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatShieldExpert.json index da3b344fbd..ab0ff0407b 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatShieldExpert.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatShieldExpert.json @@ -1,5 +1,5 @@ { - "$type": "FeatDefinitionWithPrerequisites, SolastaUnfinishedBusiness", + "$type": "FeatDefinition, Assembly-CSharp", "compatibleClassesPrerequisite": [], "mustCastSpellsPrerequisite": false, "compatibleRacesPrerequisite": [], @@ -12,7 +12,7 @@ "familyTag": "", "knownFeatsPrerequisite": [], "features": [ - "Definition:ProficiencyFeatShieldExpert:6fd6a6d7-783e-52d3-8122-7d906ebcb8cd" + "Definition:AddExtraAttackShieldExpert:4c494f10-3661-54c4-a7bd-1de696250ba4" ], "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", @@ -21,7 +21,7 @@ "description": "FightingStyle/&ShieldExpertDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "12d11a0c-b767-586b-9508-df780e4f477d", + "m_AssetGUID": "", "m_SubObjectName": null, "m_SubObjectType": null }, diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMonkShieldExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMonkShieldExpert.json deleted file mode 100644 index 5f971a4f7d..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatMonkShieldExpert.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "$type": "FeatDefinitionWithPrerequisites, SolastaUnfinishedBusiness", - "compatibleClassesPrerequisite": [], - "mustCastSpellsPrerequisite": false, - "compatibleRacesPrerequisite": [], - "minimalAbilityScorePrerequisite": false, - "minimalAbilityScoreValue": 13, - "minimalAbilityScoreName": "Strength", - "armorProficiencyPrerequisite": false, - "armorProficiencyCategory": "", - "hasFamilyTag": false, - "familyTag": "", - "knownFeatsPrerequisite": [], - "features": [ - "Definition:ProficiencyFeatMonkShieldExpert:3c9cec58-0a28-5b43-b9e5-adaf1049543d" - ], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "FightingStyle/&MonkShieldExpertTitle", - "description": "FightingStyle/&MonkShieldExpertDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "7dd630bc-c1c3-5f9e-8d78-a83e3b769927", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "40aae7ca-8def-5541-a01c-e6f6374ec9cf", - "contentPack": 9999, - "name": "FeatMonkShieldExpert" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMerciless.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMerciless.json deleted file mode 100644 index 86c2f8126b..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMerciless.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "FightingStyle", - "proficiencies": [ - "Merciless" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "FightingStyle/&MercilessTitle", - "description": "FightingStyle/&MercilessDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "e0b4a203-382b-5ab4-acfa-af309c1a019c", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "19a654a6-15c9-57af-a93f-f14f5eed5b71", - "contentPack": 9999, - "name": "ProficiencyFeatMerciless" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMonkShieldExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMonkShieldExpert.json deleted file mode 100644 index 9fb6b964fe..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMonkShieldExpert.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "FightingStyle", - "proficiencies": [ - "MonkShieldExpert" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "FightingStyle/&MonkShieldExpertTitle", - "description": "FightingStyle/&MonkShieldExpertDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "7dd630bc-c1c3-5f9e-8d78-a83e3b769927", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "3c9cec58-0a28-5b43-b9e5-adaf1049543d", - "contentPack": 9999, - "name": "ProficiencyFeatMonkShieldExpert" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPolearmExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPolearmExpert.json deleted file mode 100644 index 19b6cbc76b..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPolearmExpert.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "FightingStyle", - "proficiencies": [ - "PolearmExpert" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "FightingStyle/&PolearmExpertTitle", - "description": "FightingStyle/&PolearmExpertDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "4b56c077-b3ab-5cac-b4ae-1aa5a3ecdfd5", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "1c75c89c-a39e-5546-8bba-022b6b9b1271", - "contentPack": 9999, - "name": "ProficiencyFeatPolearmExpert" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatRopeItUp.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatRopeItUp.json deleted file mode 100644 index 497dd23b32..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatRopeItUp.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "FightingStyle", - "proficiencies": [ - "RopeItUp" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "FightingStyle/&RopeItUpTitle", - "description": "FightingStyle/&RopeItUpDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "54c7e250-8ec1-5fac-9a50-f273402e0a62", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "a85c3f98-b265-5c63-b11f-0e2299e0935c", - "contentPack": 9999, - "name": "ProficiencyFeatRopeItUp" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatSentinel.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatSentinel.json deleted file mode 100644 index d1344bdca4..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatSentinel.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "FightingStyle", - "proficiencies": [ - "Sentinel" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "FightingStyle/&SentinelTitle", - "description": "FightingStyle/&SentinelDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "c694eed9-c1d3-5d5b-b69d-b9459bf27cb9", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "69cd3b17-4a21-5c62-bd20-818e72c83031", - "contentPack": 9999, - "name": "ProficiencyFeatSentinel" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatShieldExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatShieldExpert.json deleted file mode 100644 index a3e4d2d4fd..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatShieldExpert.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "FightingStyle", - "proficiencies": [ - "ShieldExpert" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "FightingStyle/&ShieldExpertTitle", - "description": "FightingStyle/&ShieldExpertDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "12d11a0c-b767-586b-9508-df780e4f477d", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "6fd6a6d7-783e-52d3-8122-7d906ebcb8cd", - "contentPack": 9999, - "name": "ProficiencyFeatShieldExpert" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyMonkShieldExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyMonkShieldExpert.json deleted file mode 100644 index 2c0d96f44b..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyMonkShieldExpert.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "Armor", - "proficiencies": [ - "ShieldCategory" - ], - "forbiddenItemTags": [], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, - "title": "Equipment/&ShieldCategoryTitle", - "description": "Equipment/&ShieldCategoryDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "db009d3e-bbd3-5750-b5b2-24dab1d3ec3b", - "contentPack": 9999, - "name": "ProficiencyMonkShieldExpert" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Merciless.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Merciless.json deleted file mode 100644 index 26a8ef4b63..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Merciless.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "$type": "FightingStyleDefinition, Assembly-CSharp", - "features": [ - "Definition:PowerFightingStyleMerciless:2500343e-570f-57ec-bf7c-02225d302cba", - "Definition:TargetReducedToZeroHpFightingStyleMerciless:915fb6af-6989-5e40-9087-1ce64a2bbfba" - ], - "condition": "RangedWeaponAttack", - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, - "title": "FightingStyle/&MercilessTitle", - "description": "FightingStyle/&MercilessDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "e0b4a203-382b-5ab4-acfa-af309c1a019c", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "6d7a4f67-8035-55e2-823e-619534487125", - "contentPack": 9999, - "name": "Merciless" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/MonkShieldExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/MonkShieldExpert.json deleted file mode 100644 index 464c83d472..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/MonkShieldExpert.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$type": "FightingStyleDefinition, Assembly-CSharp", - "features": [ - "Definition:ProficiencyMonkShieldExpert:db009d3e-bbd3-5750-b5b2-24dab1d3ec3b" - ], - "condition": "RangedWeaponAttack", - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, - "title": "FightingStyle/&MonkShieldExpertTitle", - "description": "FightingStyle/&MonkShieldExpertDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "7dd630bc-c1c3-5f9e-8d78-a83e3b769927", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "1bfb8998-a933-52c1-9b4b-8f8ec5f85e83", - "contentPack": 9999, - "name": "MonkShieldExpert" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/PolearmExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/PolearmExpert.json deleted file mode 100644 index 6074a5acd4..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/PolearmExpert.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$type": "FightingStyleDefinition, Assembly-CSharp", - "features": [ - "Definition:FeaturePolearm:8e6e835a-2424-5900-8677-034801779b88" - ], - "condition": "RangedWeaponAttack", - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, - "title": "FightingStyle/&PolearmExpertTitle", - "description": "FightingStyle/&PolearmExpertDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "4b56c077-b3ab-5cac-b4ae-1aa5a3ecdfd5", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "f595a71b-7902-5950-87d4-86abd4b656e9", - "contentPack": 9999, - "name": "PolearmExpert" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/RopeItUp.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/RopeItUp.json deleted file mode 100644 index e27d349e4f..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/RopeItUp.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$type": "FightingStyleDefinition, Assembly-CSharp", - "features": [ - "Definition:AttributeModifierRopeItUp:0cb22e4d-85a2-58b6-a418-e3e38de57520" - ], - "condition": "RangedWeaponAttack", - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, - "title": "FightingStyle/&RopeItUpTitle", - "description": "FightingStyle/&RopeItUpDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "54c7e250-8ec1-5fac-9a50-f273402e0a62", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "5ee8beac-d159-5b23-87d0-77a989d37ce6", - "contentPack": 9999, - "name": "RopeItUp" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Sentinel.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Sentinel.json deleted file mode 100644 index 1c73380db1..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Sentinel.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$type": "FightingStyleDefinition, Assembly-CSharp", - "features": [ - "Definition:OnAttackHitEffectFeatSentinel:1a2abf93-483e-5e6e-8408-bc553864469f" - ], - "condition": "RangedWeaponAttack", - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, - "title": "FightingStyle/&SentinelTitle", - "description": "FightingStyle/&SentinelDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "c694eed9-c1d3-5d5b-b69d-b9459bf27cb9", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "55d7318b-c14b-5742-8605-eb774f5444d6", - "contentPack": 9999, - "name": "Sentinel" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/ShieldExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/ShieldExpert.json deleted file mode 100644 index e0a7f02953..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/ShieldExpert.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$type": "FightingStyleDefinition, Assembly-CSharp", - "features": [ - "Definition:AddExtraAttackShieldExpert:4c494f10-3661-54c4-a7bd-1de696250ba4" - ], - "condition": "RangedWeaponAttack", - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": false, - "title": "FightingStyle/&ShieldExpertTitle", - "description": "FightingStyle/&ShieldExpertDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "12d11a0c-b767-586b-9508-df780e4f477d", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "51d8b57b-ad17-5f32-a593-2a5a72bd584f", - "contentPack": 9999, - "name": "ShieldExpert" -} \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Api/GameExtensions/RulesetCharacterExtensions.cs b/SolastaUnfinishedBusiness/Api/GameExtensions/RulesetCharacterExtensions.cs index 3a5617dcea..c1d0e3967c 100644 --- a/SolastaUnfinishedBusiness/Api/GameExtensions/RulesetCharacterExtensions.cs +++ b/SolastaUnfinishedBusiness/Api/GameExtensions/RulesetCharacterExtensions.cs @@ -7,7 +7,6 @@ using SolastaUnfinishedBusiness.Behaviors; using SolastaUnfinishedBusiness.Behaviors.Specific; using SolastaUnfinishedBusiness.Classes; -using SolastaUnfinishedBusiness.FightingStyles; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Validators; using static RuleDefinitions; @@ -600,11 +599,4 @@ internal static bool HasTemporaryConditionOfType(this RulesetCharacter character .Any(condition => condition.ConditionDefinition.IsSubtypeOf(conditionName) && condition.DurationType != DurationType.Permanent); } - - internal static bool HasMonkShieldExpert(this RulesetCharacter character) - { - var hero = character.GetOriginalHero(); - - return hero != null && hero.TrainedFightingStyles.Any(x => x.Name == MonkShieldExpert.ShieldExpertName); - } } diff --git a/SolastaUnfinishedBusiness/Behaviors/CustomSituationalContext.cs b/SolastaUnfinishedBusiness/Behaviors/CustomSituationalContext.cs index 2afc887229..18fd304503 100644 --- a/SolastaUnfinishedBusiness/Behaviors/CustomSituationalContext.cs +++ b/SolastaUnfinishedBusiness/Behaviors/CustomSituationalContext.cs @@ -84,17 +84,6 @@ internal static bool IsContextValid( ExtraSituationalContext.IsConcentratingOnSpell => contextParams.source.ConcentratedSpell != null, - // supports Monk Shield Expert scenarios - (ExtraSituationalContext)SituationalContext.NotWearingArmorOrShield => - !contextParams.source.IsWearingArmor() && - (!contextParams.source.IsWearingShield() || contextParams.source.HasMonkShieldExpert()), - - // supports Monk Shield Expert scenarios - (ExtraSituationalContext)SituationalContext.NotWearingArmorOrMageArmorOrShield => - !contextParams.source.IsWearingArmor() && - !contextParams.source.HasConditionOfTypeOrSubType(ConditionMagicallyArmored) && - (!contextParams.source.IsWearingShield() || contextParams.source.HasMonkShieldExpert()), - _ => def }; } diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 55f0d3c05c..233914696a 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -7,6 +7,7 @@ - fixed Ring of Knifes spell follow up power to-hit modifier - fixed target selection on Field Manipulator displacement - fixed target selection on Scatter spell +- removed previously demoted fighting styles in 1.5.97.9 [RESPEC] KNOWN ISSUES: diff --git a/SolastaUnfinishedBusiness/Feats/OtherFeats.cs b/SolastaUnfinishedBusiness/Feats/OtherFeats.cs index 075afdff13..8df0f54667 100644 --- a/SolastaUnfinishedBusiness/Feats/OtherFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/OtherFeats.cs @@ -12,7 +12,6 @@ using SolastaUnfinishedBusiness.Builders.Features; using SolastaUnfinishedBusiness.Classes; using SolastaUnfinishedBusiness.CustomUI; -using SolastaUnfinishedBusiness.FightingStyles; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Models; using SolastaUnfinishedBusiness.Properties; @@ -30,6 +29,8 @@ using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionFeatureSets; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionPowers; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.SpellDefinitions; +using static SolastaUnfinishedBusiness.Api.DatabaseHelper.WeaponTypeDefinitions; +using static SolastaUnfinishedBusiness.Models.CustomWeaponsContext; namespace SolastaUnfinishedBusiness.Feats; @@ -73,14 +74,11 @@ internal static void CreateFeats([NotNull] List feats) var elementalMasterGroup = BuildElementalMaster(feats); var weaponMasterGroup = BuildWeaponMaster(feats); - // building this way to keep backward compatibility - _ = BuildFeatFromFightingStyle(MonkShieldExpert.ShieldExpertName); - - var featMerciless = BuildFeatFromFightingStyle(Merciless.MercilessName); - var featPolearmExpert = BuildFeatFromFightingStyle(PolearmExpert.PolearmExpertName); - var featRopeIpUp = BuildFeatFromFightingStyle(RopeItUp.RopeItUpName); - var featSentinel = BuildFeatFromFightingStyle(Sentinel.SentinelName); - var featShieldExpert = BuildFeatFromFightingStyle(ShieldExpert.ShieldExpertName); + var featMerciless = FeatMerciless; + var featPolearmExpert = FeatPolearmExpert; + var featRopeIpUp = FeatRopeItUp; + var featSentinel = FeatSentinel; + var featShieldExpert = FeatShieldExpert; feats.AddRange( featAcrobat, @@ -487,9 +485,9 @@ private static FeatDefinition BuildWeaponMaster(List feats) var simpleOrMartialWeapons = DatabaseRepository.GetDatabase() .Where(x => - x != WeaponTypeDefinitions.UnarmedStrikeType && - x != CustomWeaponsContext.ThunderGauntletType && - x != CustomWeaponsContext.LightningLauncherType); + x != UnarmedStrikeType && + x != ThunderGauntletType && + x != LightningLauncherType); foreach (var weaponTypeDefinition in simpleOrMartialWeapons) { @@ -504,8 +502,8 @@ private static FeatDefinition BuildWeaponMaster(List feats) .Create($"CustomInvocation{Name}{weaponTypeName}") .SetGuiPresentation( weaponTypeDefinition.GuiPresentation.Title, - weaponTypeDefinition.GuiPresentation.Description, - CustomWeaponsContext.GetStandardWeaponOfType(weaponTypeDefinition.Name)) + weaponTypeDefinition.GuiPresentation.Description, + GetStandardWeaponOfType(weaponTypeDefinition.Name)) .SetPoolType(InvocationPoolTypeCustom.Pools.WeaponMasterChoice) .SetGrantedFeature(featureMonkWeaponSpecialization) .AddCustomSubFeatures(ModifyInvocationVisibility.Marker) @@ -1486,38 +1484,13 @@ public bool CanModifyRoll( #region Fighting Initiate - private static FeatDefinitionWithPrerequisites BuildFeatFromFightingStyle(string fightingStyleName) - { - var db = DatabaseRepository.GetDatabase(); - var feat = BuildFightingStyleFeat(db.GetElement(fightingStyleName)); - - feat.Validators.Clear(); - feat.familyTag = string.Empty; - feat.hasFamilyTag = false; - - return feat; - } - private static FeatDefinition BuildFightingInitiate() { - var fightingStyleFeats = DatabaseRepository - .GetDatabase() - .Where(x => - x.ContentPack == CeContentPackContext.CeContentPack && - !FightingStyleContext.DemotedFightingStyles.Contains(x.Name)) - .Select(BuildFightingStyleFeat) - .OfType() - .ToArray(); - - var vanillaFightingStyleFeats = DatabaseRepository + GroupFeats.FeatGroupFightingStyle.AddFeats(DatabaseRepository .GetDatabase() - .Where(x => x.ContentPack != CeContentPackContext.CeContentPack) .Select(BuildFightingStyleFeat) .OfType() - .ToArray(); - - GroupFeats.FeatGroupFightingStyle.AddFeats(fightingStyleFeats); - GroupFeats.FeatGroupFightingStyle.AddFeats(vanillaFightingStyleFeats); + .ToArray()); return GroupFeats.FeatGroupFightingStyle; } @@ -2842,4 +2815,305 @@ private WarCasterMarker() } #endregion + + #region Merciless + + private const string MercilessName = "Merciless"; + + private static readonly FeatureDefinitionPower PowerFightingStyleMerciless = FeatureDefinitionPowerBuilder + .Create($"PowerFightingStyle{MercilessName}") + .SetGuiPresentation(MercilessName, Category.FightingStyle, hidden: true) + .SetUsesFixed(ActivationTime.NoCost) + .SetShowCasting(false) + .SetEffectDescription( + EffectDescriptionBuilder + .Create() + .SetTargetingData(Side.Enemy, RangeType.Touch, 0, TargetType.IndividualsUnique) + .SetDurationData(DurationType.Round, 1, TurnOccurenceType.EndOfSourceTurn) + .SetSavingThrowData( + false, + AttributeDefinitions.Wisdom, + true, + EffectDifficultyClassComputation.AbilityScoreAndProficiency, + AttributeDefinitions.Strength) + .SetEffectForms( + EffectFormBuilder + .Create() + .SetConditionForm(ConditionDefinitions.ConditionFrightened, + ConditionForm.ConditionOperation.Add) + .HasSavingThrow(EffectSavingThrowType.Negates) + .Build()) + .Build()) + .AddToDB(); + + private static readonly FeatDefinition FeatMerciless = FeatDefinitionBuilder + .Create($"Feat{MercilessName}") + .SetGuiPresentation(MercilessName, Category.FightingStyle) + .SetFeatures( + PowerFightingStyleMerciless, + FeatureDefinitionBuilder + .Create($"TargetReducedToZeroHpFightingStyle{MercilessName}") + .SetGuiPresentationNoContent(true) + .AddCustomSubFeatures(new OnReducedToZeroHpByMeMerciless()) + .AddToDB()) + .AddToDB(); + + private sealed class OnReducedToZeroHpByMeMerciless + : IOnReducedToZeroHpByMe, IPhysicalAttackBeforeHitConfirmedOnEnemy, IPhysicalAttackFinishedByMe + { + public IEnumerator HandleReducedToZeroHpByMe( + GameLocationCharacter attacker, + GameLocationCharacter downedCreature, + RulesetAttackMode attackMode, + RulesetEffect activeEffect) + { + if (Gui.Battle == null) + { + yield break; + } + + if (!ValidatorsWeapon.IsMelee(attackMode) && !ValidatorsWeapon.IsUnarmed(attackMode)) + { + yield break; + } + + var rulesetAttacker = attacker.RulesetCharacter; + var proficiencyBonus = rulesetAttacker.TryGetAttributeValue(AttributeDefinitions.ProficiencyBonus); + var distance = attacker.UsedSpecialFeatures.TryGetValue(MercilessName, out var value) && value == 1 + ? proficiencyBonus + : (proficiencyBonus + 1) / 2; + + var implementationManager = + ServiceRepository.GetService() as RulesetImplementationManager; + + var usablePower = PowerProvider.Get(PowerFightingStyleMerciless, rulesetAttacker); + var targets = Gui.Battle.GetContenders( + downedCreature, attacker, isOppositeSide: false, hasToPerceivePerceiver: true, withinRange: distance); + var actionModifiers = new List(); + + for (var i = 0; i < targets.Count; i++) + { + actionModifiers.Add(new ActionModifier()); + } + + var actionParams = new CharacterActionParams(attacker, ActionDefinitions.Id.PowerNoCost) + { + ActionModifiers = actionModifiers, + RulesetEffect = implementationManager + .MyInstantiateEffectPower(rulesetAttacker, usablePower, false), + UsablePower = usablePower, + targetCharacters = targets + }; + + // must enqueue actions whenever within an attack workflow otherwise game won't consume attack + ServiceRepository.GetService()? + .ExecuteAction(actionParams, null, true); + } + + public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( + GameLocationBattleManager battleManager, + GameLocationCharacter attacker, + GameLocationCharacter defender, + ActionModifier actionModifier, + RulesetAttackMode attackMode, + bool rangedAttack, + AdvantageType advantageType, + List actualEffectForms, + bool firstTarget, + bool criticalHit) + { + attacker.UsedSpecialFeatures.TryAdd(MercilessName, criticalHit ? 1 : 0); + + yield break; + } + + public IEnumerator OnPhysicalAttackFinishedByMe( + GameLocationBattleManager battleManager, + CharacterAction action, + GameLocationCharacter attacker, + GameLocationCharacter defender, + RulesetAttackMode attackMode, + RollOutcome rollOutcome, + int damageAmount) + { + attacker.UsedSpecialFeatures.Remove(MercilessName); + + yield break; + } + } + + #endregion + + #region Polearm Expert + + private const string PolearmExpertName = "PolearmExpert"; + + private static FeatDefinition FeatPolearmExpert { get; } = FeatDefinitionBuilder + .Create($"Feat{PolearmExpertName}") + .SetGuiPresentation(PolearmExpertName, Category.FightingStyle) + .SetFeatures( + FeatureDefinitionBuilder + .Create("FeaturePolearm") + .SetGuiPresentationNoContent(true) + .AddCustomSubFeatures( + new CanMakeAoOOnReachEntered + { + WeaponValidator = (mode, _, _) => ValidatorsWeapon.IsPolearmType(mode) + }, + new AddPolearmFollowUpAttack(QuarterstaffType), + new AddPolearmFollowUpAttack(SpearType), + new AddPolearmFollowUpAttack(HalberdWeaponType), + new AddPolearmFollowUpAttack(PikeWeaponType), + new AddPolearmFollowUpAttack(LongMaceWeaponType)) + .AddToDB()) + .AddToDB(); + + #endregion + + #region Rope it Up + + private const string RopeItUpName = "RopeItUp"; + + private static readonly FeatureDefinition FeatureRopeItUp = FeatureDefinitionAttributeModifierBuilder + .Create($"AttributeModifier{RopeItUpName}") + .SetGuiPresentation(RopeItUpName, Category.FightingStyle) + .AddCustomSubFeatures(ReturningWeapon.AlwaysValid, new ModifyWeaponAttackModeRopeItUp()) + .AddToDB(); + + private static FeatDefinition FeatRopeItUp { get; } = FeatDefinitionBuilder + .Create($"Feat{RopeItUpName}") + .SetGuiPresentation(RopeItUpName, Category.FightingStyle) + .SetFeatures(FeatureRopeItUp) + .AddToDB(); + + private sealed class ModifyWeaponAttackModeRopeItUp : IModifyWeaponAttackMode + { + public void ModifyAttackMode(RulesetCharacter character, RulesetAttackMode attackMode) + { + if (attackMode?.thrown != true) + { + return; + } + + attackMode.closeRange += 2; + attackMode.maxRange += 4; + } + } + + #endregion + + #region Shield Expert + + private const string ShieldExpertName = "ShieldExpert"; + + private static FeatDefinition FeatShieldExpert { get; } = FeatDefinitionBuilder + .Create($"Feat{ShieldExpertName}") + .SetGuiPresentation(ShieldExpertName, Category.FightingStyle) + .SetFeatures( + FeatureDefinitionBuilder + .Create("AddExtraAttackShieldExpert") + .SetGuiPresentationNoContent(true) + .AddCustomSubFeatures(new AddBonusShieldAttack()) + .AddToDB()) + .AddToDB(); + + #endregion + + #region Sentinel + + private const string SentinelName = "Sentinel"; + + internal static FeatDefinition FeatSentinel { get; } = FeatDefinitionBuilder + .Create($"Feat{SentinelName}") + .SetGuiPresentation(SentinelName, Category.FightingStyle) + .SetFeatures( + FeatureDefinitionBuilder + .Create("OnAttackHitEffectFeatSentinel") + .SetGuiPresentationNoContent(true) + .AddCustomSubFeatures( + AttacksOfOpportunity.IgnoreDisengage, + AttacksOfOpportunity.SentinelFeatMarker, + new PhysicalAttackFinishedByMeFeatSentinel( + CustomConditionsContext.StopMovement, + ConditionDefinitionBuilder + .Create("ConditionPreventAttackAtReach") + .SetGuiPresentationNoContent(true) + .SetSilent(Silent.WhenAddedOrRemoved) + .SetFeatures( + // this is a hack to ensure game engine won't execute the attack even at reach + // given that game AI will only run an enemy towards an ally with an attack intention + // this should be good enough as enemy won't run next to other allies + FeatureDefinitionActionAffinityBuilder + .Create($"ActionAffinity{SentinelName}StopMovement") + .SetGuiPresentationNoContent(true) + .SetForbiddenActions( + ActionDefinitions.Id.Shove, + ActionDefinitions.Id.ShoveBonus, + ActionDefinitions.Id.AttackMain, + ActionDefinitions.Id.AttackOff, + ActionDefinitions.Id.AttackFree) + .AddToDB()) + .AddToDB())) + .AddToDB()) + .AddToDB(); + + private sealed class PhysicalAttackFinishedByMeFeatSentinel( + ConditionDefinition conditionSentinelStopMovement, + ConditionDefinition conditionPreventAttackAtReach) : IPhysicalAttackBeforeHitConfirmedOnEnemy + { + public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( + GameLocationBattleManager battleManager, + GameLocationCharacter attacker, + GameLocationCharacter defender, + ActionModifier actionModifier, + RulesetAttackMode attackMode, + bool rangedAttack, + AdvantageType advantageType, + List actualEffectForms, + bool firstTarget, + bool criticalHit) + { + if (attackMode.ActionType != ActionDefinitions.ActionType.Reaction || + attackMode.AttackTags.Contains(AttacksOfOpportunity.NotAoOTag)) + { + yield break; + } + + var rulesetAttacker = attacker.RulesetCharacter; + var rulesetDefender = defender.RulesetActor; + + rulesetDefender.InflictCondition( + conditionSentinelStopMovement.Name, + DurationType.Round, + 0, + TurnOccurenceType.EndOfSourceTurn, + AttributeDefinitions.TagEffect, + rulesetAttacker.guid, + rulesetAttacker.CurrentFaction.Name, + 1, + conditionSentinelStopMovement.Name, + 0, + 0, + 0); + + if (attackMode.Reach) + { + rulesetDefender.InflictCondition( + conditionPreventAttackAtReach.Name, + DurationType.Round, + 0, + TurnOccurenceType.EndOfTurn, + AttributeDefinitions.TagEffect, + rulesetAttacker.guid, + rulesetAttacker.CurrentFaction.Name, + 1, + conditionPreventAttackAtReach.Name, + 0, + 0, + 0); + } + } + } + + #endregion } diff --git a/SolastaUnfinishedBusiness/FightingStyles/Merciless.cs b/SolastaUnfinishedBusiness/FightingStyles/Merciless.cs deleted file mode 100644 index 608b373211..0000000000 --- a/SolastaUnfinishedBusiness/FightingStyles/Merciless.cs +++ /dev/null @@ -1,154 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using SolastaUnfinishedBusiness.Api.GameExtensions; -using SolastaUnfinishedBusiness.Behaviors; -using SolastaUnfinishedBusiness.Builders; -using SolastaUnfinishedBusiness.Builders.Features; -using SolastaUnfinishedBusiness.CustomUI; -using SolastaUnfinishedBusiness.Interfaces; -using SolastaUnfinishedBusiness.Models; -using SolastaUnfinishedBusiness.Properties; -using SolastaUnfinishedBusiness.Validators; -using static RuleDefinitions; -using static SolastaUnfinishedBusiness.Api.DatabaseHelper; -using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionFightingStyleChoices; - -namespace SolastaUnfinishedBusiness.FightingStyles; - -internal sealed class Merciless : AbstractFightingStyle -{ - internal const string MercilessName = "Merciless"; - - private static readonly FeatureDefinitionPower PowerFightingStyleMerciless = FeatureDefinitionPowerBuilder - .Create($"PowerFightingStyle{MercilessName}") - .SetGuiPresentation(MercilessName, Category.FightingStyle, hidden: true) - .SetUsesFixed(ActivationTime.NoCost) - .SetShowCasting(false) - .SetEffectDescription( - EffectDescriptionBuilder - .Create() - .SetTargetingData(Side.Enemy, RangeType.Touch, 0, TargetType.IndividualsUnique) - .SetDurationData(DurationType.Round, 1, TurnOccurenceType.EndOfSourceTurn) - .SetSavingThrowData( - false, - AttributeDefinitions.Wisdom, - true, - EffectDifficultyClassComputation.AbilityScoreAndProficiency, - AttributeDefinitions.Strength) - .SetEffectForms( - EffectFormBuilder - .Create() - .SetConditionForm(ConditionDefinitions.ConditionFrightened, - ConditionForm.ConditionOperation.Add) - .HasSavingThrow(EffectSavingThrowType.Negates) - .Build()) - .Build()) - .AddToDB(); - - internal override FightingStyleDefinition FightingStyle { get; } = FightingStyleBuilder - .Create(MercilessName) - .SetGuiPresentation(Category.FightingStyle, Sprites.GetSprite(MercilessName, Resources.Merciless, 256)) - .SetFeatures( - PowerFightingStyleMerciless, - FeatureDefinitionBuilder - .Create($"TargetReducedToZeroHpFightingStyle{MercilessName}") - .SetGuiPresentationNoContent(true) - .AddCustomSubFeatures(new OnReducedToZeroHpByMeMerciless()) - .AddToDB()) - .AddToDB(); - - internal override List FightingStyleChoice => - [ - CharacterContext.FightingStyleChoiceBarbarian, - CharacterContext.FightingStyleChoiceMonk, - CharacterContext.FightingStyleChoiceRogue, - FightingStyleChampionAdditional, - FightingStyleFighter, - FightingStylePaladin, - FightingStyleRanger - ]; - - private sealed class OnReducedToZeroHpByMeMerciless - : IOnReducedToZeroHpByMe, IPhysicalAttackBeforeHitConfirmedOnEnemy, IPhysicalAttackFinishedByMe - { - public IEnumerator HandleReducedToZeroHpByMe( - GameLocationCharacter attacker, - GameLocationCharacter downedCreature, - RulesetAttackMode attackMode, - RulesetEffect activeEffect) - { - if (Gui.Battle == null) - { - yield break; - } - - if (!ValidatorsWeapon.IsMelee(attackMode) && !ValidatorsWeapon.IsUnarmed(attackMode)) - { - yield break; - } - - var rulesetAttacker = attacker.RulesetCharacter; - var proficiencyBonus = rulesetAttacker.TryGetAttributeValue(AttributeDefinitions.ProficiencyBonus); - var distance = attacker.UsedSpecialFeatures.TryGetValue(MercilessName, out var value) && value == 1 - ? proficiencyBonus - : (proficiencyBonus + 1) / 2; - - var implementationManager = - ServiceRepository.GetService() as RulesetImplementationManager; - - var usablePower = PowerProvider.Get(PowerFightingStyleMerciless, rulesetAttacker); - var targets = Gui.Battle.GetContenders( - downedCreature, attacker, isOppositeSide: false, hasToPerceivePerceiver: true, withinRange: distance); - var actionModifiers = new List(); - - for (var i = 0; i < targets.Count; i++) - { - actionModifiers.Add(new ActionModifier()); - } - - var actionParams = new CharacterActionParams(attacker, ActionDefinitions.Id.PowerNoCost) - { - ActionModifiers = actionModifiers, - RulesetEffect = implementationManager - .MyInstantiateEffectPower(rulesetAttacker, usablePower, false), - UsablePower = usablePower, - targetCharacters = targets - }; - - // must enqueue actions whenever within an attack workflow otherwise game won't consume attack - ServiceRepository.GetService()? - .ExecuteAction(actionParams, null, true); - } - - public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( - GameLocationBattleManager battleManager, - GameLocationCharacter attacker, - GameLocationCharacter defender, - ActionModifier actionModifier, - RulesetAttackMode attackMode, - bool rangedAttack, - AdvantageType advantageType, - List actualEffectForms, - bool firstTarget, - bool criticalHit) - { - attacker.UsedSpecialFeatures.TryAdd(MercilessName, criticalHit ? 1 : 0); - - yield break; - } - - public IEnumerator OnPhysicalAttackFinishedByMe( - GameLocationBattleManager battleManager, - CharacterAction action, - GameLocationCharacter attacker, - GameLocationCharacter defender, - RulesetAttackMode attackMode, - RollOutcome rollOutcome, - int damageAmount) - { - attacker.UsedSpecialFeatures.Remove(MercilessName); - - yield break; - } - } -} diff --git a/SolastaUnfinishedBusiness/FightingStyles/MonkShieldExpert.cs b/SolastaUnfinishedBusiness/FightingStyles/MonkShieldExpert.cs deleted file mode 100644 index 94f40b9638..0000000000 --- a/SolastaUnfinishedBusiness/FightingStyles/MonkShieldExpert.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.Collections.Generic; -using SolastaUnfinishedBusiness.Builders; -using SolastaUnfinishedBusiness.Builders.Features; -using SolastaUnfinishedBusiness.CustomUI; -using SolastaUnfinishedBusiness.Properties; - -namespace SolastaUnfinishedBusiness.FightingStyles; - -internal class MonkShieldExpert : AbstractFightingStyle -{ - internal const string ShieldExpertName = "MonkShieldExpert"; - - internal override FightingStyleDefinition FightingStyle { get; } = FightingStyleBuilder - .Create(ShieldExpertName) - .SetGuiPresentation(Category.FightingStyle, Sprites.GetSprite(ShieldExpertName, Resources.ShieldExpert, 256)) - .SetFeatures( - FeatureDefinitionProficiencyBuilder - .Create($"Proficiency{ShieldExpertName}") - .SetGuiPresentation("ShieldCategory", Category.Equipment) - .SetProficiencies(RuleDefinitions.ProficiencyType.Armor, EquipmentDefinitions.ShieldCategory) - .AddToDB()) - .AddToDB(); - - internal override List FightingStyleChoice => []; -} diff --git a/SolastaUnfinishedBusiness/FightingStyles/PolearmExpert.cs b/SolastaUnfinishedBusiness/FightingStyles/PolearmExpert.cs deleted file mode 100644 index ea8d8391c6..0000000000 --- a/SolastaUnfinishedBusiness/FightingStyles/PolearmExpert.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System.Collections.Generic; -using SolastaUnfinishedBusiness.Behaviors; -using SolastaUnfinishedBusiness.Behaviors.Specific; -using SolastaUnfinishedBusiness.Builders; -using SolastaUnfinishedBusiness.Builders.Features; -using SolastaUnfinishedBusiness.CustomUI; -using SolastaUnfinishedBusiness.Properties; -using SolastaUnfinishedBusiness.Validators; -using static SolastaUnfinishedBusiness.Api.DatabaseHelper.WeaponTypeDefinitions; -using static SolastaUnfinishedBusiness.Models.CustomWeaponsContext; - -namespace SolastaUnfinishedBusiness.FightingStyles; - -internal sealed class PolearmExpert : AbstractFightingStyle -{ - internal const string PolearmExpertName = "PolearmExpert"; - - internal override FightingStyleDefinition FightingStyle { get; } = FightingStyleBuilder - .Create(PolearmExpertName) - .SetGuiPresentation(Category.FightingStyle, Sprites.GetSprite(PolearmExpertName, Resources.PolearmExpert, 256)) - .SetFeatures( - FeatureDefinitionBuilder - .Create("FeaturePolearm") - .SetGuiPresentationNoContent(true) - .AddCustomSubFeatures( - new CanMakeAoOOnReachEntered - { - WeaponValidator = (mode, _, _) => ValidatorsWeapon.IsPolearmType(mode) - }, - new AddPolearmFollowUpAttack(QuarterstaffType), - new AddPolearmFollowUpAttack(SpearType), - new AddPolearmFollowUpAttack(HalberdWeaponType), - new AddPolearmFollowUpAttack(PikeWeaponType), - new AddPolearmFollowUpAttack(LongMaceWeaponType)) - .AddToDB()) - .AddToDB(); - - internal override List FightingStyleChoice => []; -} diff --git a/SolastaUnfinishedBusiness/FightingStyles/RopeItUp.cs b/SolastaUnfinishedBusiness/FightingStyles/RopeItUp.cs deleted file mode 100644 index 13f00737b7..0000000000 --- a/SolastaUnfinishedBusiness/FightingStyles/RopeItUp.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System.Collections.Generic; -using SolastaUnfinishedBusiness.Behaviors.Specific; -using SolastaUnfinishedBusiness.Builders; -using SolastaUnfinishedBusiness.Builders.Features; -using SolastaUnfinishedBusiness.CustomUI; -using SolastaUnfinishedBusiness.Interfaces; -using SolastaUnfinishedBusiness.Models; -using SolastaUnfinishedBusiness.Properties; -using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionFightingStyleChoices; - -namespace SolastaUnfinishedBusiness.FightingStyles; - -internal class RopeItUp : AbstractFightingStyle -{ - internal const string RopeItUpName = "RopeItUp"; - - private static readonly FeatureDefinition FeatureRopeItUp = FeatureDefinitionAttributeModifierBuilder - .Create($"AttributeModifier{RopeItUpName}") - .SetGuiPresentation(RopeItUpName, Category.FightingStyle) - .AddCustomSubFeatures(ReturningWeapon.AlwaysValid, new ModifyWeaponAttackModeRopeItUp()) - .AddToDB(); - - internal override FightingStyleDefinition FightingStyle { get; } = FightingStyleBuilder - .Create(RopeItUpName) - .SetGuiPresentation(Category.FightingStyle, Sprites.GetSprite(RopeItUpName, Resources.RopeItUp, 256)) - .SetFeatures(FeatureRopeItUp) - .AddToDB(); - - internal override List FightingStyleChoice => - [ - CharacterContext.FightingStyleChoiceBarbarian, - CharacterContext.FightingStyleChoiceMonk, - CharacterContext.FightingStyleChoiceRogue, - FightingStyleChampionAdditional, - FightingStyleFighter, - FightingStylePaladin, - FightingStyleRanger - ]; - - private sealed class ModifyWeaponAttackModeRopeItUp : IModifyWeaponAttackMode - { - public void ModifyAttackMode(RulesetCharacter character, RulesetAttackMode attackMode) - { - if (attackMode?.thrown != true) - { - return; - } - - attackMode.closeRange += 2; - attackMode.maxRange += 4; - } - } -} diff --git a/SolastaUnfinishedBusiness/FightingStyles/Sentinel.cs b/SolastaUnfinishedBusiness/FightingStyles/Sentinel.cs deleted file mode 100644 index 68144ca9f6..0000000000 --- a/SolastaUnfinishedBusiness/FightingStyles/Sentinel.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using SolastaUnfinishedBusiness.Behaviors.Specific; -using SolastaUnfinishedBusiness.Builders; -using SolastaUnfinishedBusiness.Builders.Features; -using SolastaUnfinishedBusiness.CustomUI; -using SolastaUnfinishedBusiness.Interfaces; -using SolastaUnfinishedBusiness.Models; -using SolastaUnfinishedBusiness.Properties; -using static RuleDefinitions; - -namespace SolastaUnfinishedBusiness.FightingStyles; - -internal sealed class Sentinel : AbstractFightingStyle -{ - internal const string SentinelName = "Sentinel"; - - internal override FightingStyleDefinition FightingStyle { get; } = FightingStyleBuilder - .Create(SentinelName) - .SetGuiPresentation(Category.FightingStyle, Sprites.GetSprite("Sentinel", Resources.Sentinel, 256)) - .SetFeatures( - FeatureDefinitionBuilder - .Create("OnAttackHitEffectFeatSentinel") - .SetGuiPresentationNoContent(true) - .AddCustomSubFeatures( - AttacksOfOpportunity.IgnoreDisengage, - AttacksOfOpportunity.SentinelFeatMarker, - new PhysicalAttackFinishedByMeFeatSentinel( - CustomConditionsContext.StopMovement, - ConditionDefinitionBuilder - .Create("ConditionPreventAttackAtReach") - .SetGuiPresentationNoContent(true) - .SetSilent(Silent.WhenAddedOrRemoved) - .SetFeatures( - // this is a hack to ensure game engine won't execute the attack even at reach - // given that game AI will only run an enemy towards an ally with an attack intention - // this should be good enough as enemy won't run next to other allies - FeatureDefinitionActionAffinityBuilder - .Create($"ActionAffinity{SentinelName}StopMovement") - .SetGuiPresentationNoContent(true) - .SetForbiddenActions( - ActionDefinitions.Id.Shove, - ActionDefinitions.Id.ShoveBonus, - ActionDefinitions.Id.AttackMain, - ActionDefinitions.Id.AttackOff, - ActionDefinitions.Id.AttackFree) - .AddToDB()) - .AddToDB())) - .AddToDB()) - .AddToDB(); - - internal override List FightingStyleChoice => []; - - private sealed class PhysicalAttackFinishedByMeFeatSentinel( - ConditionDefinition conditionSentinelStopMovement, - ConditionDefinition conditionPreventAttackAtReach) : IPhysicalAttackBeforeHitConfirmedOnEnemy - { - public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( - GameLocationBattleManager battleManager, - GameLocationCharacter attacker, - GameLocationCharacter defender, - ActionModifier actionModifier, - RulesetAttackMode attackMode, - bool rangedAttack, - AdvantageType advantageType, - List actualEffectForms, - bool firstTarget, - bool criticalHit) - { - if (attackMode.ActionType != ActionDefinitions.ActionType.Reaction || - attackMode.AttackTags.Contains(AttacksOfOpportunity.NotAoOTag)) - { - yield break; - } - - var rulesetAttacker = attacker.RulesetCharacter; - var rulesetDefender = defender.RulesetActor; - - rulesetDefender.InflictCondition( - conditionSentinelStopMovement.Name, - DurationType.Round, - 0, - TurnOccurenceType.EndOfSourceTurn, - AttributeDefinitions.TagEffect, - rulesetAttacker.guid, - rulesetAttacker.CurrentFaction.Name, - 1, - conditionSentinelStopMovement.Name, - 0, - 0, - 0); - - if (attackMode.Reach) - { - rulesetDefender.InflictCondition( - conditionPreventAttackAtReach.Name, - DurationType.Round, - 0, - TurnOccurenceType.EndOfTurn, - AttributeDefinitions.TagEffect, - rulesetAttacker.guid, - rulesetAttacker.CurrentFaction.Name, - 1, - conditionPreventAttackAtReach.Name, - 0, - 0, - 0); - } - } - } -} diff --git a/SolastaUnfinishedBusiness/FightingStyles/ShieldExpert.cs b/SolastaUnfinishedBusiness/FightingStyles/ShieldExpert.cs deleted file mode 100644 index 9d65aecaeb..0000000000 --- a/SolastaUnfinishedBusiness/FightingStyles/ShieldExpert.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System.Collections.Generic; -using SolastaUnfinishedBusiness.Behaviors; -using SolastaUnfinishedBusiness.Builders; -using SolastaUnfinishedBusiness.Builders.Features; -using SolastaUnfinishedBusiness.CustomUI; -using SolastaUnfinishedBusiness.Models; -using SolastaUnfinishedBusiness.Properties; -using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionFightingStyleChoices; - -namespace SolastaUnfinishedBusiness.FightingStyles; - -internal class ShieldExpert : AbstractFightingStyle -{ - internal const string ShieldExpertName = "ShieldExpert"; - - internal override FightingStyleDefinition FightingStyle { get; } = FightingStyleBuilder - .Create(ShieldExpertName) - .SetGuiPresentation(Category.FightingStyle, Sprites.GetSprite(ShieldExpertName, Resources.ShieldExpert, 256)) - .SetFeatures( - FeatureDefinitionBuilder - .Create("AddExtraAttackShieldExpert") - .SetGuiPresentationNoContent(true) - .AddCustomSubFeatures(new AddBonusShieldAttack()) - .AddToDB()) - .AddToDB(); - - internal override List FightingStyleChoice => - [ - CharacterContext.FightingStyleChoiceBarbarian, - CharacterContext.FightingStyleChoiceMonk, - CharacterContext.FightingStyleChoiceRogue, - FightingStyleChampionAdditional, - FightingStyleFighter, - FightingStylePaladin, - FightingStyleRanger - ]; -} diff --git a/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs b/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs index 518c8e8a35..9379557f77 100644 --- a/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs +++ b/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs @@ -1105,7 +1105,6 @@ internal MonkWeaponSpecializationDiceUpgrade(WeaponTypeDefinition weaponTypeDefi (attackMode?.SourceDefinition as ItemDefinition)?.WeaponDescription.WeaponTypeDefinition; return (OperationType.Or, - character.HasMonkShieldExpert() || character.GetSubFeaturesByType().Exists( x => x._weaponTypeDefinition == attackModeWeaponType)); } diff --git a/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs b/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs index 74b1226ed6..146f514360 100644 --- a/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs +++ b/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs @@ -8,16 +8,6 @@ namespace SolastaUnfinishedBusiness.Models; internal static class FightingStyleContext { - internal static readonly HashSet DemotedFightingStyles = - [ - Merciless.MercilessName, - MonkShieldExpert.ShieldExpertName, - PolearmExpert.PolearmExpertName, - RopeItUp.RopeItUpName, - Sentinel.SentinelName, - ShieldExpert.ShieldExpertName - ]; - private static Dictionary> FightingStylesChoiceList { get; } = []; @@ -25,14 +15,6 @@ private static Dictionary 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 bzr+6ttrvf#b9Dnf00000NkvXXu0mjf`SyLt diff --git a/SolastaUnfinishedBusiness/Resources/FightingStyles/RopeItUp.png b/SolastaUnfinishedBusiness/Resources/FightingStyles/RopeItUp.png deleted file mode 100644 index b8f25fe38eb7879095b90c63bfa9ebd76f0672ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30896 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 diff --git a/SolastaUnfinishedBusiness/Resources/FightingStyles/Sentinel.png b/SolastaUnfinishedBusiness/Resources/FightingStyles/Sentinel.png deleted file mode 100644 index 028f29fedc0f8b27a0be0423a9a7d11c41b39c7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29954 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 Hu0mjf&Ww;? diff --git a/SolastaUnfinishedBusiness/Translations/de/FightingStyles-de.txt b/SolastaUnfinishedBusiness/Translations/de/FightingStyles-de.txt index 8bd2c92428..e3bacea4f8 100644 --- a/SolastaUnfinishedBusiness/Translations/de/FightingStyles-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/FightingStyles-de.txt @@ -22,8 +22,6 @@ FightingStyle/&LungerDescription=Die Reichweite Ihrer Nahkampfwaffe erhöht sich FightingStyle/&LungerTitle=Lunge FightingStyle/&MercilessDescription=Wenn Sie in Ihrem Zug ein Ziel mit einem Nahkampfwaffenangriff auf 0 HP reduzieren, müssen Feinde in einem Umkreis des niedergeschlagenen Ziels in Höhe der Hälfte Ihres Fähigkeitsbonus (aufgerundet) und die das Ziel sehen können, einen Weisheitswurf (SG 8 +) machen Ihr Fähigkeitsbonus + Ihr Stärkemodifikator) oder bis zum Ende Ihres nächsten Zuges Angst vor Ihnen haben. Wenn der auslösende Angriff ein kritischer Treffer ist, entspricht der Radius stattdessen Ihrem Fähigkeitsbonus. FightingStyle/&MercilessTitle=Gnadenlos -FightingStyle/&MonkShieldExpertDescription=Du erwirbst Schildfähigkeiten und sie hindern dich nicht daran, mit dieser Hand unbewaffnete Angriffe durchzuführen. Darüber hinaus funktionieren alle deine Mönchsfähigkeiten, auch wenn du einen Schild trägst. -FightingStyle/&MonkShieldExpertTitle=Klosterschildtraining FightingStyle/&PolearmExpertDescription=Ihr Expertentraining mit einer Stangenwaffe gewährt Ihnen diese Vorteile:\n• Wenn Sie die Angriffsaktion ausführen und nur mit einer Stangenwaffe angreifen, können Sie eine Bonusaktion verwenden, um einen Nahkampfangriff mit dem anderen Ende der Waffe durchzuführen. Dieser Angriff verwendet denselben Fähigkeitsmodifikator wie der Primärangriff und verursacht 1W4 Wuchtschaden.\n• Andere Kreaturen provozieren einen Gelegenheitsangriff von dir, wenn sie in die Reichweite gelangen, die du mit einer Stangenwaffe hast. FightingStyle/&PolearmExpertTitle=Stangenwaffenmeister FightingStyle/&PugilistDescription=Deine unbewaffneten Schläge verursachen zusätzlich 1W4 Wuchtschaden und als Bonusaktion kannst du mit der Nebenhand zuschlagen. Sie können als Bonusaktion schieben, wenn Sie keine andere Waffe oder keinen anderen Schild haben. diff --git a/SolastaUnfinishedBusiness/Translations/en/FightingStyles-en.txt b/SolastaUnfinishedBusiness/Translations/en/FightingStyles-en.txt index a0777f3846..f3367b9a42 100644 --- a/SolastaUnfinishedBusiness/Translations/en/FightingStyles-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/FightingStyles-en.txt @@ -22,8 +22,6 @@ FightingStyle/&LungerDescription=Your melee weapon reach increases by 5 ft while FightingStyle/&LungerTitle=Lunger FightingStyle/&MercilessDescription=When you reduce a target to 0 HP using a melee weapon attack on your turn, enemies within a radius of the downed target equal to half of your proficiency bonus (rounded up) who can see the target must make a Wisdom save (DC 8 + your proficiency bonus + your Strength modifier) or become frightened of you until the end of your next turn. If the triggering attack is a critical hit, the radius is instead equal to your proficiency bonus. FightingStyle/&MercilessTitle=Merciless -FightingStyle/&MonkShieldExpertDescription=You gain Shield proficiency, and they don't stop you from making unarmed attacks with that hand. In addition, all your monk abilities work even when wielding a Shield. -FightingStyle/&MonkShieldExpertTitle=Monastic Shield Training FightingStyle/&PolearmExpertDescription=Your expert training with a polearm grants you these benefits:\n• When you take the Attack action and attack with only a polearm weapon, you can use a bonus action to make a melee attack with the opposite end of the weapon. This attack uses the same ability modifier as the primary attack and deals 1d4 bludgeoning damage.\n• Other creatures provoke an opportunity attack from you when they enter the reach you have with wielding a polearm weapon. FightingStyle/&PolearmExpertTitle=Polearm Master FightingStyle/&PugilistDescription=Your unarmed strikes deal an additional 1d4 bludgeoning damage, and you can punch with your offhand as a bonus action. You can shove as a bonus action if you have no other weapon or shield. diff --git a/SolastaUnfinishedBusiness/Translations/es/FightingStyles-es.txt b/SolastaUnfinishedBusiness/Translations/es/FightingStyles-es.txt index c328bbd298..157e71d5a9 100644 --- a/SolastaUnfinishedBusiness/Translations/es/FightingStyles-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/FightingStyles-es.txt @@ -22,8 +22,6 @@ FightingStyle/&LungerDescription=El alcance de tu arma cuerpo a cuerpo aumenta e FightingStyle/&LungerTitle=Pulmones FightingStyle/&MercilessDescription=Cuando reduces a un objetivo a 0 HP usando un ataque con arma cuerpo a cuerpo en tu turno, los enemigos dentro de un radio del objetivo derribado igual a la mitad de tu bonificación de competencia (redondeado hacia arriba) que puedan ver al objetivo deben realizar una salvación de Sabiduría (CD 8 + tu bonificación de competencia + tu modificador de Fuerza) o tener miedo de ti hasta el final de tu siguiente turno. Si el ataque desencadenante es un golpe crítico, el radio es igual a tu bonificación de competencia. FightingStyle/&MercilessTitle=Despiadado -FightingStyle/&MonkShieldExpertDescription=Obtienes competencia en Escudo y eso no te impide realizar ataques desarmados con esa mano. Además, todas tus habilidades de monje funcionan incluso cuando empuñas un escudo. -FightingStyle/&MonkShieldExpertTitle=Entrenamiento con escudo monástico FightingStyle/&PolearmExpertDescription=Tu entrenamiento experto con un arma de asta te otorga estos beneficios:\n• Cuando realizas la acción de Ataque y atacas solo con un arma de asta, puedes usar una acción adicional para realizar un ataque cuerpo a cuerpo con el extremo opuesto del arma. Este ataque utiliza el mismo modificador de habilidad que el ataque principal e inflige 1d4 de daño contundente.\n• Otras criaturas provocan un ataque de oportunidad de tu parte cuando entran en tu alcance empuñando un arma de asta. FightingStyle/&PolearmExpertTitle=Maestro de armas de asta FightingStyle/&PugilistDescription=Tus golpes desarmados causan 1d4 de daño contundente adicional y puedes golpear con la mano izquierda como acción adicional. Puedes empujar como acción adicional si no tienes otra arma o escudo. diff --git a/SolastaUnfinishedBusiness/Translations/fr/FightingStyles-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/FightingStyles-fr.txt index 5fe9f93c97..43d9d0c659 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/FightingStyles-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/FightingStyles-fr.txt @@ -22,8 +22,6 @@ FightingStyle/&LungerDescription=La portée de votre arme de mêlée augmente de FightingStyle/&LungerTitle=Poumons FightingStyle/&MercilessDescription=Lorsque vous réduisez une cible à 0 PV en utilisant une attaque au corps à corps pendant votre tour, les ennemis dans un rayon de la cible abattue égal à la moitié de votre bonus de maîtrise (arrondi au supérieur) et qui peuvent voir la cible doivent effectuer un jet de Sagesse (DD 8 + votre bonus de maîtrise + votre modificateur de Force) ou ayez peur de vous jusqu'à la fin de votre prochain tour. Si l'attaque déclenchante est un coup critique, le rayon est alors égal à votre bonus de maîtrise. FightingStyle/&MercilessTitle=Sans merci -FightingStyle/&MonkShieldExpertDescription=Vous gagnez la maîtrise du Bouclier, et cela ne vous empêche pas de lancer des attaques à mains nues avec cette main. De plus, toutes vos capacités de moine fonctionnent même lorsque vous brandissez un bouclier. -FightingStyle/&MonkShieldExpertTitle=Formation au Bouclier Monastique FightingStyle/&PolearmExpertDescription=Votre entraînement expert avec une arme d'hast vous accorde les avantages suivants :\n• Lorsque vous effectuez l'action d'attaque et attaquez avec uniquement une arme d'hast, vous pouvez utiliser une action bonus pour effectuer une attaque au corps à corps avec l'extrémité opposée de l'arme. Cette attaque utilise le même modificateur de capacité que l'attaque principale et inflige 1d4 dégâts contondants.\n• D'autres créatures provoquent une attaque d'opportunité de votre part lorsqu'elles entrent dans la portée que vous avez en brandissant une arme d'hast. FightingStyle/&PolearmExpertTitle=Maître d'arme d'hast FightingStyle/&PugilistDescription=Vos frappes à mains nues infligent 1d4 dégâts contondants supplémentaires et vous pouvez frapper avec votre main secondaire en tant qu'action bonus. Vous pouvez pousser comme une action bonus si vous n'avez pas d'autre arme ou bouclier. diff --git a/SolastaUnfinishedBusiness/Translations/it/FightingStyles-it.txt b/SolastaUnfinishedBusiness/Translations/it/FightingStyles-it.txt index f98b4f3944..f347a5e190 100644 --- a/SolastaUnfinishedBusiness/Translations/it/FightingStyles-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/FightingStyles-it.txt @@ -22,8 +22,6 @@ FightingStyle/&LungerDescription=La portata della tua arma da mischia aumenta di FightingStyle/&LungerTitle=Polmoni FightingStyle/&MercilessDescription=Quando riduci un bersaglio a 0 HP usando un attacco con arma da mischia nel tuo turno, i nemici entro un raggio dal bersaglio abbattuto pari alla metà del tuo bonus di competenza (arrotondato per eccesso) che possono vedere il bersaglio devono effettuare un tiro salvezza su Saggezza (CD 8 + il tuo bonus di competenza + il tuo modificatore di Forza) o avrai paura di te fino alla fine del tuo turno successivo. Se l'attacco innescante è un colpo critico, il raggio è invece pari al tuo bonus di competenza. FightingStyle/&MercilessTitle=Spietato -FightingStyle/&MonkShieldExpertDescription=Ottieni competenza nello Scudo e non ti impediscono di effettuare attacchi senz'armi con quella mano. Inoltre, tutte le tue abilità da monaco funzionano anche quando impugni uno scudo. -FightingStyle/&MonkShieldExpertTitle=Addestramento allo scudo monastico FightingStyle/&PolearmExpertDescription=Il tuo addestramento da esperto con un'arma ad asta ti garantisce questi vantaggi:\n• Quando esegui l'azione Attacco e attacchi solo con un'arma ad asta, puoi utilizzare un'azione bonus per effettuare un attacco in mischia con l'estremità opposta dell'arma. Questo attacco utilizza lo stesso modificatore di abilità dell'attacco primario e infligge 1d4 danni contundenti.\n• Altre creature provocano un attacco di opportunità da parte tua quando entrano nella portata che hai quando impugni un'arma ad asta. FightingStyle/&PolearmExpertTitle=Maestro dell'arma ad asta FightingStyle/&PugilistDescription=I tuoi colpi senz'armi infliggono 1d4 danni contundenti aggiuntivi e puoi dare un pugno con la mano secondaria come azione bonus. Puoi spingere come azione bonus se non hai altre armi o scudi. diff --git a/SolastaUnfinishedBusiness/Translations/ja/FightingStyles-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/FightingStyles-ja.txt index b6914da5ba..c33ee4aa36 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/FightingStyles-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/FightingStyles-ja.txt @@ -22,8 +22,6 @@ FightingStyle/&LungerDescription=ヘビータグを付けずに武器を使用 FightingStyle/&LungerTitle=肺 FightingStyle/&MercilessDescription=自分のターンに近接武器攻撃を使用してターゲットの HP を 0 に減らすと、ダウンしたターゲットの半径内であなたの熟練度ボーナスの半分 (切り上げ) に等しいターゲットを視認できる敵は知恵セーブを行わなければなりません (難易度 8 +)熟練度ボーナス + 筋力修正値)、または次のターンの終わりまであなたを怖がるようになります。トリガーとなる攻撃がクリティカル ヒットの場合、半径は熟練度ボーナスと同じになります。 FightingStyle/&MercilessTitle=無慈悲な -FightingStyle/&MonkShieldExpertDescription=あなたはシールドの熟練度を獲得しますが、その手で非武装で攻撃することを彼らが阻止することはありません。さらに、モンクの能力はすべて、シールドを装備しているときでも機能します。 -FightingStyle/&MonkShieldExpertTitle=修道院の盾の訓練 FightingStyle/&PolearmExpertDescription=ポールアームを使った熟練のトレーニングにより、次のようなメリットが得られます:\n• 攻撃アクションを実行してポールアーム武器のみで攻撃する場合、ボーナス アクションを使用して武器の反対側で近接攻撃を行うことができます。この攻撃は主攻撃と同じ能力修正を使用し、1d4 の殴打ダメージを与えます。\n• 他のクリーチャーは、長柄武器を使用してあなたが到達できる範囲に入ると、あなたからの機会攻撃を引き起こします。 FightingStyle/&PolearmExpertTitle=ポールアームマスター FightingStyle/&PugilistDescription=素手での打撃は追加の 1d4 の殴打ダメージを与え、ボーナス アクションとしてオフハンドでパンチすることもできます。他に武器や盾がない場合は、ボーナスアクションとして突き飛ばすことができます。 diff --git a/SolastaUnfinishedBusiness/Translations/ko/FightingStyles-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/FightingStyles-ko.txt index 45f9c9f708..35096d26aa 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/FightingStyles-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/FightingStyles-ko.txt @@ -22,8 +22,6 @@ FightingStyle/&LungerDescription=무거운 태그가 없고 다른 무기나 방 FightingStyle/&LungerTitle=폐 FightingStyle/&MercilessDescription=당신의 차례에 근접 무기 공격을 사용하여 목표를 0 HP로 줄이면, 목표를 볼 수 있는 숙련도 보너스(반올림)의 절반에 해당하는 쓰러진 목표 반경 내의 적들은 지혜 내성(DC 8 + 숙련 보너스 + 힘 수정치) 또는 다음 턴이 끝날 때까지 당신을 두려워하게 됩니다. 유발 공격이 치명타인 경우 반경은 대신 숙련도 보너스와 같습니다. FightingStyle/&MercilessTitle=무자비한 -FightingStyle/&MonkShieldExpertDescription=당신은 방패 숙련도를 얻으며, 그 손으로 비무장 공격을 하는 것을 막지 못합니다. 또한 방패를 휘두르는 동안에도 모든 몽크 능력이 작동합니다. -FightingStyle/&MonkShieldExpertTitle=수도원 방패 훈련 FightingStyle/&PolearmExpertDescription=폴암을 이용한 전문 훈련을 통해 다음과 같은 이점을 얻을 수 있습니다.\n• 공격 액션을 취하고 폴암 무기로만 공격할 때 보너스 액션을 사용하여 무기의 반대쪽 끝으로 근접 공격을 할 수 있습니다. 이 공격은 기본 공격과 동일한 능력 수정자를 사용하고 1d4의 타격 피해를 줍니다.\n• 다른 생물이 장창 무기를 휘두르며 도달 범위에 들어오면 기회 공격을 유발합니다. FightingStyle/&PolearmExpertTitle=폴암 마스터 FightingStyle/&PugilistDescription=비무장 공격은 추가로 1d4의 타격 피해를 입히고, 보너스 행동으로 오프핸드로 펀치를 날릴 수 있습니다. 다른 무기나 방패가 없다면 보너스 액션으로 밀쳐낼 수 있습니다. diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/FightingStyles-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/FightingStyles-pt-BR.txt index 750cf2a115..0a904b15fd 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/FightingStyles-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/FightingStyles-pt-BR.txt @@ -22,8 +22,6 @@ FightingStyle/&LungerDescription=O alcance da sua arma corpo a corpo aumenta em FightingStyle/&LungerTitle=Pulmões FightingStyle/&MercilessDescription=Quando você reduz um alvo a 0 HP usando um ataque com arma corpo a corpo em seu turno, os inimigos dentro de um raio do alvo abatido igual à metade do seu bônus de proficiência (arredondado para cima) que puderem ver o alvo devem fazer um salvamento de Sabedoria (CD 8 + seu bônus de proficiência + seu modificador de Força) ou ficará com medo de você até o final do seu próximo turno. Se o ataque desencadeador for um acerto crítico, o raio será igual ao seu bônus de proficiência. FightingStyle/&MercilessTitle=Impiedoso -FightingStyle/&MonkShieldExpertDescription=Você ganha proficiência em Escudo e eles não o impedem de fazer ataques desarmados com essa mão. Além disso, todas as suas habilidades de monge funcionam mesmo quando você empunha um Escudo. -FightingStyle/&MonkShieldExpertTitle=Treinamento de Escudo Monástico FightingStyle/&PolearmExpertDescription=Seu treinamento especializado com uma arma de haste concede a você estes benefícios:\n• Quando você realiza a ação Atacar e ataca apenas com uma arma de haste, você pode usar uma ação bônus para fazer um ataque corpo a corpo com a extremidade oposta da arma. Este ataque usa o mesmo modificador de habilidade do ataque primário e causa 1d4 de dano de concussão.\n• Outras criaturas provocam um ataque de oportunidade seu quando entram no alcance que você tem ao empunhar uma arma de haste. FightingStyle/&PolearmExpertTitle=Mestre da Arma de Pólo FightingStyle/&PugilistDescription=Seus ataques desarmados causam 1d4 de dano de concussão adicional e você pode socar com a mão improvisada como uma ação bônus. Você pode empurrar como uma ação bônus se não tiver outra arma ou escudo. diff --git a/SolastaUnfinishedBusiness/Translations/ru/FightingStyles-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/FightingStyles-ru.txt index 57ee4d09f8..ab0ffd6b97 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/FightingStyles-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/FightingStyles-ru.txt @@ -22,8 +22,6 @@ FightingStyle/&LungerDescription=Досягаемость вашего руко FightingStyle/&LungerTitle=Выпад FightingStyle/&MercilessDescription=Когда вы опускаете хиты цели до 0, используя рукопашную атаку оружием в свой ход, противники в радиусе, равном половине вашего бонуса мастерства (с округлением вверх), которые могут видеть цель, должны пройти спасбросок Мудрости (Сл равна 8 + ваш бонус мастерства + ваш модификатор Силы), иначе будут напуганы до конца вашего следующего хода. Если попадание было критическим, радиус действия увеличивается до вашего полного бонуса мастерства. FightingStyle/&MercilessTitle=Безжалостный -FightingStyle/&MonkShieldExpertDescription=Вы получаете навык владения щитом, и он не мешает вам совершать безоружные атаки этой рукой. Кроме того, все ваши способности монаха работают даже при использовании щита. -FightingStyle/&MonkShieldExpertTitle=Монашеская тренировка со щитом FightingStyle/&PolearmExpertDescription=Профессиональное обучение обращению с древковым оружием дает вам следующие преимущества:\n• Если вы совершаете действие Атака и атакуете только древковым оружием, вы можете бонусным действием совершить рукопашную атаку противоположным концом оружия. Эта атака использует тот же модификатор характеристики, что и основная, и наносит дробящий урон 1d4.\n• Если вы используете древковое оружие, другие существа провоцируют от вас атаку, когда входят в пределы вашей досягаемости. FightingStyle/&PolearmExpertTitle=Эксперт по древковому оружию FightingStyle/&PugilistDescription=Ваши безоружные удары наносят дополнительный дробящий урон 1d4, также бонусным действием вы можете бить левой рукой. Есть у вас есть свободная рука, вы можете использовать действие Толчок в качестве бонусного. diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/FightingStyles-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/FightingStyles-zh-CN.txt index 90bbb40d83..8022002670 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/FightingStyles-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/FightingStyles-zh-CN.txt @@ -22,8 +22,6 @@ FightingStyle/&LungerDescription=当只使用一件没有重型标签的近战 FightingStyle/&LungerTitle=突刺者 FightingStyle/&MercilessDescription=当你在回合中使用近战武器攻击将目标生命值降至 0 时,在被击倒目标半径等于你熟练加值一半(向上取整)的范围内,能够看到目标的敌人必须进行感知豁免(DC 8 + 你的熟练加值+ 你的力量调整值)或者变得恐慌你,直到你的下一个回合结束。如果触发攻击是重击,则半径等于你的熟练加值。 FightingStyle/&MercilessTitle=无情 -FightingStyle/&MonkShieldExpertDescription=你获得了盾牌熟练项,并且它们不会阻止你用那只手进行徒手攻击。此外,即使挥舞盾牌,你的所有武僧能力也能发挥作用。 -FightingStyle/&MonkShieldExpertTitle=武僧盾训 FightingStyle/&PolearmExpertDescription=你的长柄武器专家训练赋予你以下好处:\n• 当你采取攻击动作并仅使用长柄武器攻击时,你可以使用附赠动作用武器的另一端进行近战攻击。此攻击使用与主要攻击相同的属性调整值并造成 1d4 钝击伤害。\n• 当其他生物进入你挥舞长柄武器的范围时,会引发你的借机攻击。 FightingStyle/&PolearmExpertTitle=长柄武器大师 FightingStyle/&PugilistDescription=你的徒手攻击造成额外的 1d4 钝击伤害,并且你可以用你的副手作为附赠动作进行打击。如果你有空手,你可以将推撞作为附赠动作。 From 834d6daa7b7411df4cc99fffb7f612d4a821b034 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 22:17:55 -0700 Subject: [PATCH 72/91] update subclass and FS sprites --- .../InnovationVitriolist.json | 6 +- .../MartialGuardian.json | 6 +- .../PathOfTheRavager.json | 6 +- .../RoguishBladeCaller.json | 6 +- .../ProficiencyMartialGuardianSentinel.json | 4 +- .../FightingStyles/Interception.cs | 3 +- .../Properties/Resources.Designer.cs | 102 ++++++++++-------- .../Properties/Resources.resx | 62 ++++++----- .../Resources/FightingStyles/Interception.png | Bin 0 -> 30896 bytes .../Subclasses/InventorVitriolist.png | Bin 0 -> 35154 bytes .../Resources/Subclasses/MartialGuardian.png | Bin 0 -> 30620 bytes ...{MartialMarshal.png => MartialWarlord.png} | Bin .../Resources/Subclasses/PathOfTheRavager.png | Bin 0 -> 29769 bytes .../Resources/Subclasses/RoguishAcrobat.png | Bin 30578 -> 30136 bytes .../Subclasses/RoguishBladeCaller.png | Bin 0 -> 30578 bytes .../Resources/Subclasses/WizardWarMagic.png | Bin 0 -> 29954 bytes .../Subclasses/InnovationVitriolist.cs | 5 +- .../Subclasses/MartialGuardian.cs | 7 +- .../Subclasses/MartialWarlord.cs | 2 +- .../Subclasses/PathOfTheRavager.cs | 2 +- .../Subclasses/RoguishBladeCaller.cs | 5 +- .../Subclasses/WizardWarMagic.cs | 2 +- 22 files changed, 121 insertions(+), 97 deletions(-) create mode 100644 SolastaUnfinishedBusiness/Resources/FightingStyles/Interception.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/InventorVitriolist.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/MartialGuardian.png rename SolastaUnfinishedBusiness/Resources/Subclasses/{MartialMarshal.png => MartialWarlord.png} (100%) create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/PathOfTheRavager.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/RoguishBladeCaller.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/WizardWarMagic.png diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/InnovationVitriolist.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/InnovationVitriolist.json index 27e0a75746..c70936a5ee 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/InnovationVitriolist.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/InnovationVitriolist.json @@ -36,9 +36,9 @@ "description": "Subclass/&InnovationVitriolistDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "85d76c7cb86d43d4d8986efa486bf78f", - "m_SubObjectName": "Wizard_Shock_Arcanist", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "cdef4aa1-cd48-5cf1-96b2-aa9639706404", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialGuardian.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialGuardian.json index 5a19993323..9d4ababacb 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialGuardian.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialGuardian.json @@ -46,9 +46,9 @@ "description": "Subclass/&MartialGuardianDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "5d71490e307b6f84081ecb6b0c44b658", - "m_SubObjectName": "Protection", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "766b37d8-65c0-51ec-8d7b-12d11bf3d9e1", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PathOfTheRavager.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PathOfTheRavager.json index 1ddd56608c..66559c46f6 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PathOfTheRavager.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PathOfTheRavager.json @@ -31,9 +31,9 @@ "description": "Subclass/&PathOfTheRavagerDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "aa99d934a7dfe064191c9a18e4822595", - "m_SubObjectName": "Barbarian_Path_Berserker", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "78c4fe16-60f6-549f-bfea-ac6b25217276", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/RoguishBladeCaller.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/RoguishBladeCaller.json index 1be103b6c3..433070bca4 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/RoguishBladeCaller.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/RoguishBladeCaller.json @@ -36,9 +36,9 @@ "description": "Subclass/&RoguishBladeCallerDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "2bc90f386449dab49a7897bfa72b4e16", - "m_SubObjectName": "Ranger_SwiftBlade", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "0cecd5c2-eb1e-562d-b8d8-1f3df44907ce", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyMartialGuardianSentinel.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyMartialGuardianSentinel.json index 9686e6540b..73b0b2d36b 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyMartialGuardianSentinel.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyMartialGuardianSentinel.json @@ -1,8 +1,8 @@ { "$type": "FeatureDefinitionProficiency, Assembly-CSharp", - "proficiencyType": "FightingStyle", + "proficiencyType": "Feat", "proficiencies": [ - "Sentinel" + "FeatSentinel" ], "forbiddenItemTags": [], "guiPresentation": { diff --git a/SolastaUnfinishedBusiness/FightingStyles/Interception.cs b/SolastaUnfinishedBusiness/FightingStyles/Interception.cs index 6316bf236b..fd6a4c8fd7 100644 --- a/SolastaUnfinishedBusiness/FightingStyles/Interception.cs +++ b/SolastaUnfinishedBusiness/FightingStyles/Interception.cs @@ -10,6 +10,7 @@ using SolastaUnfinishedBusiness.CustomUI; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Models; +using SolastaUnfinishedBusiness.Properties; using SolastaUnfinishedBusiness.Validators; using static RuleDefinitions; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionFightingStyleChoices; @@ -22,7 +23,7 @@ internal sealed class Interception : AbstractFightingStyle internal override FightingStyleDefinition FightingStyle { get; } = FightingStyleBuilder .Create(Name) - .SetGuiPresentation(Category.FightingStyle, DatabaseHelper.FightingStyleDefinitions.Defense) + .SetGuiPresentation(Category.FightingStyle, Sprites.GetSprite(Name, Resources.Interception, 256)) .SetFeatures( FeatureDefinitionPowerBuilder .Create($"Power{Name}") diff --git a/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs b/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs index b0468192dc..d61ebe2d8f 100644 --- a/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs +++ b/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs @@ -2039,6 +2039,16 @@ public static byte[] IntellectFortress { } } + ///

+ /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] Interception { + get { + object obj = ResourceManager.GetObject("Interception", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -2109,6 +2119,16 @@ public static byte[] InventorQuickWit { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] InventorVitriolist { + get { + object obj = ResourceManager.GetObject("InventorVitriolist", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -2332,9 +2352,9 @@ public static byte[] MantleOfThorns { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] MartialMarshal { + public static byte[] MartialGuardian { get { - object obj = ResourceManager.GetObject("MartialMarshal", resourceCulture); + object obj = ResourceManager.GetObject("MartialGuardian", resourceCulture); return ((byte[])(obj)); } } @@ -2372,9 +2392,9 @@ public static byte[] MartialTactician { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] MartialWeaponMaster { + public static byte[] MartialWarlord { get { - object obj = ResourceManager.GetObject("MartialWeaponMaster", resourceCulture); + object obj = ResourceManager.GetObject("MartialWarlord", resourceCulture); return ((byte[])(obj)); } } @@ -2382,9 +2402,9 @@ public static byte[] MartialWeaponMaster { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] Merciless { + public static byte[] MartialWeaponMaster { get { - object obj = ResourceManager.GetObject("Merciless", resourceCulture); + object obj = ResourceManager.GetObject("MartialWeaponMaster", resourceCulture); return ((byte[])(obj)); } } @@ -2632,6 +2652,16 @@ public static byte[] PathOfTheLight { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] PathOfTheRavager { + get { + object obj = ResourceManager.GetObject("PathOfTheRavager", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -2802,16 +2832,6 @@ public static byte[] PoisonWave { } } - /// - /// Looks up a localized resource of type System.Byte[]. - /// - public static byte[] PolearmExpert { - get { - object obj = ResourceManager.GetObject("PolearmExpert", resourceCulture); - return ((byte[])(obj)); - } - } - /// /// Looks up a localized resource of type System.Byte[]. /// @@ -4115,9 +4135,9 @@ public static byte[] RoguishArcaneScoundrel { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] RoguishDuelist { + public static byte[] RoguishBladeCaller { get { - object obj = ResourceManager.GetObject("RoguishDuelist", resourceCulture); + object obj = ResourceManager.GetObject("RoguishBladeCaller", resourceCulture); return ((byte[])(obj)); } } @@ -4125,9 +4145,9 @@ public static byte[] RoguishDuelist { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] RoguishOpportunist { + public static byte[] RoguishDuelist { get { - object obj = ResourceManager.GetObject("RoguishOpportunist", resourceCulture); + object obj = ResourceManager.GetObject("RoguishDuelist", resourceCulture); return ((byte[])(obj)); } } @@ -4135,9 +4155,9 @@ public static byte[] RoguishOpportunist { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] RoguishRaven { + public static byte[] RoguishOpportunist { get { - object obj = ResourceManager.GetObject("RoguishRaven", resourceCulture); + object obj = ResourceManager.GetObject("RoguishOpportunist", resourceCulture); return ((byte[])(obj)); } } @@ -4145,9 +4165,9 @@ public static byte[] RoguishRaven { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] RoguishSlayer { + public static byte[] RoguishRaven { get { - object obj = ResourceManager.GetObject("RoguishSlayer", resourceCulture); + object obj = ResourceManager.GetObject("RoguishRaven", resourceCulture); return ((byte[])(obj)); } } @@ -4155,9 +4175,9 @@ public static byte[] RoguishSlayer { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] RopeItUp { + public static byte[] RoguishSlayer { get { - object obj = ResourceManager.GetObject("RopeItUp", resourceCulture); + object obj = ResourceManager.GetObject("RoguishSlayer", resourceCulture); return ((byte[])(obj)); } } @@ -4192,16 +4212,6 @@ public static byte[] SearingSmite { } } - /// - /// Looks up a localized resource of type System.Byte[]. - /// - public static byte[] Sentinel { - get { - object obj = ResourceManager.GetObject("Sentinel", resourceCulture); - return ((byte[])(obj)); - } - } - /// /// Looks up a localized resource of type System.Byte[]. /// @@ -4242,16 +4252,6 @@ public static byte[] ShelterFromEnergy { } } - /// - /// Looks up a localized resource of type System.Byte[]. - /// - public static byte[] ShieldExpert { - get { - object obj = ResourceManager.GetObject("ShieldExpert", resourceCulture); - return ((byte[])(obj)); - } - } - /// /// Looks up a localized resource of type System.Byte[]. /// @@ -5042,6 +5042,16 @@ public static byte[] WizardSpellMaster { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] WizardWarMagic { + get { + object obj = ResourceManager.GetObject("WizardWarMagic", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// diff --git a/SolastaUnfinishedBusiness/Properties/Resources.resx b/SolastaUnfinishedBusiness/Properties/Resources.resx index ded93647a3..41ef15f372 100644 --- a/SolastaUnfinishedBusiness/Properties/Resources.resx +++ b/SolastaUnfinishedBusiness/Properties/Resources.resx @@ -1294,36 +1294,11 @@ PublicKeyToken=b03f5f7f11d50a3a - - ../Resources/FightingStyles/Merciless.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b03f5f7f11d50a3a - - - - ../Resources/FightingStyles/PolearmExpert.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b03f5f7f11d50a3a - - ../Resources/FightingStyles/Pugilist.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ../Resources/FightingStyles/RopeItUp.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b03f5f7f11d50a3a - - - - ../Resources/FightingStyles/Sentinel.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b03f5f7f11d50a3a - - - - ../Resources/FightingStyles/ShieldExpert.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, - PublicKeyToken=b03f5f7f11d50a3a - - ../Resources/FightingStyles/Torchbearer.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2107,13 +2082,24 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\InventorVitriolist.png;System.Byte[], mscorlib, Version=4.0.0.0, + Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\InventorWeapon.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Subclasses\MartialMarshal.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + + ..\Resources\Subclasses\MartialGuardian.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + + + ..\Resources\Subclasses\MartialWarlord.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2183,6 +2169,11 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\PathOfTheRavager.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\PathOfTheReaver.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2277,6 +2268,12 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\RoguishBladeCaller.png;System.Byte[], mscorlib, Version=4.0.0.0, + Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\RoguishDuelist.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2366,6 +2363,11 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\WizardWarMagic.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\PreferredEnemy\PreferredEnemyAberration.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2402,6 +2404,12 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\FightingStyles\Interception.png;System.Byte[], mscorlib, Version=4.0.0.0, + Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\PreferredEnemy\PreferredEnemyFiend.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/SolastaUnfinishedBusiness/Resources/FightingStyles/Interception.png b/SolastaUnfinishedBusiness/Resources/FightingStyles/Interception.png new file mode 100644 index 0000000000000000000000000000000000000000..b8f25fe38eb7879095b90c63bfa9ebd76f0672ba GIT binary patch literal 30896 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 literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/InventorVitriolist.png b/SolastaUnfinishedBusiness/Resources/Subclasses/InventorVitriolist.png new file mode 100644 index 0000000000000000000000000000000000000000..318a184a4177e36f367725e9247cc28473695cca GIT binary patch literal 35154 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%0A=y*_>!9IB!RYxgl(DzSe4 zP}fEzEenv{8@Djj&C&~Y!uh}jVmB-*=++GxcpJ{vlD6E;kk`Can%enPeH2gDL zM+`=CYbe9zVfvncFjQFwAJ0SO>r2=!bv<=D+@sh`jcf-dlhIAf(SDhpA$zu4zyV zK)Y0RamNqF_N(o@glOEaEY1~Kd!+@5r7(aKb;MXJ3SpA#AqET+lv$x|0YfEM2_L4c z;I1kR)6r8G%F@*~=(FYd-ynfs8~Ukl%vG-#!_B0%UwJj4yRA4*w;Io*H7}c$l^plS z=vFNf5226%+d8ZCtJ`yqoCu1Zg)Kh~x=LT%2H?J=&0=8qXmqF%kE0b8e)oQ0Q z+ZXps1zu>f4YQ3c@i;*lP~|X|7Eu@}={!_*T0|~<$R>+0u_k<`gw$Qml^^~k2ePl^ z)L5WX`^-NcT_kSF;I@*DiNgh4^Ur46 zaLGAF7=J_9Ti5r8%|8AeRjOuxq(Rx{9-0Zd*%f3aB_Mb#MtmdMmQ ze6?wZ!SkbY9vTy3!vc6?5~<6zQ5l=p4TH8%mm6ytVg~|hLqo}nMG7`G9$6E3Au(;; zcDT7UfrL;WU2eQNss;nVV}9`$81$96&wD%BXOrrDmoV(k^Qzrf6%dLW^rf%yu>%9N zPe2Xo#y$Yzqfd-~arj_lPlFd0)mU2L6LNPPLk&G~%fNOK4&{RyWY*LDHz$DbEHv%Y>x&~$YSI;Q+16{(==*)U_k}Pt#m9v=9_NY3>X$*Hd&n_5HI9n1pKPY8H=J9aXiDEO z!FE7@7y9dJcPg8Y(*;=%*k`=C#4pxz*c>iZR5qtmbGLPWSx@W?8Q;;T)4A>CNX9|c zjDgjI9E2BKn)^5?^Qp{UI3KN!?se9?On@Ijk4{w_I8lNqBqom7Sld3^n9S6-p{rRS z*X2#Yfs$R$bR-9zAPcTh2~y4$%1{3SgTBsCdZTG;Dt${$sO^!}*Vq@b>xVO$cO$W& zKlK`KRS5lg+YX8iqAM$8?5nd#ldR(@)0hZ;2wg1uefi8jdTiC=&ZEO{<96=O*2Ce_ zg~RoB4op&nb76qMv%}$n?r%PsGN^sYBNUUc?;?OB*ucBnZZwe?gMtp2Fz&^GS%hOV z=3Oe*@c3C#)T)4hY_s;=xoMiJRD@`JK>y9RoC5eRW&$Isx*N_UcS_*9nxg-y41Cl0 zy6n%Rv+NafJllB=1H?6tYe9SOnsX~}%6|40B%RSV28pome`L+Q11*)%bFukKW@I2= zN#AUA7y82jT$$!4dmJ*cb1eSi)BWO+E>Os&Z!-US@rfD@V7@RL4kqkz&rQF*G*w|u zBtOqDxpygdfTKavoW~)`BHD$33yfhO9t?2o8>>}dXv$8X?cvyL=R~zB6ol^wu_U%A zfO&RP9u{j=UvBXWI^=~WB-h<);X+R+l@;ZCe=@*VqBO&}Ra-4Nw|en$EB$>&W2o=% zY1`&gyDjAu{=ONTxdQ`4iPH?luE6kjWH#rv)CNw0$&n51A$&6_E;$i@=Ihd&acAA7 zJn4SRW=%ibvcq5zZyepaHY8t(G_44kZOF|*E6P{fl%f#nkf?FMEu!vr1Q>8`5wr+EKogMWWV_w2Rb>+~gL|GUbB-=S zS%j3%X0xCC$pFM6$hb?VoOo@%V1C}9oojP(-@6;MZ7uV`UkDzHjAx1O_d&!TeNUK} ze4cf23GB|@C3`s~W^v+1x1coKJ(HqCZyHsN8oUfL^RW#8Ci-da+zRj0Oj zf6Tnc&^4I$V2fesoA^?x=Q5A{OVd9*zuX-|4@I9+Tx2)*JQhashB=1r1}c(1CSH-E zZy8zXJlI&KNoK6Dr=}aG#B&X@aeTB-wz->9%HGoT)a7(7&3^tTI*jaiUzQlvzIA0L zx%C<-&}+pX?77jZZ9}Q(9}4A2ontO?;ju^oRcA1XF=T22KS-54z5o|-7XqB3p}WuO zPk8?4MPR?n^U9uA?j3q;z?|lf?v{nOAS?})gr3VU(ZahA{xb$(eTOBz^VzJL%BzO) za({&PL2(mo6RZuYsvB`1fbZ5Dg_$V+hEEV0b0B??MF0vr)3ZhUpsP`eNsyaJVSs78 zYZ_~9qHh)kci!0M4LqZ@kp2XQfBtn9_iZ-ui%H(ryM02`bRXzzw~M`1*@E>Ada82H z4ZnX_3G@fUdCwGRZZt6yQJ>76dlSx5_a$r+^<5w5*Uu|%JP{rM#q<1d2{A@KU=Mkl zjhC=J4;3g50RG0;om6`Muwdj{*eYI^AA=1##Ey^i} z%obhg3!&qH%Bh9-ZM zXEcr;z;G84gS(OaX0cbQx8%5*F9|d7Zx*;B30QG#s?3D5&*D%rO`LB`S6b*sOOt3a zp}LwnHXK7od0ZRdA*qR8`%ea75}irW`$Vssi)cd6esvy(rt!lZZ-rrr>FGp4xHG&-w6=l#g)!zuw1WZW zab&NM=S*b5Vzwa!`XQiz^UO_z7!jJ5l)eTT zo3|*d8@?PsA%j{gpW_8RFb*ENU(pd@|7&xvS;&FvfJ~v2ccx(T}e zUP(drCTZB56$-UmBt;0qJ|C2gIDS|_daI)W8v^&BD)!(O{j1lVh5Aq(7dTTqj`u1k zD6>?R*oj!Q@iQEFJD@WJ`UO!8p4bC6LRK`~S%jENny`tD-)zfXh9PVtNR>{<vdIt;f}vg{y^51?MO~TQHe$34GDpS;4QXe z$4MM#-&5HtTail9l-R_>4C4R4fsjuDKaJ{yWLF9!KNp7$0;1yJ!vj3n0i&n2k`?a*M?yYGm%N)|)q;n=%xBeI7lLl_ob zsqR$5ZEH(TBee+LZtpDjZKM}^hple?k+Qb6y#59zx#Bsr5Cz}=v#@)J!R5O|V{FFa zrGa*gCU<)@o_)KNOr8c9+u($p`;mU!v>x^qaK8~6`2dj_)I>A)D;z2j=#C$t zFh&ZEe1hSg>-{pz1OV=9s~f!H%LubQGK7eC{!2rwrRq@ z2mow*5O=0!D-wwa=zj_}c&fVe{qneLf4MZ!K$fyE*Uid(W|~IY*N3oLTU4FQm!^1s z-3@fefK3pCS_FYIIGL zOGz!LDxT~>sZj`&+N|u;7XUhlmZdkIqq8iRVRSU+5<_1S<{xS}?v(eQsLC=W%i3ZL zRiFOEUWNhy+;u1bfl8KOCx;TfVy4x3A(FrxF5(>%N&K6@MY{FyAcOCSxPkM`u#&Mv ze#JJM+MxSybL-NeZwAWk%X|2qvY~pPB$kcSM70uSB6Cd?;jQ7AUPQ=+vat?c6C*c% z0pNDKlC)ADG=dvGLD&!vPD!N70Ghkq7f?7MPnP{fK_0IeAG&dbd;Q(p5|Zr-BSo?U_Z)s&W1#G|%MELv@X+2>Mt|G&up-PXJJ`v+ctd0DgD?fXjsq zeIt*gyJMIakBi-xX7b~b(?y`~rJ?BG()5yq4Logw1OQ=pSK)aT=Dy@a%R=kjHT*8J zcX64Wa!?FTgX6X@1-P)2VxAY*xAKh%5*3B%w&w937ri(Qm(S#yK-+*64FsZWcwepI zmQ=PGv`#X{o})$3YS*xk7)hA#d~W0m06vOfo{6P3iz)3XIqCjd?$uA_n{ z0COct6bAsUHlQ(YCfh#x8-T%xpUyGZ^Zml-=R;Gj!oD$Y!{9qZdZxQ)di)SSFE|<~ z0fST>HVWg?Sz%>gx4#hzPKGlIKn8dyY|F_^RV3Ka_6`7?`CvUnd3(OG)D!UXbrnOs zb)o`;2n@ko3?UTqB=8VysK-QY3B+p>I?dc|3|nn=YZ#OVk@Rq9wUac&y_l5c`kGB`&^&^pU*Xw#)Mm0OqB#0f3VIWrwsJ)w`rG09v<;+R4J6ZrI-S zenaYGBch>8*2^2K=5QTZmAL2`oDL9S6w~-G0LBCh(o`J-fJRhIJXrMXtem(lBEU2< z$_3+a95u7l+9g4)S^y9zq4b=-o?^AR;yq60l$`)fOnAU5Gnv0d-bR&o0-%U=0l)_* z0MfU6uvYPKl0`TLMzY{s@WL!Tb8h{*XY+9(`p5h6?#Ije%{T9S5*uOTU)f(s{_2k}o8cu636k#qs zFlmJ6G!Ya8wfXLxdTI)6&ydmpD+B<4B*C4N{s!Hrv6AJHxu9*$69dxwB00y&&A!!? zg3}a=1?*zd(J{C@K!dUvaww5+#O$Y+pX2Tc*0I+R%-%`ggoSoCX-6(~f(Dt*S zZF%jbv&OGR?o!WzurFkHauU~Rl?snhnNrgc0DwbG^=$CxDztrLQ^b&)5rS6!1Ay*V zXxgRq7?ObU8s3*5fBms=9U<`%k28O*qm6s zrd!Y5{!O7`*{+SJ%p96$>Yo4<RUCo|P1>7{EigkuxXC_y0nqX*B7l;_d>%c*Y|<&_>2ktRd(UN1!EVh% zB@{4hNr<-maKoe|A{Dwh2qv>6I4&(%Tg%eWm{jbB9%=Ko4R1f*D@a+VItXromjBH@ z5&%%tr?M4xeqG0w*D2EOQO}z)BHzC2hXJet`SN{e1cAZpUJ%P^Gamq4Rc076M=5OG zpd!?(C0al#rIs>PrmpafT7a-^fkpwboc#4bs-2niyrRBo`4E$(p}7SBe9QU#PXPE) zED*oV@iqj{-&$s3v4A9R@nspJpli)-IRr#NgniW~xv6f2M(abwpe{>9g8mu6V<7W6 zG)<_~8e8IwtMVvu1i#TY_$?9w0rbFS>)!kX40|cnoQb+I5x}A;j(6_+Qf%XN|yA|g(U2Yv1xFeqQj8;H!%ZdKINoFJgeW*>sy)JOS#_aOWP;n?ibKL z@iJs(%RJv~?fzSk>}88ZL={Blac#0;Na~1jKbN|RI)_=5x49%f00^Xa`b9(?%BzlL zEhqrkz@I0_fDVF*Fm$vqH>|d0SJ8Qvuc}VNYnSoX3n{ul!=p^iD2vWlFHI1KmD~o; zKXOqF?pQ4SddF*KEneQq4oxacSNp^-2vaem*p86I5;X5V2zgPA#|`n|m7c_UnJg2_vao%w zm1aqiDs@|uq44ZtqiYv%O7o0a&@F>7v~wQh1}#C)PVM0B(cEi47V!uGqIW?G$IPh) zg8VaCV;K4^G*HVE*?c|@m4^VJsVX6hCbsn+g-HF};jWE0I0$Q+91xq>wjc`H?~!HX z26SE8x<13!@%wxuBjTV&NlrAr&I_O#%)4fSa0_+R*0b{h0ITH_TtV@)N?9y+m;PpR zzDuIw@u9Z9zggmzFq#9f&bAo&O-0Ii7LBcKxETjILS1~66LtNJIRKzzM1^feshQn6 zrJ#m+0N||xpNSRHI{@(Nb$tg*LXp^9uRkCdK!9h{U?S~0$P*}ow=qs7cw}iy6~SAd zXTHW6BV>@CSe{$7njNNEQ3-5GZnek*DR*}=ePWsTb+*l>ibB`*ke+EqGp2nhGeOW# znpazEYjXZDOn=I)2ZU@B&1|xy5p+~?2`|Wab<_E%<4#nrj0TiBWl84W_h=rth5?G5`?<3?wkr26zx{i6WZVZ5w1)xl=({1}fxfX-@19pV;Sof?1(4YXKtA*qC)b)3_7K z(RV3ZkAd5d!N=G0sT{aRI4WT)lVw&x*j!$ZK;jU|rIZ1s%$NjscOkiNnS2oCj~H@z z%d>n-E#K$V?8|VtxYjWN>yu#5Hw(yV)mej>oZrlD5^d&hz1#& z@{j%mfOQxGm}zB<>ng`$9g}`}d{f$SoME~%gAVOG`E6#^G81Lfu+w?7MB$v57kedb z>p!C)4(6SocQE3uPr{5(hWMd*hpXOr@1Bo$DUQyWjN^SYY`M!JrVEmmis}ScO@wIn zQH_}6m^i)3DK0=@iqJgv@1vC&4$Fx{X-m%t$bDaHUvS@dWz`BwukI)$(_ZdMN#oGW zC~{^D2|y@i={eUimlXmKXQXj4Txoc-z8Vw%V>FqqYpLRTPqWNO-oToC;S05*6kBNDrPhsQw-b=rCFs^=nb zbe3rxbu>uJ=klafQ9Lsjn$mCfdGfDiA;*F67b)a+6P0GHZ({Y3`K}p`Rk9ZV)Sq)- zAfmPiU7h9bTOCoKMCZ8%qi1ml;C^i5dn;n$VqCXK?J@!Y)H`{QYbdSZMgMa={xQ$o zW*ztyyd2`5h`0AgQz`v~;d6&=w4N?&)heZ0J;0Brlpxsp?I59KkEV!mZ66n@(!B)$ zmO=R5vNPJ_{tc8~$lQJxj{xAcjxp*9Sk^9aFV&3HRaIn0H)nQ9LCNVtUk4H@q@A#J z-!CNmE%#vkpJ#><+yzyEYzTbBvg>d<}JSAh>q6#JLyht6XFgGBD8V#<>CE?iR08xCZ8+>IrVtpAP3Ijvm?lzx!En<-vIQL zI6MRO%ndl340jF9$--8!DaMSymU*Odv=IrM=B|o}XH1!6<#a#)&GH?KGG8%%MI!N; zE3cq~`6kcBD`DZAyG*FfjFieb(X>;1qlh__!w6OIB!^O3*7V7r51Rbax8i5=H0scS zB12+WJ%vI;Lr@GDXu94XOQ7v8Wa1sTJs?na9ws+ik(`u8W&7QQ{g$yai&^M~d^&MH z5gS^WL`WE7_!j`+m1f4dOD8sMwmTuZDL)gS@z1LIv7qN}DW$|i%?1DtbA$6kCbcY1 zcL3nlk!SLDvnyqx#-EfpsBJ6QcbCOBXTtWZE0G&xNSbF62;304)H60uZ%8J8J(tMm z{uDjRn;~LzEQdCZD`X%M3K7S`k8i7>b#LS7ZMqE!5)-DucHq_vD#AWh=mxcV_}%Yx zomp?|HV}oopgx)X4mKV~=BMp{v5~`l2}6nS0lF zx+okWtmFC#4}+%}uEkj#$&SQ+CE3PHBK=JIVs)g;=5B!c^j!XKfM8eNr-8xDoAH{S zRv@$UH~%wYHIBLGds7ID`q%+&i$e;TcSY)F{bCM)Q9PVAM#s=L>^qqTHWZ0nVjH+J z!0N?$K%3AO)MkTEDawYAeiut;jpD%Wn9~C#7#6{>L#NFR5Z&t~$T_?dm)om+ONzJY z@S`Y5hy_7_Mh`B~Pvv%h?)E2@uhIy~z6PLfWV1y{ttT zEJke$M~7$}sT5{I9UN&*x%h`z`ZLwWybW*?9}QB;K6eQ z>Gr-tX@YVh%4PQ?Toh2l#geMLwa-1vzqIk`JvJUK*ff7EYjy1o`2E8G0g0VyI8YFa zmz(7f0*mXxbo{>yD0b3B?u?xQFqX``B}&JxSeyg!IgfLb3>H!BphLwLi0g>PptZ44 zZnK4Kq=as9OAPdF++YCuwtvXwKm3BE{jwkYA)0>PKDV!1>nU-jyc)8e> zl{fA6f*NJGR?*Dql_4TGhHzqXwz6N>7AYpath67)4T_W%dw4*J82Gm|7$nEQEo-B^ zCOKZpZCQfbTAucQ0|v~k*QU8g#Yy@AAt~qB)^=+0l^kGWFkq!>l@&FC#h6^y4hGrT z$21yg00^xasZbJu(tcx55L4U!d3KaEP`%^j7`c$m#d_`;TWm9)ACyXO>#B72J1IOZbpddFa)wFG0cZ<1LSnr7b2i zXlwxzEhFu-1H5)|*>RTAuBmiPpn(uXA+ity<)5dUJOay(ZBbC$AeYi&B#|`sWQgskpYF$?Z z1AewFGFxPrR4qwx#VLi%+zwEh4WJgl6foJNH|#<{9Q6x(>Z`vT9+yp6aaWH&h>+{y zn&4-oAm*jM>mF6ak!i$|T@M7%Q}8}fGSf+d?;i+*{MQl>H6!f}&?da|Q8yaNGQSr< zB>0BuxrsT5M^A(YWYp;5^3yNZ_wTP22Izl-!EW+ADGuG3h*Xq^dDH9KY}_DSP7ebF z$q3|g#ZLhkdshDVI=+G1?j1G$1b>UUM{NT^=x%870 z3~do?cyGXlRGpaXcW!=~}> z-^9_ZdTHGr!Ge=3230l)kd(<+HI!<~7h{kCWaJ)igC7?I;;Q<#dQhv&B8HeSZ zZ*;b?dQ|)de?2|^8NcYM+X?TeyQWct2a6Ygd*V*N|5q-EM24*6dS#4n& z*z?*NX!Jx-bI20q6NaRY}H5@`uq*B=gtX!c2s!5*lut zjJ*DYs%O1A3MZz21q+aJ!QlA%Cez< zG8&2?L%;`0(GlkLmMxK0thc3l#2W)81jw-2pH_w}e#GxpDM| z3wz7Bpo8odtl|ox+Ij}m&v%cjD9hQHRD=mhkb*J=HDk%YUn}{YoJjt+v4!_N?SlFK zHh{9yY@^tokNEnc8 zCR^t3{f>4#YY*Fq3h^HJGsk`ZRk5vh=t2qJ`_XrCS2-69pz#CNRn`- zKzzT=K)j}?MhAv;KaMzn05cjwU|_SB5IA8z_XE{zVgqBWttR$vlpPJx_S=8lB$aua zsP6W@sD06)0xaR7nf*fuJK1hH#$3^sIb~YbzFyL|=q^q-ezdDnETD}SpV8_<^09^h z@?y6w_rj&>hNSlb5P7wkQbhjj83jJF{I1Z6u(AaN@o!-R$Pby?B{2g55%JtZ?cfMO7OfN=WF z2Y(-5H@>OsUEUm|B=?Q|E%{awU4$hYqCyZRt96paO}7r z6H-i+2d@z;C~Zs@oQ!B;NiujZRTT;cV39R{I(?4-s2Z$_;iA0QETFY9!Z}RqH(7y9 zCT&7%jKs_SdAssAgv_Ak=F!Uf@HbL0a|WkpUn*)KL{|H$-XHD&PBz24`}!we1N%nm?M<(D2uIfmMn3_D%-Z|B=voWT?{TYD$4f6+y1+$6E zR7>BP#vL3UmwP>2YUOf(fL_6l|GrZ4^ES-u`nJS}JchLBF@T8DAR>VBmG1&XT<-^& z5MJn|JvqUMWm&W*gNqeawjF1!jst2*7T#~rbS0A@(z zSUDm6 znIL%X^9VmLPXURQa&Za{drBfl_LjG9X8OBJB{Dxk=c!i>#CBN>%n=pE>B3ovfb(jM+ADm|h z8mSLJv2g~_briD!!~mma@`@~(DU&H#YCcjBj}(FC7aB8%mrO%c^gZ%~AWGa((7(sW z@R@IQun(6i968f1?oz;WGQ2ya=Td~?T!0?$yKhJwf6D>CV*z{C!5I|e@Xu0RHP{Ec<9r%x&PV9;SC>0zdrn(5_c&;KXV19#$703ToV-X#d1PgvPCK>_=6o462<{ZE%6oM-E z*#ZA~x%k&)Fl5m>B%_{BSL2$1XCRBnD1BfZiu0jvIy95kT^bP<+ifFWD{TOsz6!SU z+7kvzu>`K5dh^_^MZ806HT+CM^{ODZ>732)JFPSm8-9=f{^Rr5Y3l2|mn};s^Y+jg z`mF;h0ra(r%!;xQbexC)ZVSi`rH>1G?D5DGrDp!b1!=%QX^}3TpN(cQ(xO?t!vJz% zIO!?0NO!RMf4Ywkw#xPAbggipbLF&T(jzlN=fex^2de}UgYY*3*ntwpW|I!H zP_3k5l$62o5Exp=0x=@FCK3|0Gf9udn}C%?K|&Em|UUbiob81$Mp0Dd;PT5C@$=Rk!O1?z+=FVE8Xd(-FO@;xwAyI2|ux|Qp==M$n z@?9r{E2SVn8UX*HUMAL@f&1+67KA&#cdNvDLASjSBY+)1ZIk@F^ zIF9{{6SQGD?0&OAYGN$#s$@$dj2#W4^CaPkZc>>_!dgcxEV7Yw~Nw45?_uiF9wy5q6uNr1SM4JYQGs~GXa#QceXiWSev zO8KJ54k6J82k?Ah?m6&R=FW7-bs~tuEJ6Yav58F}gh;pDcDucF+a@+7GY-VIFtXqW zFM!1RKLcNN2>ZS_+swT)gKO!kQ>RXHVMBl6yqKgTDbOBJrrC^gS1}U7{uIEm9wvZk z2PsWdOyh2#vslEHths_v9za~W=8MCxOk}aR9z$e&893iPTQpMg}#l0i&X~N&CJ+L*tcWBL&pnH!}$sZTx0~D zPz}Zgz!T|W<&rQRDkD8`00sV13NU~%1bhm?6dO@AuZe9A5lnP$^S z|0(R0>+|^nzfVG_JuvOoN0Ycn-;Uw|Ra|ghOLccBsbOsqSUps*EIrR5hNp8@aqpsf z$ii3b#z?`!!mOX2o-Bv%V#Y`<$7@qkaZ_Q2<%Do7G#8*`2rAoZfcK`|jj|03m|t>& zB!EpxfWs{T4)nlZJfK0{Rv)%f1!hvfe$`Tj`d*FK?19wd5?tQ5>hWB|t$($fv^=9^ zRGbD%*nvK}Kt6Nwfv`}z%-%>kEK`sPe+8&i+S-#Qmlwv}qUa4##cKpF>^4CEvc?)1 z><$hiy>L2aT(JLk$PlsL-yGnxHpH(BerW3w&IiEjj3y(Q1??t2z@yek1<BU66P*sog~nstK3vNAy?QX5C9iBMpPb9do{ z9;h9$tZ>Gxqv8*N4{>Faw`;@3!|?5lkbILC3^1S#AOR?Ew*+|eR}z4s7_zCT9@_8wZe~O)Vw&ju;I@_1Y`FO?-wOeNB&p)&r*^F5sKLU6wo*|ZIEgVr?_mBYy zp~lpIRfSB=!T{^y8oDDpk#S+4>t%~4IzG-CKRp-OiN+R*6qYYCM7@0 zxBYQvx!KG|57@N=rzv-Oj9D~r5~uI>FFYL)m#d*e7+XY-=@>r@bU?5#x$eOJJIai) z5yqyoh#|-l50s;b!wUYzfQKDV5bI6XeguH%PgIcS7YmAQz^82#d|ks#1;25L1#Becb;WD%g_Ha#5*!3CBYOJ+$6cy%P+y^qZ zsMrqM&|Z-p<)&-1hXg!ijmTic1N{eUxlNXaPv2eQv;Oo9bOTjqh_FuR2OB1hhwR++ z2;RHQmc~+T>dC_6|Lk|;6R|%IgL1Rl%q}!QiN7o8&~3AB!(mi`Z%;LtD0ooWq8hRv z7Id~T0o-pTfM9_SAi=SzEhbj9iY&8!oJJ5RUl zgW6#IRO0948w2j0``c*lUV{uo{Mt2>%@Cybr|g_vkC&`4lY)CI)-8bUf2{^*<^He2M+7Vi~?dcOaBVHxWZ6^%|=wBd7)grA~n{54Sn^w^HCm>B-O#i|%QK z?I$Y*wzw87Z@z$H#REEBFWvFz+7qIxul8o5=$7q=mvNW1L@?tw9&qtrf^+W<2;*K{ zvPbf(P^j*X?_ZDChyK%Jhki*FCq@Sax10}myKhs%cL^nA`H20xJc3DxzlH?K0mBX^ z(0bHF8^a+E*z~9b0u1P;(tKmcE4|E}LIwVw6gZfwIu{4kIo|;W6jhN|l^@G=L6uAy zfE;O0ovZqX5LT*8SW?}cPqeT&5Q+z4%_jKRzue6c3A1WHCy(8! zZ;ImKa_OX0yE{i9-yAQp`=0#?)380(V*e-?U|Bomqydoo6o;DmXJb(^lyn>bIQ<|n z2sI{75^%x4mfy%Xbz%NQ4Pi`0dT&cAiQuH}vIj^}fsPAuO)`~*?z_0ub>c#`V_#HnAEde`GUXPkIIe#FiG z#koXQ$Es4Y-;eh{hqzusO9POyUnX-+0}!4#fexMP4PcBaSWz}{rC|*G9p|Zc*kTuG zrc<2-I>86UUQtyO+Z9KeRaH<39UF26yvmU~ys z?WU?JLxBALxhOt7KRz5k>RG$K57vJF(zLuu{HZYGYVN9Oy2*n5d2%lRjv5FUMT;xk zu!lIxS^kiwcAxXe_Zgsqbvdxa1+8l!z_QT=H}7TseEW&tcb=t#lw1Op+KWr*iL?C4 ziC?v&=?NAH%D*J@#;?s}& zs^=}dYu-bnX+HQ+701bU`yEEOFv`TFzp;PexTdxyCAS0&kBdU3;xilV_kON0y(xmg zDMk&eWHO`(Hl>jZz)Pfl?|B+y#=6S51XRAYdN`Hr;R&4e7NkY=x@;HfzH5v(x+VebvVwp0@Y<_cLCy+4yQt zXsh3fgoPW*b^K;=K(5jI4Dy2{{>j)D+Y*j;rp!bCBM4OGJVw1nI^?DX0xkR&`;iDo z;X!`)c@{N~=I42KC3?Zes#IiVGRAjrLa@N7&n>8`{^;uVu^KEKELvfbz!u${Lib z%Ki6ThT1Nr#GjJD?W$YZp80eH1OkHUjmeP7%vi3@)a}g@YbYEvqx9z78 zgFp)fiHs6a!wb3Y~i#+d7pN>8)<22YK&*r=i!CI4Lm0RU6IMf+hJ4PbN=)|0;D zH64)PdwX!o1R;}nk>npaPfPDYYJVOV0Aaubvn?>5e;&?lw^HUx4Zf<1?5yX$?G1n# z9BV`#5q1^w*a!B+hsh5%Ry9yck+dpR8E%DQ)t5^JgI2dS$ZhIS&lkz021BYvlS_%S zxz$kA;)4Gr5k?*3PsHJRu)h>O0p^7I%q~<3Pe!gOOZ6XDU^;I5qZi=b3E;G{W13`0 z3z>g>gY{IxQ`Z*BT=kd6r;Dn-x;$u;Ri8IHzzBe22z}z`ZImjw4IVr;svG+cJFDB( zbr+?xzRa`!azW#E?5a#B!Zko(&+BOB^i}~@t;GR;5C;hU%cYJ)`$xdO8keeq_guvO zVAU{KXi~ch7+abK1mNr#3&1EB;HMqnw-GU;WPK_QCM$(0JZo~`^g-6OT=`4CaUWo_ z$oJ|?J9I$Ap=3LT2SgAt_+S!ofRQzaii21beA@;&quMSI0wBLjmD{ZAI=V^ql`q!P z>@<)F{aG<$D=B4?xDXt~{5&FIq_L2#$-vJkO-^oz{mHo72Eimlxq&!kO}|(lA)r3| zxC8udIFzuKJzIt!B*txa9?I)SS+Qnoa?LisQV$IzWx>}J`N~cSj4rH~8At*F>MXp_ zGVQCkjbx#tC(yt`1#?rtIQO`+8iaPOk4alAt)SDje5;WPXl;UJIDinl8`CO+5i(&} z1&Ndy_Ip~Q4<*D5=}LWZ<=l*mt+$Y-b0CYTK;k(>fq(cs!%#NDE_`WVffB}|?9u5u zlXoSk;c{(k2uy;qk?xOZOWP~k8(aXj3k)EJU{6nhn}TN-;272PPD$4a#B2+F#QdTj zMQ5Wjjr=1aeLy&Z@Pz!V%fWD*)ct6_2nb33M59jgsVskkCbkCq0gvmdg&v%@gM zWC8^+aEES0@Six(5=gVw)tN$7ILD$k%L!PSG>;eSV?!wFiJ_cbX?LCzxUP%V^urxi z?1tZ60K12MD4HoaH<>-Ocx-gzG$)9eIRivs(-h^jhg62Ba`Hy|Lzu0)t$WIVBrwmq(S2*b17I24=2N!7$R1pZ@P)}B?!QOeh4vmv>nac(H^Mkcs3j(Bw)<;db^gRPFV+`M46knq=qhw;<9c zla4`mQ~f2OPS#(Q)Vi1ga^yoJb;3@*5(&iO3>nTY&9f_S&RKuMlFZqcVu_UV>BzhFx7SSm4GA?_%08pE=;7z?%N?DHG-p0?Il7; zKGq9{*wj0BnMCf_l@L03KHnfq+Rj3%FPjCP&c-i z;I)+JwP)Thj(7wpr}=-`M{$_WykzAi0kU zy0~6)i_XtFeU*wfVSiuS%HScz#b0EOQGAkRn@G7lB=-#y`7j8Ur*w9O@JCwWe&f0m z(g0Wpmg5uI2Pa}Fe*+q2CM&EU-chpO*K5E5VL|n)M;VT1HDZ4=5AZ@I6X-quso4KF zdLT%oi`3OcLesBLRn9zPInDK$R7%POB@j^<7hmrPXKa_Pkd?6F-_YbqV3;$usjFV? zFi2(?HZ_grb`(?|)86QqhoXi`--;+#ovS~`+XT+8O_&2`bepn)Nl4WL(b;H!OT!dp zm1NW1{=d}&9-FdO_GTJvP-GcfSzcm(e!opjW~QBy26q7M_00u#pA?QEO~Y_&h&kak zd{LdT2*=>Hs;FVWyMmP#eD6fWlNY0pw8gy+#5!N`2A8Un9H zox{^9gh#93|Kun4|L^Jrqup$KOww>cnlOD;oVpk+(^XbCIKZFTmDD{7kP;U#1x!|2 zb!y3Me>2P_LfLt*DjWzGB&<+(EGpKnlh^KE{eiyVgxDC2j=qanH(2Oy$|bxPTSB=f z!UtO^f1ybLqa_}5|AhT`;61s;q&N`hFcNZs$nE2t>!vG|Cm6O;z#QX3F*It{krx8( z2gr*7!t!wUz+gabP-!yB%8M9xVe-|w(8gn}nZK+AFxd68-+pv!l15b$9#Zs|?s!QJ<4L3acC z14{+(Nhz6sM`-EI2F6Fxrp>Yei*m~0-M`=d`&e>j zQw3Fys?-+N+^)2%A-C3VA<^h51Uu%(j)AOinzwE8$Z6u!$Fr2AgZ&0XizLQN3V5iV zJnTNqi_Cru-zx(W&!h$^f3U@Iv#x&w|Ngb<_+aE3^jfBZQE1bz9{c#7uZ7yy(y<>^ zgMv3VTJ)+$V9baE$|n5|+i~<{_aLkhSa=LUXhg~X`*AbsfCZL)K&`|B%-ORWHU+a8j+ zXyRZLl+e$$!Twm1-(>#%=gu?I4qbo;=`sLL)yn!ot=Y*YWz-59`gcJBz|Rjh@Q9PA zKxvvBGv9Y64t$d6oBr7e9$eh`-Sm@#cOi_db^`U18VAw~^U~f%fh~Zk5CP3z!f(-> z<7fm*?vgrRV z1*F4+k-zN>;*9U6e}@CW4&|K79spm78a51$AplHheX3au2=;@5Ap9nFznK2R+wfoi z?0NF7SZ8P8OqLCY;j7k28sdTsR@$znsBN-M#u_v_XbG^ag6QoO5)M(kVBpWZT~PXc z_G57f6D`Tl;tT+x9quw5=jDe&AFCQt6oa+eav?2E?Eaka3-rf7Pzdq>sa;$xIJYf^ z!!ij=+R9o$HJ++YGbkD+Ri+=;L4alod4qVsVe2m);l4QF=CQHNib__3VYVfI$2u5h z<0!Fqo3+%5Cc);qWcDHbh5qFF{~PD&7vq4B2lh+m!JnDR!AJ!HkBVL<9F5wW5{Tx~ z1s!Jx=as2A_N60>uJ4=tgH*_|YQcUulC^;$s#ygK)ulJP8BdwxGN{__&>tWYWhltF zo68i#pMZY;rSoL$hb~a!)>E}GBVQ(503HGzo7`_3OHL?CJINF$4ltRbq`PqzqWy;s z$bWbd#xZx~{HnM+^)hH#hHweoAedO+%ul8DGybpyG}=>4V)uIi`~S7`ymSMk4$%2k zZ)wB0AQcxh#bdTP9gN+W;CDChLetdXYYO-|qcF6dbQ1AjPffgf-HmKq!&S70zc z7>=g$*OL4q!f46`C!m76-+uQp)&Ji-Pq8A>Q?sHPmBYbc|z))Usue z5T}dG0nGokDrHlO`Jve`e^AtZ4jVjW2|Ngp+LhLEYnTbS`LY3DL^lTkg89wOd>q0_ zz<&STdBfkfe|W%b-KCW7+*To%#DEZ5FByU=;EyY}S%RKpe$>!Wy09(|`=Wry5$XM% zQ&JFv$6``KTT(wzNaYK)0B!ygqmLFb*8cpJXP)>k55O?F&F>|L0l`w8O;IUnRilt% zw(h!m9?~fG9~f~sgxgCZoA{YFgJb~?hy?L{C~^TM%oaFflpHqmDD0C`rPRfn`RRX= z{Xe}2Q3okOmnLP*p^76#GE;q<}bpY>`PnFyTZ8Ebit28Ixx8 zH%%b+fmDgX4{~3&nqioO`EuTQ_NgcS59jOl&ZakQAPB=ygT%qYHUc|x6;IY{}1ZCv%9G&qO_-)D$gZ}6(POrnf;iZ8RCsk1n5vMAl~24xE!E5i`sA` zUn4sDRtw|=)uagfU0+MpB7_T!;ncfb&{Eo*n`Tg4>Lt4#DRipi6C)yF^zN~Vl^*OE&=HNFBW&t|NhjIYJ-dJ& z4oZ&X+bo_a!zg!x(PG#S)M10gN!4Q`gPg_2- zSfy1kXeiZ+wFuzEqt3g{jD!b}>i*31J)D65 z0m=#bEhO22s>{~X*z^4r^X2MglvBUW`a6HXG6Etauo|zr{St%Y=48S8$k!z)s+r_L!9G=mF;ZKO>5YEJ?8t-sjb( zNft+sYxcjfg}5j;PbnMv6_i^0oNl&75ikCm_kN3Lo#!iNx64+JJYPQGME}Vr56=$| W5zsX@x9@WR00007<+CXKtOJ8ZXh5aT3T8#Ffbe(94jj;DJdy2 zF)=qcHyaxpPEJmDcXz6)s>;gBnVFenWMsX)y`Z3=ySuxVmX=OVPGVwWO-)TTH8m_O zEYZ=?va+%P0RajM3K0(xw*Nc zqocvW!N$hM*Vor#Vq(h5%64{kn3$Ml<`?3)lK_y7O^Npw<9 zQve4MAQ>t%JVZ=!Q%3N?U)_yS>THAHw`pee^VZK@$iS|kpN04G?TdiIx3G1iqkPep zbHBA+$fV}t;JEDMK~#9!+?HQ!+E5sWYmL#d!ccnQ z0$OZk1w|0 zLk=5Q_l&(3)B0%u*DYHr8ux|mF~=zu&DlXcJ$r>LXt^I;Htt&0cKw6RkVeQ=gTgN9 z+{=|(ui9?e|XX z4EBB>4srzh`bNHabvJ+{Nl+kZH949{MBuSv`pxiLz*d|PXyF5>@l=443Sm7~5I!zp z=1aB`o+rdjtNpQ}8|>c^4lP0Ux_7Uu9fSl>k(fR)KqTP92uuJ81R@UjI*tW0^nHoz z$z&~+6a>*|#dLuvoFhp^>Uk}2cG_=rP12UrJ0h}u0E<!x0!p2OjJ(_^lYjv*a}qIB3}*=b0|%ufLG*;rPqT<` zJg?F3xh27C-YU->NF6AAH=JID2fjvsJNggD1zXF3hJ9^rpZY%lXTLwNoF!L zS(>fA_xF1yRqOKXa!4Ufvwh3?=Jdzj$IQQc?PGX)+ICHY<{nz9C}e_$4eb!~44c-5 zOUZZHkY!5$SgP6?6dlh2n(?ry_bp`#xSU4W>cP~H?_RrlVIC0v9}2#s$J{@Ea^qfe zdWO1o9RdckRYrAoWrH@fLbr{qvTRU8wv%#KRgzCwhI20QC^CSh)s9ct3-*EzOdx0` zr=g=+#ZH$x6fPf)Zlz@@8$&z#2;Mn?+Eyz_0L~?@$}It zGgl61pcG_JA?NLwL5t|a4mCvdv-C!9<0E#b zWWDc3n@ukmV`I7X+?efxnSnzsmI13etG!ftS!mfH2iO4neO*soS7in%xN~yMg1>D7 ze9qVIKY!=m8&tosi#BIG<85tU9JROT?JljxwewANXSMbTDFAq|R#Hw}axPgMGyo|w zv-TFq!J*vcRv6n2M&(JbIBjuknChvaGKvPyr*{vo+Y$L6nBW+G=PzG-kMQjuxu$`3 z6s;AX@5C$4}GccNUzKaT}yu z_hqhXicMfznI_eM_c!Ll!%IlP-!{RF-#!p0(^r^%-DF2QiXU9^f?Sw7oSbwSFDgsLYIh>(AgFZ%m^6#J;p2$EzSp_RG> zpb>Vx7f@)|#FY@PNv!m?WUNg6G$I6TlQ@p&A0i>{IY7;l*##jVOjp}6dVlNjgR3X! z|B?xgYyY#`XQ!Rk4cMudTKKim&_&rTcMLx?Tmq2+;tQ zr&%lkazYq@CQdFe7yI>cnF`82lO)$VAS7NnmV!@Iu|yqhKN}7u8&#nF$%Sch>KXk6w5&Aob%W%4ZxNx zq>X_!{w7`95qwF4K?|{QoM1-*I_L8;E<#|bOMLGOtyZ!tIS~XeY!V0r;=%zT7J)b* zAt50Uh~)%~%PyD8Rkq9ReczXE_p01<=@@Hl_+})+s^JT2AUwffNt|CyIWeK!P_@ zNO%ObnpGW<_Wj}h-kY!dxeWdn{FwTmBK5mtEuqbA1?i*J$D*n#v=HnTxXew`TwKkK zCDAEL2zV& ze=oCUAAP^z+E=u3{h&;JbgHhVDPJ)IXao2%np=Lu^rW7j_vRv5Js0qbXMr%nGJDw zFe{WnbWz~My|4Bq*m|{P>m<{asA@+bdvIaNa3&D z|KqPP`1O@hHEnOGF4hwbHW&O*#>Y@GV4%#N;ey@6sK!1j+uKr)6HuXf1-^LJpJHTa z5A^pg{5uR1C4f7VaB#-b(6)z+<#|DEWe{~eQ%a>}+(_r5Ai4XhOGCMYxQWpnI(?pc5{^^+K|{zW|ung?}chi-Ut z_<|mm1f!TzZ+}dFNivx8+v=|sM*=9%hE$YSzQFysUFfzj(5Yn|VjPB1)KBb2%B@U@ z0=$3trgYsV@ArVodX_Bz`lIKbLk|464E$FAAHMs;tR4^eUM&BdH~Ikp(dBw>vbv)x z0&5fgd5(&-J?ZLtXd`ydqY$pvWdv9|JLLgH1Vtk0>jr(K;0vk2jd}t{-%_9o=~E_yGXg<)>}m`CO! z;iJ}9LjtMv1K#2jn+Kf&U~#v(-jAj1Tr`5SKFxjhqbEh%1VOV&_Jks+kpv!V%m}lP z!DzK#VnqIr8Tc9hvv0jCRt1Nf z)kR73QWjoG;1uK9rYvnwogPDbl--w@5C32Y{v-T2?m5e-^XbScFFWep@MabZN^MLj zAx~PSBNAYGjFWgoEblS!Z&iEaUIpVi3tuDYYgSRVm$;^6tH3S(x$)vBeLQ%E=bHYG zl5rxr9fhu>z043@gXvf7wv}Y~mYbCelz`%vucl$qVeXwqG&+A9I`HQl`1knz`ds&% z&hy5u$f>1~FAE#Y`Qs2rac-Esl7dWIWX` z9Tt3f!bTN(akj)M2Lazf38p;dw=UP)p-b2!RKb75z|Z~v8La!i*bo`#%jud@h1l6=`^N|8%ThfR@^yM@H3Bw@;ztqD2Ak;WihLQOj5xc z19=QuF=OvrArmq;ZZY$U8R<`PKSgOZ@<}%NGkYQvFUbOCeTVS6N1bsOnpqY_xilRZ z_=6w#SN{L$x4u`#?@c=>U*$!s{3#&;3W}<#_PnvE`NQ$wLZ=dHT&D;2uOGmG?^5_H zgke0f?ye$J8yQGk*h3Y2CAC@?Hi*e{3=)JDVg~53Ckp)QXlVj=LmU`2xfXK@(#Yb8 z9i&loyLnd<*jsO6&I)4S*y5)8scWh~?XE{4pgrNh(GSyW^Z4NFiuJqQE? zBXVXPf&A?I^ECBvirjia8!0)Im_1=x;D#XC)dQ1fLi&lQ2A-LDa1l z1CPa-=6#Th&N;*!W^ffAS9BbH_9rriaN`-L>DQT_XOu53I~OY7+q-Yr)qrK{Mn9Fo zZRih-*j-V^x3sLf_mKksl7XM_KmF>vK2m>=599k6{+*-z(<5(nvA8T;x*5I&_|9v0 zm&VygJAeeWA{h|C{zyqN%zNl^ndImd}=0w2+Nd)X)0{Oqt5Uk=H9=g2O^W)g_C>APd zg(x`+vVadI>6PHOXmZpI4mv34xY2V?^u(w0{;jv3^_5ts-76wxFw4v)}PW` z006()fqx``FMR7i)B`J^eBjT0U(-Au?_D5u-cxSQQ-301@#>NMzBq3-1$UwOh+kze z&&m~OX!;W!>~YGBK%6NXMR}W16i5K74`}}?evL_c))fxsKB4y9-17kpw8Odjv#Db5 ziS4?V5O56!?Byt%c!4c@@ulbfaVz-E0KEP^@Tqms#vgvg-wc||=>m40S3igVEcSVl zkP&)^BSLL3G}XnD1))cW;x*_BxVMV6L<)ci1&-=Ut;tRW;NEAUT-?Z#vWVkLZW?-= z#kqyRMHnyY`;h0uknd37`t0j_<=U9Eu4Zr;&3LSvtZ714y!daL;m;cYZ+^e_&?HL8 zq1b=I@0AsZ9#O8OR_JhQqJK!R9%7{*I0_)p9*{V0aO1y*Gr$X0CCNbLPFJE&bne^B zQizQwm7YXTw_O1mZ=sDqmPalF0X7z)#)u6D1_UVRs;V3O`;+fH?~+2hs1L^Fmc@nh z9n*iZ1AhxXZGXQk01nZ^jS>C|_`|K#>61#V)UUDbBR(g&Li983@pGwR%jGXX7~|Yy z*Si`xI}!6iw1*=6vw}v5xq?Y zA4+$n0#PAm&vr_{-`fDd9WQb`GbY?^l2m#j9f?Tak5~oioL4nN;KvD6oJR6ilrilu zc=`yPklBZ*0H5JqRCHapxhR9XxKj>L4csY)R_mhC#gp$G%eokFbY42n5@%Z>ljYNo zuu=LCgz&l)`~P3eeb!9MoO54v*o3oyzj4z(ds6so57?8qf?O}P?rS4x8T6*xrdf^0 zw!&pCMjtNoA>U+6R$+(SHMoV&lMEHo1j%c7jPlpez%b3H-Q{*dn?p=Wmex&FV5%%o z1;u>cuU{}b;Yk%I=EfDqJkN#}bS4p~-6_poSE9w|6nUOvo`b-ox` zqExGdBK$og=lB?rPVov74iF%v9tW)YLl`fLwX|E&*-Mkghvb$!&GnGO5{q6`Rp~3ln7S;Y(RS$n+-;wt!W}iJ- z{MEpsi7~V&oJ5Zpb9&etJKpu7^DQt)=TMe9^9IPAE0t-omUhOuNBK|sKS1zO^-~p) z3UYkjWld*vDDf=q$RqaBneNVy=BNV88U1`%=X!Htf+%ih+iXpt`FFNH_;*h%FpzXQ zq1;K5G)cBkp8bO({L2pDgIP`Fx~qQP(FErkMAj<}D0yP_KFueyx;?Re4psr?3<8?2 zX@)*1;Rq&~v~`8Vrh;GFEk*|T5f9MpsQh=whSc3wq0V!qgvVn0I@8^-uGC@=791fn zLW$1Z^DNT~2vB!59~{srzI*cBF>Ynk=!|l|axoO(o3esnL^4PMnWmq<4+f9}f0qC_ zAk|N66Jz$Q_1*UuJp8u94#iKNl>Wo?wGw!1F*jrmwP`s6bH=y4yVo*X1roc8w!BIY z;72+vZK+Z9tRa)EXhQ)K2cgF#p-?`=0G*A*tu7VaamMLZFi1lU^Warw8pk&4QA7!0 zx9AWSX!$V2alC0pK4{NuvV>1E-FVy$5`-&1eeLhaz;6Zc*1XouW4%>=e_#OCcy5a2 zH|din(X~ZogrS)zNWw5=!~o5@`bWyHgk^T5ih|<4p{S^!A_$@)DyXO+?m}lbl~j_d zER|IDed+&?=caAPFR8%emwS&!pR`+r(do>WeYcPR0%&JUFo-8(y`qWoXmx@DM)+hs3Z(_<9C^Pu z(f)${!ElpxM?whLvSgN(K`n@LU;gxC{~rRc0QdpyFB`~u^{S6481StkTJMMVIpZx+ z%`>n_n}rp!K*=_tVc{o2EY_Aj8iE;R5lyc*NQ!J|Sw6~uMsrN|qwp=56+!od8Tg{5 z96HgpPer~D5lxPXQk7mFhW%6EeNC^bJhKFqHgWkjUYI17@1pJvE!44vv%4LTM`Y0N z)s{I)1*RUPt1Usb@qj z0CPCSbb?W9(_9i${jq`l7@g$HB4y+e18%^z7bf*$+~SbD5r{YGJLr@>FZH6|e&!#v zf&Wec5CG?R^6D7ovE*|g0qVK3yUaoqt@|DT?1p)itiVTM(J^oj;T)_*;YH|ddzeF; zbBu-|H1qL>eq#dJpZq_}Xc;oLKw!c1Xc?*qPz*>#>Z4_-E1Mv}92t`mYBfkwZXtbS z^Jvo)t|+%6LXP)x&v>LgXApI|-+&XgZi0t(yiW|i_g z{Lvqg{ql%iba9piSA|+UV;1MS3_8MLff3{rVUmwfU>he zHei0hA#IaRg(PpJSl&Dp*R`sOt#WJ~5CK|A3tCAV=U5McO|~g#kyl{-I2Zw;YA##F z@`d`=DDk2g2tX^lwN#z9E9@j~AOj5RpAo<;8U;1S6S7GyKVl%easdStqQu+q2w$~q z$w(-7?{rZ3PV8f5?bz9Gu{-cTxxfp64}EqX#jVQBV^xN;L;~b4(hY7uI8CDsY5+jv zY<4&MeFaIJr%h$&od?el6OGSSB*Dav!n)sG2mo3fSWqzZ!J<8Ex97|o&Y}tv zMhQ81rE++9s(*QxMiu2t8CH3yhF0->;HE}MK77cse_Yc2D9&HEBhhEfTn!0Z40Rk#YiO@lR3^Ei+ z$sWtwRdC(V|ZC`r1AO@og|(-fMM^Rp|nmc{}C2L3K&>{_W~ zB$4C%;xixlpR&LWz=ytzG=D46pw%xPx#V0~|2Z7^cmf=ONUHoHD z@Sp7e$yc5=3O(!>a=QZ{%O2JmoC<;j%tuQ&2Y9*&thhG+f!W1U7RAOMlcO^KKf|Ez(BRPdQ;>QHqsv@Eat z{sU6>t$OUl+?M^bpROIGs@0w1-P+lpSbwC}a|MO0+LCjAY1@p~*Kh>605Jn9oEnBA zAPpB~NT`a}wWP{tJNT#v)qiH+E?`Cls6=j=;G4;BKk;AN!gmP_!9AYfI-x4MaP=N` zWIx(q8X&|138^L6pv95R$9aYKrLJj(e=HImHQ~VZzE|wRlL71(Fmjl8 zJ@kEjD#i!4=?={XLZGX)X(ZwO^EM~|+^hBuz-`oL!E=z7fdS$YZD)#Z9RBa5p4A9( zi5C7(tuPs#9l7OXnQ^B9YstVjEfac~vwZx&^TFEzKJr!C#!x*7n5>>5hbQ?DHiv3B zgBF>#j2NTni>bGrTR-g%(>(u(>xbVX_HXm&E`wu8=t$k(Rpt4*|KMpE?lo=Yw6^tC zL}{TVOXRTWsn^BUA4rb@5C{nYG|w3KwsnCw@;6$;#GO1x*c*f@2yMenbISu!Q4zU2 zve6BI*}w&?$bT3vA|hX4dSX%2k-`Q3E)V`Y8SDpefXXki3B!va>``drhYdcUt{}wQ zriGW~uWlR_4;p43N;8MexOuXll7Gl!N)6j2;M|=oSJ+P#a6*`OYniv<5V5jSD-F*2 zVaqGdwrAI^g<(K33&{t9xhoEZIJip3piT>T<7Q|`HcW7)#V|K!d`GkN?MUO~u z>bPER-nGyza@(-Ln$SBH-^QHaKb68805||bO=fBgY3LowhvAuzWA0Tg$N_xDptIzu zMF==p^+NkjZ6Ih5ML#0=9ub;$-sn;Awr=GS-uDmtk?1+9f>J1Z^%~%S{?id#B)g99 zJ&Iw0NAH>9+^~J;7`=e#dB7m;(HRTMg-``&3}A^AwX44j=?ooaa~;b$FQ%3qBCegR19{>LC;;WT)d`4!i(Mpvco3 z92T-Ejlf2HNj@t@-Cn~EQ)L&v%nwH20B!9meTfrxhuz|#7j}}O>w&>gRB{=V|4OhS zArO{cp=lG5R~J1&8?}f4(bH&TKJiHY4B|WayOt08i5w&F;Q~&ant#rNkz?D0k8MU+ zp!z!(_;(qgrv7VHjE7R#vV$gbHJa~owJhZpP~48ltHEIPS!P8EoX}F>(Chj#ON&Nm!xZQ%3V?sVHnmk;V zKnM|P5OasO&hx0^ovvh6HO#}bo><`6!~SW!SEKxUwYRqoA&O>)eET{B$yiWn_Z7Ea z;G@YJ=Dp9VQ<%}<=+Dpfs`RQ!8rFmbQ;LuEx+nxxr>-fe4Ej(WsuHc~ zTkv-352MU+eBXQ_;Ir7laKW(g?0<5BHwPf=YxMio(o+dca{I9W0A%b0`A}9RKcE4X zf}9%p8T~3$?RBL2H~K^3>e&2chFmxPXB$ERIhVvU-)ad92c>EXUS7W5yA;6UVn|p| zAOI?Bky|^>^%o4JzH9@TM#BfNN~oZWD^+(qs9~X1hoaVuECk?u^qV)qs?QwMA+1Sx*x({25Fp9xVQdf19~+c^POinL3g zn-=gIuEaP8qihQ!5o=f&v^K10E;#JG4^UP?CA?_cd$D;mg@cu(4W z$nmiVb{MhH=$#wGeCyXHJW>bq+FRu6fBxz6KLckm3&18Fg*|4N3Vkl@$sB`K8Jn4m4v8D#Rv`CLb%Sf4nw2Cdp4T(<3JHm zK~L}gYy+uSs3id|nmzKH>4bl_|L*fp*M@eVkkMt(2Q!G5`_}z&+CaxOny}+}Hckfz zKz;3YG)6lmzhj--+_0mft9M>4QRUDa1mMFz7dRIh z^{T2@DgjZHK8$WsB5dFQotW;Ro-iED;0B99CsqM%#q=XpfpOzCxM>%%N`y2_r|OLG zG;#6sH6dsx@SHiML&V_(vm*z%6z5}w?-iaw?>}stfTPaSY>{j78e_>~>X&E;FQs+_ z#wxZK_x0;QSw>QD+F~BcBBk`7Gsw+1ex#0JM31CMWzziJC;mnoy6;B^)iDdM3c>Ja1YlwlaNcHD?V9Y`6DFRN0Q;%SU;ciJ z026zp&rp=8|9|GiR%2NS0Jt$S5D~T&(}dnkzWqvr{|o@lLcV*7#jk2{9hI6cBv{Xb zL)mJq!v%o_Na;ATMq3jox_nkKFm;?*uOZ9{LK!LTnLH?q;jD*|(T8wBA?u*skw{I* zN`F2Rh(k{q5aVugYRz|sFsrMsuJ9Vupmv7UrL0S<@1bdEX;#6B^m=OR6 zTJ#b$_&&GIg-0H6kB=xK68q)?`1ik0gMS5pYT)O-B9!NB;#5ufoC-KnQ54ucP~%D& z075hp`fKzAFBm*ewi;1Ki%JH`IctxuuSth12LSD+YSFbP=C%Odks=i5v^@O30I*Wp zd;y@4(>kpW4Tiw_zHEDVpG|`=|7sVlJRcvxXu8-@!O-n$EJ&83evqYU9xd%WckbhL z@VI%WK_Ae(Gf9-Yt{*$-m(29b{|vyJ1blY7RI88!y9WKK{jlKxv4ao@!|GwC7I=G> zIj`^1Tz7@-NRl=98~aBJ06{su zrB&|(WI)1~p#uPSfSsr#+PW@J!``uUfuVE=2iTQj6n$x)XK4d>oXg~G{j2Oy8<;v2 z0yvZ>C!fH9P5D0 zo4ZC#ow1-g04l>8dkeUwg1xIH-yOKpF4Vpc_}t#@0qZLRyfmJg0O$ySG9vk%50$4l zO@3X?LA@j|ia@yjVp|Bj7653mmS}JamJ=ZpTl{D9sRy^*S8j|7haRD05TC{E`3^1K z{O)gMfxnA@uT6+Wa)DMN0#N=EFN4z)00Z(tv9`jK}s>)Os;5{cD1*A+m0eJ%)G^StL%5=Q@;bZi0_%H*HATh$3ULBZj#(BQ35vj z;kOI?T_5z>@!DJ1e{B+ZAAXZZjHSq5Eo`v%?$|u1oJu1r(RRFC%_0aocSAo=ll|kf z@2Q1pMbKy7frwh$Qj}0uY1Ox{iwAiC9oijz-W3q62H#d62QOucs2A(8PmKw}nK^*`FKYssr zi2eb94}YiL6?Fotsm_rR?*jl4+-nPWh*Ah6GZ*ueJQluW@TVJt>|75;egN~qXb=Qr z`04=4Vi)^StMUwxx)nTogm&#cZvbd)fEU~WpcJJ*4xM3%jYr(iTQxLHiS}SivlOga z(mJ3sDI`ER01kwbu=cpf|7^YOIx&R7a@r~NIk62z*m--v9Ro3OAqU6);z$1izz6;| z0)8?P!@h*jl8;D%E~GD(Q#FfQ=}J&_>DDhlzM&l`drjQM}r0vj5KqohGxWDK-%*_K)9m`0oJt(0Aai zM;;Holwyn?W)i1Sp2ilH{uV(S;+)!Z+F&f2u4JqPMXP9_b&pEVNr-R-3MchN&ovlx zP@=u(5(Kb4Fd)%lh(H&p6Szs>cyqw(j%nDxH48)7N?zgWS)|)?VKLii*QuV>s|DW4 z{*L1X_|=`l0W~eQCApQgdhHNFvf{ics?C2TMlv5UK-~e2N$;K8FMjl20r1Ih)tlF$ z2&>Efg>>`MxQ?duj0iovppNbt?ivu?>~@^cF>PMo7QNum z6?AZR@P)NRZ%vvfL39th(0LL7aDWn$AYEO2h_(_kM$IgTDw3PDt6)?Ex+OwjI5&0; z9B}~d7-;x*k;=BFl|7>CIH(qSuU>TJ?E-KQmH`0QND_$bUw*Ak{XGDm|H{A^Tv^GY zJJH6$0T|HteCOuZNwwvFCRT`XC1QuN9j8Ogg6qwAK=;4J z6SAM$APN9Vfs*9_*YY-4I%LVn^9DY~7vjI7A9#UA3{XQjY&-+sNEq0(U5VS~%}ZiziQ5Vr=6Nd9tNuVWJ( zB8dRgAuwe;@BCRB{96FNDcVBlSoI|+SB0BMJa|Cn#c}LYLm6!dv&*ts_ApNg3!9CV z87S}E*RX#xU;g$2;T3^g_;FwAwG$Uz*2Mcs=8V+e8FM#;O)mxoKSm8C02tK(+uDXj zie?)yKR6>BTSO@z-BFJ}OLT3^eJ&U~3Va$F$(*)rQKrD9t>N?v1!G9f|>GiA|r903Q6} zI|&c~uOAKlwNl7D2dZ$>*ERqk>%GKF?T3ZigZ-ia)kHB=l9uvyQMBA}pz`)K^ChG~ z3XMPe=sOr4i86obfp-9=n>Z?+jwN;!8$_c`g8J22y^6^TdbfD zYWgV;f=bVu?9U4$bA3d4a*sfI94OGkiv)1+9lAu{u#j1+K4O(s4VCJ_Uf$-DG52q# z^_u)bLA~}sVq7JQJjJH?HeHJ+O9C=t042-m#r7);7?cF;#IX~I$JUo$Q^LOj@V)vF zvKc@rSSgl=ljH8QGzG2R#!+wel;d6Z@I=rGP#nX83gDq21#2)l2JuT8d^~Vc&rN*O z#*7BOR%)pNp+JGEQdI4{A4?{EAb`1o=x-(D&yDcnk&5A4DT-yaNuP1)4^!es8JYT* zeEy>Tr1%rWWguov6+0~=4BjWrqAZj0UXqL8On#IQ064EHAp*d+2@dxUe@+5_ZH3h$ znj92MMoOSq=PZH)q`35PK%?6CCiSUTOJt;;0edWE=^6^8$G@dfe<|-3)qIHU$U{f& zSYT=8UPn9-0vPO+@Y=DHEG5EAOFslaM^cbp@)UMrupy&J^pU4|)97Vu3|}VB?cL^m ziLQMk5PPrE_JDs~_+*KN2lTpSMI)IPF_(NGf%@U3)?catv0<7XnV`e=kN(^d{-qWE zMweY}tOd`RpcD}MAc6?j=2SEb+;_&ry0;hjthj){Vi)ahIbg-n?fvNn-b42vwlUaa zl#*J^r=pm31o}EPd>TYumT0x|CdTdAEf}P_0XTR^!%`}N2{P+du$|+ZUVCm!?K>o7 zxnw^Oup;yJvb}L%J5dU?7R^3$9?f*HrYVYrWkunFPu%lz$8%pkfW(0chQal%i=iF( zdjLN2>n^XvlByvqM29TGFkrxIbJ%}Suh!l3?=XBKaRCA3{rs?q)9knXUfBl&I%xI` zWU@6Z&IN+n?Gfxjx zfW0X4ugXm^?T1Ucj)yp}693l9wtc@tjtAYtl&;;1ttvS$mn??UWCct8m#sd)raB0( zqw#?4-0oz3`R_d7gI}umy#eh^yhuZ3aUcVDP-nKjY!2jTHHyW(6R;EMX&whPhq;U% zU7*2B)kLUVAP5NbU}F$+z-$o4pz2F~b%PY+(iH8Abie4a%_|@5W)`Q|ui^H9hHK0P zeMfFmE?wp45Cgc!l7zz(eb!`&?dGu!7DFEq(R?&)SjC>=@`K563xoC4MIRBl1sxND z&8`2Kc5GAmcu^q|bb$b(=?gDWeAQ|Y097`-3%BU zt;+psoWJebqWqqSBkF+%<$m0&2UmCj@M8b~1pX|DfAF&?Mj+}NGh;D;sjxI72M}8W zj?#|YxU29@!ElOs-lrgi`$@F-^VJ6%MAHfY>>@Y{S_46kbM!nDs|vd9sa4+(l@4hH z%-eD((q|w>0B|YY0e~{n8|IsfpR^E=n1tZc72Q^eD6X=EWtLfR%T3dV+m;?t(+HO9 zo?lc1`yMk@rLQ`A{2gU9^ZXu$*}nVu3l%aQLQD;~9QF}ha6jNOS?H4nE_V&;SLsv6qVb?|Vgpki<69yhTx zli*@*Ds&rZ1=#)!KuZ9CYx_o;Hu=Hj#1qBirIQV_`G#JPEsmGMBi-D0+6_DgeHlZ$ zwyJ{=NLC-QDr)bx{(XosMln9{pIrclvY>6pF?F}*r#|`y;9igax~87I+c(K;`2hWn z!PjKnNGO#;P{{$Sz=_dN(wpbd26d$OD|lYD2r&IAcwsvl9-tRQO~fyb`mr9Rk~In- zyhv%Vtd=wI&HE=26#&?4$^jby$cNH^$k=9XH6DqspaySI>~+$rJi|-90-wl<5=)l} zJiq}a53jE~uERFnQu_!`@7*hrqrP0#`LhduaHVGBTVt)nTlfTwfj5@ub z1Tln97A0^u4N<1zy`&7CEmUQ;rjp4k`JQ4#8zdB{Q2-5@X`Z-z#|X5L)h^3(C>Xk$ z0P#P!T3tGvVjf)EG!=E3VSc10@_<2iHvk?VEWh+oL6wZFs@OYLBMr*NcN*qc$r2%@ z`=+HzT3Lx@;Xb^YYN)R3ttdq(Z~ILP*@6gwdy{c5ya`}H7!b@ma3N>I{F?&l@IWiJ@N#N`2Gw)+ie_HH3N4nnN)$w8P{c2=}u;ORzwzK zev~;F^cblX4~>uE2^%EjPodCga*l>lgm;vp=zIQczw;7t+}yHZtc%+4QiUSlBx%?N zK3^tT>qsus}4aW8tOm>YDC?EA611-jYtU7VSX)!K4?&m zc8rjQD>zKf7tTdnil!7%7f7b7=iIkfAiev4GLbb95xRW^v!*iGq0Yo*Y+A(E8(?EIr!VSQm7bCu;IxZ#eDkiVi2C+&Y+#DP2!l~N7rLcUdB$G=aBL{Z^ zr|9TS5{QjuqfSVx@b-X?EZ}im zEwm@gYtSEtYe4N?8r=R8CEk%3MFVBhNeyd|zGnjdvB;Frcrnhg4ceeEjcqecEnskm z{=F@pkt-nP?}h+{!82XdQ5x8P|D%5c!1s2l!(}U3a~&WI#DWtom#S%MIF}t~m=L6e z%pAkxo9~l)*#*6zjVgh^T1bNTkFKgKP-P1)B=`dUSanm!hh9%@GYnVR3N6lpodLYR z9Om(Q@qmqYv9&c#IG9$o>A~}q1PeI4qV;3ufRbfagskUe4y&0JzdGRn_7jUj;FiON zpv2@a$sLGsmP0Y{+KkAZ+XX0%6B*7@+x2|{$N16T0`Sd_M^?^}1GlSz<7CLRnQj(| zir!EI?t_(*Hn!-@jLITT3=n`3rsI$c1lXqmz{fB^46oWanVwbE9!#j?tgEW-!28$Z zsxf7>P&v+UXlnEVE$9N}0Oh$&DK#QFRa?y)l{N=EFkLO2LVIrhC%(?4$8{o#!V3lo zF$jqb2*d`l1cZddiWO|Yqio_K9?OaCIK;8t;s1;8R1#-LK<1xpjwg&#lh= zr4NV_LENSh2@20oC2Rmsi}Pl9mq>si#WYXL1AF&S=#;qtaC}SAXlGQMEWZ5hYXH7Z zI7pXUBC(nFcc>~n)m3~7Ql#}uNM7v6dSfc%wLP0_+^?fUDn zBeBhXf%oe;4C~Y-?KsIN(9zwBbmis=M#B<*r`XFh94C7OXqlC;BB&i^XDjlmPr5Lk zv$!t%ShEl23M&i?5FGZID*$8#`)eWuM5mlaTM;6tIJGIveP-RDtro*T00a+`E~?I+~*^S&Gp)frL1;RRX+^iB$gcf zmuda=B}+$B{Or<3P8K%TwwUOM$GRQXL&;$w2i{$a7_mb;S|`YSZZDRRo&3I=a|)e4 zB(E}YZaO!LLx%PH+{Y8;ftjrK$&(DW+fig%AJ83%!)&)ao%$?Y7`Ed;;QO@E(3LG% zwpMYF`5~2qtk(d%{efAQg`}sBht>tPj2CIPxtQl$hbO`QQ|9K%^NAN6e!sq80PAJ1 zZjCNdy-2f<>0*}cu=~B-4iRdnn*PVqw;0xS>~0AQt^suf?>}myEaoJTz+)GO&fL%w zCZi!8zfw$PV;^l@)SFphz+?Yw%KjyI?nVMV;Y?1*nRaYnC%`PfA5|f}9Mc>&ao`Pl z(qImC1PBC=IOy`}!$p4jF97suJPsCsTmUq2oE&2Spc;p(5IxqmOab0>m(3Mbxjh2w z%YBX@*14R<^RDZ*VquQCgDz`1Q*gpm>g{Q%mh*l8T!Y~+m;x4{?nbxVNVc|hOXv~& zzT5I(PP)2+*KLSu?7tN^E7ujC5M;{OW0l4u2|>kYK}Czba{a0k+}h@^ICF&6(2AHK-cbF6?7Uf z+89lY!r1Tk@myrJ#&mCe$eSJz1>NZmfCphCM)1;-aGDK9WjX%d7O5z~KH=d5Ey?9< z=>J7Nz=i<<;NPdNgLhv8pldif*py~X9LXc`B6t99!qAVv1JEKA1=XKX>EqFdo5(?W z`*1pv_To2_F#$F=$;iYpOot)AW72E3Jy{QM2#m&X=)NzyZWT(rh@f{%mHQp4=P;+wm z!eiYdp=D4X0F-|M;Qb8%{azD-0Ogng01gRFox?2=rK&WzBoPun?V}!m-EFZ0?SHR9 zBFbVsK!Ss#_?Qk*Lcw9J(=Ep8KnLb0>9)fph5Y$MYnhh`+fS=hq=6DF(ai@n4uor6r zHXqI^&;H4B!ao6U{%!#VyEOo?E=mL?5jT^a#uNZJfIN$2M#~vlf)sxmTH!y4mwNF7 z+X970l$n?kI7CS?)60$cc3r{yT-Vc{Hs^Z%O-|GB>CLRCVH5!7Bpn{wkIB#*Ud*)9 zm&cVkY-0>3%re~3&)q4s05A~j5#be!uH#}h!$*e^U0BX_-LI$q=YnBVig3o%F_K~F z4>rkh03Z$GLr!2}=XuFZV2^1Waw2E0{(k1H(Wtpa@|5gPKA3rLb8J9Vt`N9(JeL40TU| z^UIC>OA&1)lvfP`LWZK5^Y{a8`JvmNkVL}9QYei)_qIQ^gdfsFATU-oV!(p56K*e} zv$q=G)n3Ao7~$JiWRUESM5e9lv4H-NxcB|DVt)d^L*a|ZIG0@+_j^k_%ng{Jg=0NA_`plI#Yq7fhR{{Ynf+Lg=G0wTPC;_TE{?c`BHWg!c- zly#;hJ`KqGGPvt;!a9y?x19EDVYXo)TKg=Cx$_9Y9GwCrF?8KanXYEWKrIBC7fNGf z(E@<5G4A9`94;=`pX|2i7XpMqBqOu_C3MMQ>LCuq*3++991o%l9j_L$Y00_LQd_nC zd20b8h3YPFGKA1V0c4|#s9L)Y0 zNa|?rN6x%Pgxemkm)fWBw0Q<1H?A8SUrZS>f{%rsm9h2suUrzPh4_$_|D;(&&z%h#-Rt~W15MB1n z&FG}w1rSdwXWM{aSAapKL{LxO@@WAAz>cGMe*++{`q1x-JU#TNs8}@8%-moBbDMaQ zA!QZ4P^NXotGYhRg*ml~2tRA~cCfyduKH%CYeHI`E<47bZi0x?LprutW~EX-1PUJB zHz-KE0r7tv^pbx!5?4HQEu!`9C%?qWJa;})*PuSsZYUv@-gU#>4Y}=j@I1Pber*B1V+RXf0r2J*kniri!~n1ajLPX{;69rMtv1EF6IOW$@q61Z zsPZBZg?uJGs_?>E`OB|H9py;ZxFqB57^S0I5b*b&)o@kJ+BlCh!}q8p{{5x&kq-|G z{P8|(YXD-j}m4GaQK;u_%NLN7}>A>k{h}biQybpn+=a*qKp5WA@xS18AWy^!Oih4%aSv)<|lKIRcr3Wi8Qcl z%P?sqP?87G@vs0qoPd{E0K}Ys^csMVi<#ZdF$rx_I*@CeXj*ekqmQob>88*pkpkgH zw2#j$^b+hG+0$jeoqoq``k07F2|+*LIyb2g>8Y0YyaHqqyLHhpa~w1O&H>^-Ff83L~X*20Q|BiPhRKKSP=)9CE^f_{X7lMFGU>9IC7Hxlms}E*r-UcS+h8i$~rHL#PNG0 z&@Vm7uhzpGw?$r)5oS&E3$T@VfWHIa3V?g(=)1oIAW?7{hk2SHH_32SjsW0;f8lBz zU!Bs0lC#EwBQ0GQ+ZO1rlBC8TrS zcT@ohL#m}koWOrO9@II?kC#*A8!A$qCrt2k?eKLSlXh-SQ5V)Ph14VH-nIW1I4i|M zE(I#m%Y-;MQAbv+0^=@&5LhB!zYhcb;v$c{C5=hyM*m(2_%4Nz6T`mR4*u50Pl5I{ zkv68}Y&cQ=f{FeD;8_etvRxZ9=nekW9e(@A8AVv160#S=u(0&Bag)Y&Q6^JVkdDxa zVU1(k*~dTz!ELig<>ukbrA6TpN-CK`(p_5ga>&=p8p&f%mn_Bt)D)(jo|JmtR0@ex z)%<#lu=`EyyVxtED`Nt`;2Db8&*P%n|xop3LT`rnxGsX1`M^6Voi;W`b(#CkInDf7OxN(-p#ncEV zqVCsY84m4|?3;(Mr`Xy)MD~ZdFLQtg$oQcdo_VaiJP(uxMIjd$UG9G&J0>Y@)v12U zBZ5f7eo(YRgp}eAz>^XTeM<%@47~d{0KT%DZR#kGjVcfK4uBmSTVk;Q?XaLpf2+v&H>9WKY& z-`dU4kI)xXGj&v?!tW^{`?F4SXcG4J zo*Lb*^BMp@^q++Jmv6rY;LVR~IXotV^VH0my(F`3*uMZMs81Iv{J)0NeTMK~Kk}({o9@3_;2s01Cq=1i;v*n1{VV=m~)B z6sj@Ir{qDe0FY4fr?l2)^_zlwl{*M9=GdA5&5|Z)>gVRYk};wvtUY_@ddd=1AvUMzFJ2fTbcpOo-Yknt!>E1o%`9 zsSkFDG+NkAS&9b@f+76@x--<6h#TNSBwT|AGf%Qq#5y zbq9$4?RF??UNHpEv)bs!6J(0;w*^bhpb78;5CZ+D`_BjV<7Pe>~_P)(_Q$ILs|3AW=`$MQj`) zZ?l1#CS-x&C#wc*Zs423Rsy_vXh9~3z-LSe3yX3YQ)3yC(&cxDc6J38Lc!Si-a8Dy zP7+FYzhqt@5+8iepMUZ_Xv=j#i4ZWa?lTYu*JhVQxR9!9KmQg)zy3<=6ZzF1SbI2L z(;r-ynh%D_GMAVNf+?3qB_!O8W(VyfW{}PqO%RDs;23-y6H5fsnEyED>~otW0~f$< zfcWNXAROWd4L^8bib9wFy3ooRC>gw0>np*XAOTZ@eoVv?2vjZD&&ax{Gtr2$-+9*!fl!(Ef>omQ=vH zPRs`K_tgu&@xT?v4K!SB37~4};Ek1ULIySoWSsXjVu#Ji->&zu<+@c30}7g_r)x+G z+wH7AF!Bj(A0T8!vizd;=$i=`zAa5!hN%AFuTF z{cb15?(P{6!X2Os`1D)g*ZQbYsyCFyCMRqIpj2qkbs`=ff2elP>KNO1Ka?be{R}Oa z?L>h{PHEOlt%!NKvz%-y3uh$Qew51hyCb?z!ZTS(t`c}g$6p%AII&XVNK|PRfJ}gu zg}fyQkP~?MK>#nk{4J0u2|JaS>>z#TAnQc{tt2pvEziML)gtoZ|7va|Z0hGb&8r*> zeCbFy75AOcm^*OU&4deqyTsm4Qv@C=2%J!m63N9~A(}eMW5yJ|(xQYZJJvyV8E!XX z*_o>8os2T(Xd`tZ4L4tH4myL>=7-k1JA#fuec@-yI@7sHP3ESUha zfqW4sqqIQl-Aw>n*BDl?Y0&s2C<%!}W0z)K)2u2`0Nsc990@}7^>#$hlyK5MbS z0~=vvkKz1z^n9h#{0umcKNLkB5cXE!+U_xdl=ml96jAx}kIG_EEreIFGht$-FfCDhaO7ebP5n{R)PVmJX+4{qFzRU_ z1;}~EssPcgRMz)vX50@i>hn4uTE_WgX{uSL$!u*DRV&7<*#J9Cql;J78V7GS@Ie3{ zD8NC2LFzI#6jh!g0a*qUKu1c?O0KtVP*yx=H?q5Nq{+{4ShdvsPWtoQaU(31Y<~KU zK2z87V%3koMpi`9&a7unTrN1|%jlTn#kXW*gq^Zr`aWAYW$3v0EbO=Z!4!a%;Pt~^ z1vI%efFwpfWqw*W0o!j$J_sUNev{bfewILSiOw=1Vn7qXd&-3$1@NjJcH=Mt#QhRrdI8KtXt@6}ci7O=bI3CD7*9OW=Rpg)cu=0Sr@W7lyW3ywi zUrz8tu-dyOV3`dJ{&a$&x3Os7M*wT%8s0;s4JSAptNG;s{occ)!=S*X%f5{br1edcQu_c2d z4us;voFu(zB+$=L>;p>&4o`WYuSo%_Yak2YFH^i=aOV45^TVEL@}r*7%e#=tH`+ga zOsmIhHxm$;0JEeV5ddQ%R1NhE z{vM8W@6He>rb#P$!w z?=LdJZ7U7b+Q5KE0lej$?6ze{y|MSA1!vH@eIsR5y$2BOgu8Qpo& z0UvC2T1;Ox0qs?OzGjI!l3ne)yjP_{zx$CJj296|v}amQoE_ z<7j18E>KqMRg{?dV|uF0U>$#Z-W%KaazEdCmFDyx;msU(rAHU@Qo{`{dyR$8c}rIH ziZB~z8kG{255?!S56OX~Z&PvX{KJ?V@B4NEv|{?{sWO=x9L zm|p0pSI-A=f`%Gm$O4BpgZD69A~a#9XfuXnYa@%42bdGw;IMxR;DuLT*Z#wxK?rk8 z?r!5_EUFng2_OozR)iT%8Zv|8pZ6nMpIG!ifX`r-4TZ&)mV*M~0xU~S%eFCJSC_tk znjn?L<}O;Aa`dDiPyh2AL-y}0)T?_hUKK#G91ta4OEt7+3E_4eB9p-4Mix?=k%T3H zt_imNTU}iHU)Gze4|os&De-5nNpxYIgK-1QVzvJIzu8j zb!|krz*Q&I^FyR8SW5z`+U_!4B!Ot7KzY7YR7=_E!0u8)8&FpDgnCbEPC;>z=I~di3wnndL$g?$z!XJAP zmg96#c83h>^9ftV=}^ZnKrEI1s`@Fvr}ET9a<$qWpU2R%@BaR@pgr`J)QVr*fguBTLHw-Mixq z9#?dt!iji%$xWf;`L}A(PBi%GmlQ*mw$REHYCxAeUnBLpDdtU5wE{SU_;grG`s?ii zXm3OchsVbmf|{C9F%AS$G7v;l2@!%N0c%-2TJ~?L@a6*^1;8En(v^hNutKR2%>lOB z++HSEmv9TbP%oZRgmeWJeC*_lVD<#&B-Jb zi%)og92>?Mg8rTvT<@_{}A|7cm z<4&)>h|O_7VmtJ%SAR#}ckw2EOtW_DGT$@n*;@U@w**qZup@u@K>yD$@LvLW`E^&q z!*Uf8D7px1r7KYIAfKWU6nHETxnE8^+Mp|0V3EkQr{AAG*^v(EUPnX*o-DW)w!OHX(OUB12auM6gujnk5*~)Wpg3JC)KE&dRNPEl^WSQ#@m0u-BY$ex3wn0<#B(A)l zbIOYNT$84F;Kas(nir7`#PMwV$L@O;bWMZ8wN4JOypElvI@TQ<_6MOvo^m+6;dTXV zgiyK~fE5e*_f*-fOpcYSRD29l%}(`A{PwX$foLvFDU!mqH&_&rS`TUzpRciK2nHvp z`{#4N#-YoJ1p?H%W4_u4%G%u+2YC`VEdY-14ZK%T`a_HK4Vn;>I< zYxlGngWaz1gx`{o?i)E0d0$f2Q z#cEgyHCC(XJM%qI9ZKH;U$*r$6|p_zc%tQi-fD)&%1tB^fM-l{VXD`Y8Kp{7-v@w{ z1AC>@6EHBt xkbS*C>Wf;q?UBPAg=-2VLf`BTCsq%X_8t)DV*)2K^XXIi*09POQxA1x2 z!Wk+t#N%*v_$Yu?LE1|D#~{aM-kOVBS{jfT+*GTa&~GmU)hwU+&(#EO0(ktyt$%*h z@++7@>@jtQC~fA%Dw$zcC{M}MH>8qdsCK3t>bL1clv; z^lAuKt|0uB5ZGUsQKllH1Y`h?H5D5-_Aw0pPXSOT{}MZt5DRe$3|})VD0A;;@MSC6 z9tz&LaW?B6R&P6MB?DfQl)$Q_pIfC}x|| zbV>~A{zh3Y^-@C4`^f^}ZU2_Thzpfen(#+E&T;{Ki;HwdKK40IEfPs<@(v`cZ!Bo= zrT|M!^!Y0fpS1Ju&szP1w=-{*oQR@0?zo{SZYbhEf`TA!_zeU*NmWrnlbFqEeeQ7- z{r>nn_oj?--)r8?o9TIU_dRvjb8l6rsm4MpHM8aX5{1&Mxzi*W8RBemv7EA_JyA2&C!EU=8)U z#5f`UXP@B2N&s{oMnMg>ZklHR*uJfKR714O&VSv){_7zdkJ(jftl3cRo_`L_Q3h~Y z@ZR70hz;+OzBv&C`enckWNp1=0vd#-G$`Z|W_@*4vD2^j(H zwLno{J9~J!t~*V1i-VP`d%>H%;N+1pqJbVCtt{r0T#6>ZBOp zqkQT^LOiDaX1i1i)euA=$q5?+ zm+M?jA8EFUikAvY{-cM34-Iu~f<gDMf6(2nDU&oBU790)%#YJY&W3->2_D~zw8BJk;6V+ zMI`w2(^hep;eN!2G44i+G@KAGS+2Cvr{SlSYwC#wx!b-C^Jm`#p`?-4_fe5LOsGTm z)%%w?V3 zXNwS_GPxn$9l0)*@sV*91OTvLD&_{Ng21Bxn!7Lg%;6prN+g;zhACV>xg8VyKCwp!Jg6Sp6NIRY;r)Ads zRMw$Rc8auRWU3Me08kgPZtem5T>;Dnsz3VpWdR^BKw63!s49dYnFypBmX;wbiIrnm zZga)4BhV?=w}tc5r*P|wtwvE=3quECI|0D8o45g)IUf$4$%d}qv{ky@YYK~biLDws z_Osj{{9~6xVj!z)9W={CLZB_+H%kQ!r_7jHK>qR(TmG`OH3KBQE5ILr)|dN@ zHQibV94(`-#M{hgSv6@vsDsP%@6irS$I0cN7jT;iLcV(RzsJ0$=qJsHhXSsgm9C2i z0E9nOfT9BTzQ!)3xevpPi9rXbJaukxa>V79QMqI$}Gc#1M2zhC!JM0_~pG@^psC6YOqWCK6@A503Lz{IdVrsb#US z7oD=s`Cvlx3_n&z0;(5(CkHqi0mKOMSGi4LpfpS)Wve3)=gCk{xZofySX)$*Wi_g6 zLCb{v?asJ>c1~*>Pd9$Y^)|UeH+}TATI598&@LLb{`w~N8(p|m74cbq9}E#-FDYbm zT1n=Q0vzI3lAaZV6rd1+w3u9epA3}zzpDU8E^yz&l+@i2(?l%5LIY1w+on4JgB)^- zl5sUNuxYZgMy8#J@Rm8`xeX@-m?9)mSo`&huiw|$SyBS^^#@Z}R-PnZPWx|l%-$EB zwoW>r{V&dsU&|DwC4PTc!~*ic1kV^iEIDxX_=CTf1N?#)XyV*g{bKCUppUM#bl@W0 z>un8$iloS}$}icBo!h}S4iyK5LK)PUx}PDC7>J|YmcIS+%eJvkt@`p-&Kky>>$Cin zL>I~LrSDjgp-;9Xy}lU1QIbRy)IxqI0xrAD*69!vUSF^OfdZVpz`c)7J)_!G?J?k} z*S-P*Dr0})0>QilrO5>VGXsJ&$uV<3mBnFtw$l=KfeuGN$*|=11q>jniR1u0dNc!mPXUf>Cj5aKMLTy_RK*r_1uXB$(KBl-=$Fh1OO!gCcoZ#6N>|=em@ERr3%m_si%RQ zRqB<8zFmCex}tG306>8twF7kFvL}VJO%+~k0O->(>YboJO}~UA68N9>O65#TkwH&b zVp4~73cKV*0lb*18UrA1t-M;hSoA9nAT^R7@mUxEUpW_;2O@y)zXidkB>x|TfOD7V z-iPN39T<|%a^?glVg))*o5X{~pQZy-P6%!pfdT>utnf6d@H@#L*v47_G?x2h@GBVfJ`EVWXX`G|IkIN<(?OD-_4xfI1QrkQ zM*!S$*8@ZB``YHKd16{+ZjNw+Kc-;j58x=2(8vy0vW2Zxz!-0YLmUDp3dPqK0QAj6 z#0Ua7PIAY&ke`SC?*KFgd%X=7Lg(ZekcH~H<1S>?TeKlT6z z0<629%0xRzN>j3-Ri{YLACn{}A}8s9zS_lx0ocvm7pzJ8I<{7p2PXd;2cYDrrMJu8 zD{3sEKvTZ6OnuZ4GsCl}I(NN8kN69^-mAfC%k{vp@;>^|1&aXACwdk5C*^1D06g@t z(jm&UJOBYRKaC;ajXK;7#>heq=Pd}Ab~OlaXk8sO1ZGqshNwcHXssCdK)nLwtT*^N_Th>QIdQRr#d>`%uY%ys`sy zEJ^wJ$KWPBxNO1QnJU8;EoHgPxjWcQ4kIqaIN&!?H zZQ|!00%RYqDu$@+eJCWiG*(27oJBlWe1ha~08S)D>W=cZ$-bGU0&|}n0cKZB4Ux98Z!jO4d>dw30WJIz@5k%H zv&6srhZ()n&ISO~lz@E*v}#@Q*g1rkbtFG=0Lmy}A<(Ch8YtodJO;k_z+Z>}X9QFe z^qRSrt@WB>YR7@VR-1Yq)iG<}h@dNCw^ln5ezQ&Wl$E{IQXCSgf{GD&bB>Y^9 zjrryw%mj<%?sv{k^|r_lUnK~JT=;WOo8T8!yEdgC`uZsX{3QUC62Ao@ASRTm00gqx zA^!@7KmY)X%&Ho%TikUs?*46U;RThxHnQgc0A~csI;Vg>Bxu%e2guqLYO31Fbqj~; ziDYHyEEK?j*KQ*}y4NGWZIS7~3x9e4&wlW}CyDyKigFRfVOU2H$lkY;4Vd%-Vd!p> z-!!$Xy$c9=->a=;|7>DG;H2{>01o*Z`%WpU$$JOX@b*BOuT!jd`Ezd}p~ycFfhxZR z-?)Io0sKV(3IcaN_V5rIYq#ZO2&_WDCQc3;u+-YQ1tNZte?or0CPQS{v(Mb~Hx%HEzytUI_cuiS z8U$nowNGQ#08n%w&(|dDH6BAYGqr=l!c?d1xi4YO4ZO&F7QZ-vB0pp>cE=B^5V`1+ zvv(JX1BjyRHM>mz%5y94V43`cYAKN*dE)QOf4G6y>x{j*3Z(oa0yfA8bq-NCxg(@! z)D-#Rye=}%7Ro#O{ap&HJCNSRT(?A%&3(arHtZ#Q~FnQ8=>>!W{` zO#iK|>|EIEC;1(KzpMf{LhC%)h~U(l4rCbE%0n)DU+c7n>wxC`m3`6YLp6Oys1JFH zk}OnwdA0JZK>)eSeXxQM&r{D+wI__hWvu84^Y}2Jj~cDv2hQ^IHoXX7z4DLbF9@h* zZWl)pkZYxVA+KX5M%jcvjy~uPrDO=Ck+-J|N%dV}z?K|yZ^UJTX1W{LTfasA<1tk~ z=zz&zVPOR%4Uoy{T(3GwNN^@Lf%U?x7y0L_Mmd8O(T2ba_aXn^a)4(efE##Cqp^x+ zwOK({KF|brblU0EB}ZUbc!&6_@Drcb&oysZ#f?olyReQx`QvzqZ>|AhXsA1j-uvWS zT)~%7D^})Nr6y7>Z=cdMmHeotKMR+K|9uB=MgSdnGEo|9v@!Q)c^z4?F(kg4&b=WP z(zn;^?)JSt6_ZM-&UTq{8fw*{14Vw{#fym_t-Fca+iha!P-J0E7<$PM7hsPT`74ds zMdY_enAW2Y{v!i8BXIXaAdr;`MRY*UcM$?Y+gHDqlxWD)x@Oh^5r@Yhwl{QG+RnSU(*83E{#Ua@dM(fA7pOu8@xquXtlLilJ`nJ)>Tj zkQuN?c1&!7BOWX#nDCj{fW0Z3k*1K%>{3QN0T2rU$No14035WKz{FTa<03}>4Pp`> z4!Y4*@1A2=wA0i9{9n*i)qf)Y8G&9m9rjK`S}?eo(9bf`4l9^6NaM~xJWBM=v`jmh zM%OI;8KXmBA@@7q%Ms8xt?a$CLNW$S(hsxSM~tolUJ+pkq(lMxDf!yP0f<_4l(7`T zG46GtTm#7z?k~@?&&HSF2j&{C3&>xt$C3Px{mb$fN2ucXHS}0p?+AE(oOo?RpiqUa zEVWxI10Waz5qW%OrPpwLV3`gG09Ldm{-Z7x&lF5nFY;oS#L;&IWla`(7DAhmw|b#oVDL0oN#ATbixVUnl)XWra|`crVY? z<036DD>o**WHTS=&HdP@97=V+^MS|qU)y-eSU^zlH=m;X_g|L(i~u)HWZVBiIuJ|= z(zd0ljAQ!{M7xaQg04O#s>DpQ zs#Xk4PS!y;`Sm7j3gYblkpJI9fb~wcI}RyGtY?-qPPrizn@|Yjrn_0pzc=NusU?Kc zX7zWPX#G5v*jpv=w)oo+_pI32;l?eawbe-wkNksu*>+H~RS|7`>)42B$QGXhq~);U?X$>YIs+j&of zwm04EE)P~vyg3rt8X}nzC`CsACmvHJPTV|t+~=j^By;lRM8B>oWzIB^6RB|GLAQ(N z9y!$i-$f(sAGXy{-#9HW%zy?cQw%>UK({a{27hn>VEM0-1>bNQuUjtV zGK)XcNa|B54mEsi^;dX8vacN=ESV!x0ZIx-#St3It{d!69&GP^V>1w%%x#8aM*SxVT>tg~}@h2;CO;ydMM_$={@7r0`6Z;0=})U=d&Rw9_U<0bVHE z|KH1hMu5{L_(BzT?!|Tp>RPPWl1L1+jt~|buV1@9OH_*zF333rXDj~MnJW8VJ# z*;l3g|Htny}<2xhSlxfpy16nx1$B*-bg<^5lzGyiC+ zs#8M`rBSC!ZMUcIpV5pg$xb7K8xB>>&&n;c^aV!2YdK%$SQa2fG{M&4-yI7K2zb6F zz|o`ANAstxM*oky-{!)??Noxv<3u#LTG%Lbl4rk~K%JmbTP z$p6y<*nUuK8$eUc!sr}pM-w4o^eV-2<_CaZX2_%aoVk%!>Ub~k1RcPWF4H$#?fZ|S zw+cW4O@~tyfM>=Tk6(y46Sds+(DE@?3G|McK4OyPw9F|zS`^^Yp8f(~a^Iu)mnB#Y z-EE2zFgriSar zE!-aHv*+b&V&`j5zgPjFCw2jMIE%*DeN)A{ulSGUhourA3=W;YX#jYc5aXTCc$Wiv zok9W|VQ~RmbvHK3rtBdaxs(kC!X&cfc_6C*5j!5P z_4sF%E&hT8?%&Y$ObvJf=FL0E_wXC$Q!9i%cYH`-HBb@Ux*D6hMaNfsv^3`X`aD*fm4R3KtnrNm zQ3JKry8M3_n{&PI!)hwT==b%xc|KHIB{y*o`uy=#gD8Sk!7W-!4tPWVlso;R2C718 zmiYs_jr?DLA0@CNSS6OZiv<2D`_TWQ2nCuo^MC95@8^F7nU72HeDOBL00000NkvXX Hu0mjf&Ww;? literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/MartialMarshal.png b/SolastaUnfinishedBusiness/Resources/Subclasses/MartialWarlord.png similarity index 100% rename from SolastaUnfinishedBusiness/Resources/Subclasses/MartialMarshal.png rename to SolastaUnfinishedBusiness/Resources/Subclasses/MartialWarlord.png diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/PathOfTheRavager.png b/SolastaUnfinishedBusiness/Resources/Subclasses/PathOfTheRavager.png new file mode 100644 index 0000000000000000000000000000000000000000..5b79f10f63260c27cd22a5dd53b1f39e58b1d7f9 GIT binary patch literal 29769 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 bzr+6ttrvf#b9Dnf00000NkvXXu0mjf`SyLt literal 30578 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 Date: Tue, 16 Jul 2024 07:29:12 -0700 Subject: [PATCH 73/91] improve 'Battle camera doesn't follow when character is already on screen' --- .../ChangelogHistory.txt | 10 +- .../CameraControllerLocationPatcher.cs | 120 ++++++++++++------ 2 files changed, 88 insertions(+), 42 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 233914696a..6a076f6d81 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,12 +1,12 @@ 1.5.97.20: -- added variant spell points rules and Sickening Radiance spell +- added variant spell points rules, and Sickening Radiance spell +- fixed Arcane Archer arcane shot soft lock when enemy already dead - fixed Export Hero and RESPEC auras, infusions, etc. termination -- fixed main spell action leaving bonus spell action available -- fixed Martial Arcane Archer arcane shot soft lock if enemy dead +- fixed cast main action leaving cast bonus action available - fixed Ring of Knifes spell follow up power to-hit modifier -- fixed target selection on Field Manipulator displacement -- fixed target selection on Scatter spell +- fixed selection on Field Manipulator displacement, and Scatter spell +- improved 'Battle camera doesn't follow when character is already on screen' - removed previously demoted fighting styles in 1.5.97.9 [RESPEC] KNOWN ISSUES: diff --git a/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs b/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs index 13f62136ae..5837c3fc62 100644 --- a/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs @@ -8,51 +8,97 @@ namespace SolastaUnfinishedBusiness.Patches; [UsedImplicitly] public static class CameraControllerLocationPatcher { + /// + /// Allows the user to prevent the battle camera always following the current character if that character is + /// in view (on the monitor). + /// The battle camera will still move if the character is off screen or within x% (definable) of the screen edge. + /// + private static bool InterruptCamera(CameraControllerLocation __instance, GameLocationCharacter character) + { + //PATCH: camera don't follow character in battle + if (!Main.Settings.DontFollowCharacterInBattle) + { + return true; + } + + if (Main.Settings.DontFollowMargin == 0) + { + return false; + } + + // Ensure all Unity objects are valid + if (!__instance + || character == null + || !__instance.CurrentCameraMode + || __instance.CurrentCameraMode.CameraService == null + || !__instance.CurrentCameraMode.CameraService.MainCamera) + { + return true; + } + + // Get character's location in screen co-ords + var width = Screen.width; + var height = Screen.height; + var margin = Main.Settings.DontFollowMargin / 100f; + var characterLocation = character.LocationPosition; + var screenPoint = __instance + .CurrentCameraMode.CameraService.MainCamera + .WorldToScreenPoint(new Vector3(characterLocation.x, characterLocation.y, characterLocation.z)); + + var followCharacter = screenPoint.x < width * margin + || screenPoint.x > width * (1 - margin) + || screenPoint.y < height * margin + || screenPoint.y > height * (1 - margin); + + // return true to allow follow character code to run/false to disable + return followCharacter; + } + [HarmonyPatch(typeof(CameraControllerLocation), nameof(CameraControllerLocation.FollowCharacterForBattle))] [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] [UsedImplicitly] public static class FollowCharacterForBattle_Patch { - /// - /// Allows the user to prevent the battle camera always following the current character if that character is - /// in view (on the monitor). - /// The battle camera will still move if the character is off screen or within x% (definable) of the screen edge. - /// [UsedImplicitly] public static bool Prefix(CameraControllerLocation __instance, GameLocationCharacter character) { - //PATCH: camera don't follow character in battle - if (!Main.Settings.DontFollowCharacterInBattle) - { - return true; - } - - // Ensure all Unity objects are valid - if (!__instance - || character == null - || !__instance.CurrentCameraMode - || __instance.CurrentCameraMode.CameraService == null - || !__instance.CurrentCameraMode.CameraService.MainCamera) - { - return true; - } - - // Get character's location in screen co-ords - var width = Screen.width; - var height = Screen.height; - var margin = Main.Settings.DontFollowMargin / 100f; - var characterLocation = character.LocationPosition; - var screenPoint = __instance - .CurrentCameraMode.CameraService.MainCamera - .WorldToScreenPoint(new Vector3(characterLocation.x, characterLocation.y, characterLocation.z)); - - var followCharacter = screenPoint.x < width * margin - || screenPoint.x > width * (1 - margin) - || screenPoint.y < height * margin - || screenPoint.y > height * (1 - margin); - - // return true to allow follow character code to run/false to disable - return followCharacter; + return InterruptCamera(__instance, character); + } + } + + [HarmonyPatch(typeof(CameraControllerLocation), nameof(CameraControllerLocation.FocusCharacterOnMap))] + [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] + [UsedImplicitly] + public static class FocusCharacterOnMap_Patch + { + [UsedImplicitly] + public static bool Prefix(CameraControllerLocation __instance, GameLocationCharacter character) + { + return InterruptCamera(__instance, character); + } + } + + [HarmonyPatch(typeof(CameraControllerLocation), nameof(CameraControllerLocation.FocusPositionForBattle))] + [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] + [UsedImplicitly] + public static class FocusPositionForBattle_Patch + { + [UsedImplicitly] + public static bool Prefix(CameraControllerLocation __instance, GameLocationCharacter character) + { + return InterruptCamera(__instance, character); + } + } + + [HarmonyPatch(typeof(CameraControllerLocation), nameof(CameraControllerLocation.FocusCharacterToManualBattle))] + [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] + [UsedImplicitly] + public static class FocusCharacterToManualBattle_Patch + { + [UsedImplicitly] + public static bool Prefix(CameraControllerLocation __instance, GameLocationCharacter character) + { + return InterruptCamera(__instance, character); } } } From 578b228dc6cca8596a42d059fc4c0da350b9aba7 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Tue, 16 Jul 2024 07:29:47 -0700 Subject: [PATCH 74/91] auto format and clean up --- SolastaUnfinishedBusiness/FightingStyles/Interception.cs | 1 - SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs | 4 ++-- .../Patches/CharacterActionMagicEffectPatcher.cs | 1 + .../Subclasses/Builders/InvocationsBuilders.cs | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/SolastaUnfinishedBusiness/FightingStyles/Interception.cs b/SolastaUnfinishedBusiness/FightingStyles/Interception.cs index fd6a4c8fd7..523fd4f1f1 100644 --- a/SolastaUnfinishedBusiness/FightingStyles/Interception.cs +++ b/SolastaUnfinishedBusiness/FightingStyles/Interception.cs @@ -1,7 +1,6 @@ using System.Collections; using System.Collections.Generic; using System.Linq; -using SolastaUnfinishedBusiness.Api; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Api.LanguageExtensions; using SolastaUnfinishedBusiness.Behaviors; diff --git a/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs b/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs index ba76460f8b..f30b216f8c 100644 --- a/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs +++ b/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs @@ -1736,7 +1736,7 @@ public void OnAttackComputeModifier( // // ReSharper disable once SuggestBaseTypeForParameterInConstructor - private sealed class OnConditionAddedOrRemovedPossession: IOnConditionAddedOrRemoved + private sealed class OnConditionAddedOrRemovedPossession : IOnConditionAddedOrRemoved { public void OnConditionAdded(RulesetCharacter target, RulesetCondition rulesetCondition) { @@ -1788,7 +1788,7 @@ public void OnSavingThrowFinished( List effectForms) { var hero = defender.GetOriginalHero(); - + if (outcome is not (RollOutcome.Success or RollOutcome.CriticalSuccess) || hero == null) { diff --git a/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs index 7419dcedac..4e79daa79f 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs @@ -959,6 +959,7 @@ private static IEnumerator ExecuteImpl(CharacterActionMagicEffect __instance) { actingCharacter.UsedMainSpell = true; } + if (__instance is CharacterActionCastSpell { ActionType: ActionDefinitions.ActionType.Main }) { actingCharacter.UsedBonusSpell = true; diff --git a/SolastaUnfinishedBusiness/Subclasses/Builders/InvocationsBuilders.cs b/SolastaUnfinishedBusiness/Subclasses/Builders/InvocationsBuilders.cs index ca5175ed49..26a2243a22 100644 --- a/SolastaUnfinishedBusiness/Subclasses/Builders/InvocationsBuilders.cs +++ b/SolastaUnfinishedBusiness/Subclasses/Builders/InvocationsBuilders.cs @@ -1620,8 +1620,8 @@ public void OnConditionRemoved(RulesetCharacter target, RulesetCondition ruleset { var glc = GameLocationCharacter.GetFromActor(target); - EffectHelpers.StartVisualEffect( - glc, glc, PowerDomainElementalHeraldOfTheElementsCold, EffectHelpers.EffectType.Effect); + EffectHelpers.StartVisualEffect( + glc, glc, PowerDomainElementalHeraldOfTheElementsCold, EffectHelpers.EffectType.Effect); target.InflictCondition( conditionTombOfFrost.Name, From b25c3be4a35a6783ecf5e5621b1e035ae63dd374 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Tue, 16 Jul 2024 10:14:35 -0700 Subject: [PATCH 75/91] keep fighting styles backward compatibility --- SolastaUnfinishedBusiness/Feats/OtherFeats.cs | 208 ++++++++++-------- .../Models/FightingStyleContext.cs | 26 +++ 2 files changed, 137 insertions(+), 97 deletions(-) diff --git a/SolastaUnfinishedBusiness/Feats/OtherFeats.cs b/SolastaUnfinishedBusiness/Feats/OtherFeats.cs index 8df0f54667..1c445fb3ee 100644 --- a/SolastaUnfinishedBusiness/Feats/OtherFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/OtherFeats.cs @@ -74,11 +74,11 @@ internal static void CreateFeats([NotNull] List feats) var elementalMasterGroup = BuildElementalMaster(feats); var weaponMasterGroup = BuildWeaponMaster(feats); - var featMerciless = FeatMerciless; - var featPolearmExpert = FeatPolearmExpert; - var featRopeIpUp = FeatRopeItUp; + var featMerciless = BuildMerciless(); + var featPolearmExpert = BuildPolearmExpert(); + var featRopeIpUp = BuildRopeItUp(); var featSentinel = FeatSentinel; - var featShieldExpert = FeatShieldExpert; + var featShieldExpert = BuildShieldExpert(); feats.AddRange( featAcrobat, @@ -502,7 +502,7 @@ private static FeatDefinition BuildWeaponMaster(List feats) .Create($"CustomInvocation{Name}{weaponTypeName}") .SetGuiPresentation( weaponTypeDefinition.GuiPresentation.Title, - weaponTypeDefinition.GuiPresentation.Description, + weaponTypeDefinition.GuiPresentation.Description, GetStandardWeaponOfType(weaponTypeDefinition.Name)) .SetPoolType(InvocationPoolTypeCustom.Pools.WeaponMasterChoice) .SetGrantedFeature(featureMonkWeaponSpecialization) @@ -538,6 +538,55 @@ private static FeatDefinition BuildWeaponMaster(List feats) #endregion + #region Shield Expert + + private static FeatDefinition BuildShieldExpert() + { + const string ShieldExpertName = "ShieldExpert"; + + return FeatDefinitionBuilder + .Create($"Feat{ShieldExpertName}") + .SetGuiPresentation(ShieldExpertName, Category.FightingStyle) + .SetFeatures( + FeatureDefinitionBuilder + .Create("AddExtraAttackShieldExpert") + .SetGuiPresentationNoContent(true) + .AddCustomSubFeatures(new AddBonusShieldAttack()) + .AddToDB()) + .AddToDB(); + } + + #endregion + + #region Polearm Expert + + private static FeatDefinition BuildPolearmExpert() + { + const string PolearmExpertName = "PolearmExpert"; + + return FeatDefinitionBuilder + .Create($"Feat{PolearmExpertName}") + .SetGuiPresentation(PolearmExpertName, Category.FightingStyle) + .SetFeatures( + FeatureDefinitionBuilder + .Create("FeaturePolearm") + .SetGuiPresentationNoContent(true) + .AddCustomSubFeatures( + new CanMakeAoOOnReachEntered + { + WeaponValidator = (mode, _, _) => ValidatorsWeapon.IsPolearmType(mode) + }, + new AddPolearmFollowUpAttack(QuarterstaffType), + new AddPolearmFollowUpAttack(SpearType), + new AddPolearmFollowUpAttack(HalberdWeaponType), + new AddPolearmFollowUpAttack(PikeWeaponType), + new AddPolearmFollowUpAttack(LongMaceWeaponType)) + .AddToDB()) + .AddToDB(); + } + + #endregion + #region Stealthy private const string FeatStealthyName = "FeatStealthy"; @@ -1488,6 +1537,7 @@ private static FeatDefinition BuildFightingInitiate() { GroupFeats.FeatGroupFightingStyle.AddFeats(DatabaseRepository .GetDatabase() + .Where(x => !FightingStyleContext.DemotedFightingStyles.Contains(x.Name)) .Select(BuildFightingStyleFeat) .OfType() .ToArray()); @@ -2820,45 +2870,49 @@ private WarCasterMarker() private const string MercilessName = "Merciless"; - private static readonly FeatureDefinitionPower PowerFightingStyleMerciless = FeatureDefinitionPowerBuilder - .Create($"PowerFightingStyle{MercilessName}") - .SetGuiPresentation(MercilessName, Category.FightingStyle, hidden: true) - .SetUsesFixed(ActivationTime.NoCost) - .SetShowCasting(false) - .SetEffectDescription( - EffectDescriptionBuilder - .Create() - .SetTargetingData(Side.Enemy, RangeType.Touch, 0, TargetType.IndividualsUnique) - .SetDurationData(DurationType.Round, 1, TurnOccurenceType.EndOfSourceTurn) - .SetSavingThrowData( - false, - AttributeDefinitions.Wisdom, - true, - EffectDifficultyClassComputation.AbilityScoreAndProficiency, - AttributeDefinitions.Strength) - .SetEffectForms( - EffectFormBuilder - .Create() - .SetConditionForm(ConditionDefinitions.ConditionFrightened, - ConditionForm.ConditionOperation.Add) - .HasSavingThrow(EffectSavingThrowType.Negates) - .Build()) - .Build()) - .AddToDB(); + private static FeatDefinition BuildMerciless() + { + var powerFightingStyleMerciless = FeatureDefinitionPowerBuilder + .Create($"PowerFightingStyle{MercilessName}") + .SetGuiPresentation(MercilessName, Category.FightingStyle, hidden: true) + .SetUsesFixed(ActivationTime.NoCost) + .SetShowCasting(false) + .SetEffectDescription( + EffectDescriptionBuilder + .Create() + .SetTargetingData(Side.Enemy, RangeType.Touch, 0, TargetType.IndividualsUnique) + .SetDurationData(DurationType.Round, 1, TurnOccurenceType.EndOfSourceTurn) + .SetSavingThrowData( + false, + AttributeDefinitions.Wisdom, + true, + EffectDifficultyClassComputation.AbilityScoreAndProficiency, + AttributeDefinitions.Strength) + .SetEffectForms( + EffectFormBuilder + .Create() + .SetConditionForm(ConditionDefinitions.ConditionFrightened, + ConditionForm.ConditionOperation.Add) + .HasSavingThrow(EffectSavingThrowType.Negates) + .Build()) + .Build()) + .AddToDB(); + + return FeatDefinitionBuilder + .Create($"Feat{MercilessName}") + .SetGuiPresentation(MercilessName, Category.FightingStyle) + .SetFeatures( + powerFightingStyleMerciless, + FeatureDefinitionBuilder + .Create($"TargetReducedToZeroHpFightingStyle{MercilessName}") + .SetGuiPresentationNoContent(true) + .AddCustomSubFeatures(new OnReducedToZeroHpByMeMerciless(powerFightingStyleMerciless)) + .AddToDB()) + .AddToDB(); + } - private static readonly FeatDefinition FeatMerciless = FeatDefinitionBuilder - .Create($"Feat{MercilessName}") - .SetGuiPresentation(MercilessName, Category.FightingStyle) - .SetFeatures( - PowerFightingStyleMerciless, - FeatureDefinitionBuilder - .Create($"TargetReducedToZeroHpFightingStyle{MercilessName}") - .SetGuiPresentationNoContent(true) - .AddCustomSubFeatures(new OnReducedToZeroHpByMeMerciless()) - .AddToDB()) - .AddToDB(); - private sealed class OnReducedToZeroHpByMeMerciless + private sealed class OnReducedToZeroHpByMeMerciless(FeatureDefinitionPower powerMerciless) : IOnReducedToZeroHpByMe, IPhysicalAttackBeforeHitConfirmedOnEnemy, IPhysicalAttackFinishedByMe { public IEnumerator HandleReducedToZeroHpByMe( @@ -2886,7 +2940,7 @@ public IEnumerator HandleReducedToZeroHpByMe( var implementationManager = ServiceRepository.GetService() as RulesetImplementationManager; - var usablePower = PowerProvider.Get(PowerFightingStyleMerciless, rulesetAttacker); + var usablePower = PowerProvider.Get(powerMerciless, rulesetAttacker); var targets = Gui.Battle.GetContenders( downedCreature, attacker, isOppositeSide: false, hasToPerceivePerceiver: true, withinRange: distance); var actionModifiers = new List(); @@ -2944,47 +2998,24 @@ public IEnumerator OnPhysicalAttackFinishedByMe( #endregion - #region Polearm Expert - - private const string PolearmExpertName = "PolearmExpert"; - - private static FeatDefinition FeatPolearmExpert { get; } = FeatDefinitionBuilder - .Create($"Feat{PolearmExpertName}") - .SetGuiPresentation(PolearmExpertName, Category.FightingStyle) - .SetFeatures( - FeatureDefinitionBuilder - .Create("FeaturePolearm") - .SetGuiPresentationNoContent(true) - .AddCustomSubFeatures( - new CanMakeAoOOnReachEntered - { - WeaponValidator = (mode, _, _) => ValidatorsWeapon.IsPolearmType(mode) - }, - new AddPolearmFollowUpAttack(QuarterstaffType), - new AddPolearmFollowUpAttack(SpearType), - new AddPolearmFollowUpAttack(HalberdWeaponType), - new AddPolearmFollowUpAttack(PikeWeaponType), - new AddPolearmFollowUpAttack(LongMaceWeaponType)) - .AddToDB()) - .AddToDB(); - - #endregion - #region Rope it Up - private const string RopeItUpName = "RopeItUp"; + private static FeatDefinition BuildRopeItUp() + { + const string RopeItUpName = "RopeItUp"; - private static readonly FeatureDefinition FeatureRopeItUp = FeatureDefinitionAttributeModifierBuilder - .Create($"AttributeModifier{RopeItUpName}") - .SetGuiPresentation(RopeItUpName, Category.FightingStyle) - .AddCustomSubFeatures(ReturningWeapon.AlwaysValid, new ModifyWeaponAttackModeRopeItUp()) - .AddToDB(); + var featureRopeItUp = FeatureDefinitionAttributeModifierBuilder + .Create($"AttributeModifier{RopeItUpName}") + .SetGuiPresentation(RopeItUpName, Category.FightingStyle) + .AddCustomSubFeatures(ReturningWeapon.AlwaysValid, new ModifyWeaponAttackModeRopeItUp()) + .AddToDB(); - private static FeatDefinition FeatRopeItUp { get; } = FeatDefinitionBuilder - .Create($"Feat{RopeItUpName}") - .SetGuiPresentation(RopeItUpName, Category.FightingStyle) - .SetFeatures(FeatureRopeItUp) - .AddToDB(); + return FeatDefinitionBuilder + .Create($"Feat{RopeItUpName}") + .SetGuiPresentation(RopeItUpName, Category.FightingStyle) + .SetFeatures(featureRopeItUp) + .AddToDB(); + } private sealed class ModifyWeaponAttackModeRopeItUp : IModifyWeaponAttackMode { @@ -3002,23 +3033,6 @@ public void ModifyAttackMode(RulesetCharacter character, RulesetAttackMode attac #endregion - #region Shield Expert - - private const string ShieldExpertName = "ShieldExpert"; - - private static FeatDefinition FeatShieldExpert { get; } = FeatDefinitionBuilder - .Create($"Feat{ShieldExpertName}") - .SetGuiPresentation(ShieldExpertName, Category.FightingStyle) - .SetFeatures( - FeatureDefinitionBuilder - .Create("AddExtraAttackShieldExpert") - .SetGuiPresentationNoContent(true) - .AddCustomSubFeatures(new AddBonusShieldAttack()) - .AddToDB()) - .AddToDB(); - - #endregion - #region Sentinel private const string SentinelName = "Sentinel"; diff --git a/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs b/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs index 146f514360..e8d609c034 100644 --- a/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs +++ b/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Linq; using JetBrains.Annotations; +using SolastaUnfinishedBusiness.Builders; using SolastaUnfinishedBusiness.Feats; using SolastaUnfinishedBusiness.FightingStyles; @@ -15,6 +16,8 @@ private static Dictionary DemotedFightingStyles = + [ + "Merciless", + "PolearmExpert", + "RopeItUp", + "Sentinel", + "ShieldExpert" + ]; + private static void KeepBackwardCompatibility() + { + + + foreach (var fs in DemotedFightingStyles + .Select(name => + FightingStyleBuilder + .Create(name) + .SetGuiPresentationNoContent(true) + .AddToDB())) + { + fs.contentPack = GamingPlatformDefinitions.ContentPack.BaseGame; + } + } + private static void LoadStyle([NotNull] AbstractFightingStyle styleBuilder) { var style = styleBuilder.FightingStyle; From 0200bbb3b6f373a8a8bba2a8ebe508fcf3c7f4e4 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Tue, 16 Jul 2024 10:14:47 -0700 Subject: [PATCH 76/91] tweak camera and credits --- .../Displays/CreditsDisplay.cs | 2 +- .../CameraControllerLocationPatcher.cs | 43 +++++++++++++------ 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs b/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs index 5e833c1e68..3cce7eac3e 100644 --- a/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs +++ b/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs @@ -92,7 +92,7 @@ internal static class CreditsDisplay ("Thaladar", "QA, monster portraits, sample portraits"), ("Zeke", "sample portraits"), ("Digital Primus", "sample portraits"), - ("sunny_d", "sample portraits"), + ("frost", "sample portraits"), ("nat", "sample portraits"), ("team-waldo", "korean translations"), diff --git a/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs b/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs index 5837c3fc62..18835c4419 100644 --- a/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs @@ -1,6 +1,7 @@ using System.Diagnostics.CodeAnalysis; using HarmonyLib; using JetBrains.Annotations; +using TA; using UnityEngine; namespace SolastaUnfinishedBusiness.Patches; @@ -13,7 +14,8 @@ public static class CameraControllerLocationPatcher /// in view (on the monitor). /// The battle camera will still move if the character is off screen or within x% (definable) of the screen edge. /// - private static bool InterruptCamera(CameraControllerLocation __instance, GameLocationCharacter character) + private static bool InterruptCamera( + CameraControllerLocation __instance, GameLocationCharacter character, Vector3 position) { //PATCH: camera don't follow character in battle if (!Main.Settings.DontFollowCharacterInBattle) @@ -27,11 +29,11 @@ private static bool InterruptCamera(CameraControllerLocation __instance, GameLoc } // Ensure all Unity objects are valid - if (!__instance - || character == null - || !__instance.CurrentCameraMode - || __instance.CurrentCameraMode.CameraService == null - || !__instance.CurrentCameraMode.CameraService.MainCamera) + if (!__instance || + (character == null && position == Vector3.zero) || + !__instance.CurrentCameraMode || + __instance.CurrentCameraMode.CameraService == null || + !__instance.CurrentCameraMode.CameraService.MainCamera) { return true; } @@ -40,10 +42,23 @@ private static bool InterruptCamera(CameraControllerLocation __instance, GameLoc var width = Screen.width; var height = Screen.height; var margin = Main.Settings.DontFollowMargin / 100f; - var characterLocation = character.LocationPosition; + + Vector3 finalPosition; + + if (character != null) + { + var characterLocation = character.LocationPosition; + + finalPosition = new Vector3(characterLocation.x, characterLocation.y, characterLocation.z); + } + else + { + finalPosition = position; + } + var screenPoint = __instance .CurrentCameraMode.CameraService.MainCamera - .WorldToScreenPoint(new Vector3(characterLocation.x, characterLocation.y, characterLocation.z)); + .WorldToScreenPoint(finalPosition); var followCharacter = screenPoint.x < width * margin || screenPoint.x > width * (1 - margin) @@ -62,7 +77,7 @@ public static class FollowCharacterForBattle_Patch [UsedImplicitly] public static bool Prefix(CameraControllerLocation __instance, GameLocationCharacter character) { - return InterruptCamera(__instance, character); + return InterruptCamera(__instance, character, Vector3.zero); } } @@ -74,19 +89,19 @@ public static class FocusCharacterOnMap_Patch [UsedImplicitly] public static bool Prefix(CameraControllerLocation __instance, GameLocationCharacter character) { - return InterruptCamera(__instance, character); + return InterruptCamera(__instance, character, Vector3.zero); } } - + [HarmonyPatch(typeof(CameraControllerLocation), nameof(CameraControllerLocation.FocusPositionForBattle))] [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] [UsedImplicitly] public static class FocusPositionForBattle_Patch { [UsedImplicitly] - public static bool Prefix(CameraControllerLocation __instance, GameLocationCharacter character) + public static bool Prefix(CameraControllerLocation __instance, Vector3 position) { - return InterruptCamera(__instance, character); + return InterruptCamera(__instance, null, position); } } @@ -98,7 +113,7 @@ public static class FocusCharacterToManualBattle_Patch [UsedImplicitly] public static bool Prefix(CameraControllerLocation __instance, GameLocationCharacter character) { - return InterruptCamera(__instance, character); + return InterruptCamera(__instance, character, Vector3.zero); } } } From d0ad2dc447c048e569773b5d4879feaab2ca8851 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Tue, 16 Jul 2024 12:44:51 -0700 Subject: [PATCH 77/91] add Interface > Game UI > 'Camera never moves during enemy turns' --- .../ChangelogHistory.txt | 4 ++- .../Displays/GameUiDisplay.cs | 6 +++++ .../CameraControllerLocationPatcher.cs | 25 ++++++++++++++----- SolastaUnfinishedBusiness/Settings.cs | 1 + .../Translations/de/Settings-de.txt | 1 + .../Translations/en/Settings-en.txt | 1 + .../Translations/es/Settings-es.txt | 1 + .../Translations/fr/Settings-fr.txt | 1 + .../Translations/it/Settings-it.txt | 1 + .../Translations/ja/Settings-ja.txt | 1 + .../Translations/ko/Settings-ko.txt | 1 + .../Translations/pt-BR/Settings-pt-BR.txt | 1 + .../Translations/ru/Settings-ru.txt | 1 + .../Translations/zh-CN/Settings-zh-CN.txt | 1 + 14 files changed, 39 insertions(+), 7 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 6a076f6d81..9f08b74c6f 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,5 +1,6 @@ 1.5.97.20: +- added Interface > Game UI > 'Camera never moves during enemy turns' - added variant spell points rules, and Sickening Radiance spell - fixed Arcane Archer arcane shot soft lock when enemy already dead - fixed Export Hero and RESPEC auras, infusions, etc. termination @@ -7,7 +8,8 @@ - fixed Ring of Knifes spell follow up power to-hit modifier - fixed selection on Field Manipulator displacement, and Scatter spell - improved 'Battle camera doesn't follow when character is already on screen' -- removed previously demoted fighting styles in 1.5.97.9 [RESPEC] +- removed Merciless, Polearm Expert, Rope it Up, Sentinel, Shield Expert backward compatibility + KNOWN ISSUES: diff --git a/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs b/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs index 3a7dd469a7..a31a0026d6 100644 --- a/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs +++ b/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs @@ -296,6 +296,12 @@ internal static void DisplayGameUi() Main.Settings.DontFollowMargin = intValue; } + toggle = Main.Settings.NeverMoveCameraOnEnemyTurn; + if (UI.Toggle(Gui.Localize("ModUi/&NeverMoveCameraOnEnemyTurn"), ref toggle, UI.AutoWidth())) + { + Main.Settings.NeverMoveCameraOnEnemyTurn = toggle; + } + UI.Label(); } diff --git a/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs b/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs index 18835c4419..f3af2c489e 100644 --- a/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CameraControllerLocationPatcher.cs @@ -1,7 +1,6 @@ using System.Diagnostics.CodeAnalysis; using HarmonyLib; using JetBrains.Annotations; -using TA; using UnityEngine; namespace SolastaUnfinishedBusiness.Patches; @@ -15,7 +14,10 @@ public static class CameraControllerLocationPatcher /// The battle camera will still move if the character is off screen or within x% (definable) of the screen edge. /// private static bool InterruptCamera( - CameraControllerLocation __instance, GameLocationCharacter character, Vector3 position) + CameraControllerLocation __instance, + GameLocationCharacter character, + Vector3 position, + bool alwaysInterruptIfZero = true) { //PATCH: camera don't follow character in battle if (!Main.Settings.DontFollowCharacterInBattle) @@ -23,7 +25,8 @@ private static bool InterruptCamera( return true; } - if (Main.Settings.DontFollowMargin == 0) + if (alwaysInterruptIfZero && + Main.Settings.DontFollowMargin == 0) { return false; } @@ -48,7 +51,7 @@ private static bool InterruptCamera( if (character != null) { var characterLocation = character.LocationPosition; - + finalPosition = new Vector3(characterLocation.x, characterLocation.y, characterLocation.z); } else @@ -77,7 +80,12 @@ public static class FollowCharacterForBattle_Patch [UsedImplicitly] public static bool Prefix(CameraControllerLocation __instance, GameLocationCharacter character) { - return InterruptCamera(__instance, character, Vector3.zero); + if (Main.Settings.NeverMoveCameraOnEnemyTurn && character.Side == RuleDefinitions.Side.Enemy) + { + return false; + } + + return InterruptCamera(__instance, character, Vector3.zero, false); } } @@ -89,10 +97,15 @@ public static class FocusCharacterOnMap_Patch [UsedImplicitly] public static bool Prefix(CameraControllerLocation __instance, GameLocationCharacter character) { + if (Main.Settings.NeverMoveCameraOnEnemyTurn && character.Side == RuleDefinitions.Side.Enemy) + { + return false; + } + return InterruptCamera(__instance, character, Vector3.zero); } } - + [HarmonyPatch(typeof(CameraControllerLocation), nameof(CameraControllerLocation.FocusPositionForBattle))] [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] [UsedImplicitly] diff --git a/SolastaUnfinishedBusiness/Settings.cs b/SolastaUnfinishedBusiness/Settings.cs index 62633ad24c..45388c6486 100644 --- a/SolastaUnfinishedBusiness/Settings.cs +++ b/SolastaUnfinishedBusiness/Settings.cs @@ -401,6 +401,7 @@ public class Settings : UnityModManager.ModSettings // Battle public bool DontFollowCharacterInBattle { get; set; } + public bool NeverMoveCameraOnEnemyTurn { get; set; } public int DontFollowMargin { get; set; } = 5; public int GridSelectedColor { get; set; } = 1; public int MovementGridWidthModifier { get; set; } = 100; diff --git a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt index 13048f3253..6b0768cc50 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt @@ -233,6 +233,7 @@ ModUi/&Monsters=Monster: ModUi/&MovementGridWidthModifier=Multiplizieren Sie die Breite des Bewegungsrasters mit [%] ModUi/&MulticlassKeyHelp=UMSCHALT-Klick auf einen Zauber kehrt den verbrauchten Standardrepertoire-Slottyp um.\n[Hexenmeister gibt weiße Zauberslots aus und andere geben Paktgrüne aus] ModUi/&MultiplyTheExperienceGainedBy=Multiplizieren Sie die gewonnene Erfahrung mit [%] +ModUi/&NeverMoveCameraOnEnemyTurn=+ Die Kamera bewegt sich nie während der Züge des Gegners ModUi/&NoExperienceOnLevelUp=Für den Levelaufstieg ist keine Erfahrung erforderlich ModUi/&OfferAdditionalLoreFriendlyNames=Bieten Sie bei der Charaktererstellung zusätzliche Lore-freundliche Namen an ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Abbrechen Vorteil/Nachteil geblendete, unsichtbare und wahrgenommene Paare [nützlich in Verbindung mit offiziellem Vorteil/Nachteil Regeln] diff --git a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt index 6b29c40c49..f620bb3e2f 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt @@ -233,6 +233,7 @@ ModUi/&Monsters=Monsters: ModUi/&MovementGridWidthModifier=Multiply the movement grid width by [%] ModUi/&MulticlassKeyHelp=SHIFT click on a spell inverts the default repertoire slot type consumed\n[Warlock spends white spell slots and others spend pact green ones] ModUi/&MultiplyTheExperienceGainedBy=Multiply the experience gained by [%] +ModUi/&NeverMoveCameraOnEnemyTurn=+ Camera never moves during enemy turns ModUi/&NoExperienceOnLevelUp=No experience is required to level up ModUi/&OfferAdditionalLoreFriendlyNames=Offer additional lore friendly names on character creation ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Cancel advantage / disadvantage blinded, invisible, and perceived pairs [useful in conjunction with official advantage / disadvantage rules] diff --git a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt index 1a76cccfbd..15c36096b1 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt @@ -233,6 +233,7 @@ ModUi/&Monsters=Monstruos: ModUi/&MovementGridWidthModifier=Multiplica el ancho de la cuadrícula de movimiento por [%] ModUi/&MulticlassKeyHelp=SHIFT hace clic en un hechizo para invertir el tipo de espacio de repertorio predeterminado consumido\n[Brujo gasta espacios de hechizo blancos y otros gastan los verdes de pacto] ModUi/&MultiplyTheExperienceGainedBy=Multiplica la experiencia obtenida por [%] +ModUi/&NeverMoveCameraOnEnemyTurn=+ La cámara nunca se mueve durante los turnos del enemigo ModUi/&NoExperienceOnLevelUp=No se requiere experiencia para subir de nivel. ModUi/&OfferAdditionalLoreFriendlyNames=Ofrecer nombres adicionales amigables con la historia en la creación de personajes. ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Cancelar ventaja/desventaja pares cegados, invisibles y percibidos [útil junto con la ventaja/desventaja oficial reglas] diff --git a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt index 4e69c50683..81d3836785 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt @@ -233,6 +233,7 @@ ModUi/&Monsters=Monstres : ModUi/&MovementGridWidthModifier=Multipliez la largeur de la grille de mouvement par [%] ModUi/&MulticlassKeyHelp=SHIFT cliquez sur un sort pour inverser le type d'emplacement de répertoire par défaut consommé\n[Warlock dépense des emplacements de sorts blancs et d'autres dépensent des verts du pacte] ModUi/&MultiplyTheExperienceGainedBy=Multipliez l'expérience acquise par [%] +ModUi/&NeverMoveCameraOnEnemyTurn=+ La caméra ne bouge jamais pendant les tours ennemis ModUi/&NoExperienceOnLevelUp=Aucune expérience n'est requise pour passer au niveau supérieur ModUi/&OfferAdditionalLoreFriendlyNames=Proposer des noms supplémentaires conviviaux lors de la création de personnages ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Annuler l'avantage/inconvénient les paires aveuglées, invisibles et perçues [utile en conjonction avec l'avantage/inconvénient officiel règles] diff --git a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt index b25e405f8e..48497a6261 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt @@ -233,6 +233,7 @@ ModUi/&Monsters=Mostri: ModUi/&MovementGridWidthModifier=Moltiplica la larghezza della griglia di movimento per [%] ModUi/&MulticlassKeyHelp=MAIUSC fare clic su un incantesimo inverte il tipo di slot di repertorio predefinito consumato\n[Stregone spende slot incantesimo bianchi e altri spendono quelli verdi del patto] ModUi/&MultiplyTheExperienceGainedBy=Moltiplica l'esperienza acquisita per [%] +ModUi/&NeverMoveCameraOnEnemyTurn=+ La telecamera non si muove mai durante i turni nemici ModUi/&NoExperienceOnLevelUp=Non è richiesta alcuna esperienza per salire di livello ModUi/&OfferAdditionalLoreFriendlyNames=Offri ulteriori nomi amichevoli della tradizione sulla creazione del personaggio ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Annulla vantaggio/svantaggio coppie accecate, invisibili e percepite [utile insieme al vantaggio/svantaggio ufficiale regole] diff --git a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt index 1afa7b57b8..df946a6b27 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt @@ -233,6 +233,7 @@ ModUi/&Monsters=モンスター: ModUi/&MovementGridWidthModifier=移動グリッドの幅を乗算します [%] ModUi/&MulticlassKeyHelp=SHIFT で呪文をクリックすると、消費されるデフォルトのレパートリー スロット タイプが反転します\n[ウォーロックは白い呪文スロットを消費します他の人は協定の緑のものを使います] ModUi/&MultiplyTheExperienceGainedBy=得られる経験値を [%]で倍増します +ModUi/&NeverMoveCameraOnEnemyTurn=+ 敵のターン中はカメラが動かない ModUi/&NoExperienceOnLevelUp=レベルアップに経験は必要ありません ModUi/&OfferAdditionalLoreFriendlyNames=キャラクター作成時に追加の伝承にわかりやすい名前を提供する ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ 盲目、不可視、認識された有利 / 不利のペアをキャンセル[公式の有利/不利と併用すると便利]ルール] diff --git a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt index ec6d0088a8..1862e0a2f8 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt @@ -233,6 +233,7 @@ ModUi/&Monsters=괴물: ModUi/&MovementGridWidthModifier=이동 그리드 너비에 [%]를 곱합니다. ModUi/&MulticlassKeyHelp=주문을 SHIFT 클릭하면 소비되는 기본 레퍼토리 슬롯 유형이 반전됩니다.\n[워록은 흰색 주문 슬롯을 소비합니다. 다른 사람들은 녹색 계약을 사용합니다.] ModUi/&MultiplyTheExperienceGainedBy=경험치 획득량 [%] 곱하기 +ModUi/&NeverMoveCameraOnEnemyTurn=+ 적의 턴 중에는 카메라가 움직이지 않습니다 ModUi/&NoExperienceOnLevelUp=레벨업에는 경험치가 필요하지 않습니다. ModUi/&OfferAdditionalLoreFriendlyNames=캐릭터 생성 시 추가 지식 친화적인 이름 제공 ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ 장점 / 단점 취소 눈먼, 보이지 않는 및 인지된 쌍 [공식 장점 / 단점과 함께 유용함 규칙] diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt index e3c3d3542b..4eb573a3ae 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt @@ -233,6 +233,7 @@ ModUi/&Monsters=Monstros: ModUi/&MovementGridWidthModifier=Multiplique a largura da grade de movimento por [%] ModUi/&MulticlassKeyHelp=SHIFT clicar em um feitiço inverte o tipo de slot de repertório padrão consumido\n[Warlock gasta slots de feitiço branco e outros gastam os verdes do pacto] ModUi/&MultiplyTheExperienceGainedBy=Multiplique a experiência adquirida por [%] +ModUi/&NeverMoveCameraOnEnemyTurn=+ A câmera nunca se move durante os turnos do inimigo ModUi/&NoExperienceOnLevelUp=Nenhuma experiência é necessária para subir de nível ModUi/&OfferAdditionalLoreFriendlyNames=Ofereça nomes adicionais amigáveis à história na criação de personagens ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Cancelar vantagem/desvantagem pares cegos, invisíveis e percebidos [útil em conjunto com vantagem/desvantagem oficial regras] diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index 952086bbf1..d1f4310aa6 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -233,6 +233,7 @@ ModUi/&Monsters=Монстры: ModUi/&MovementGridWidthModifier=Увеличить ширину сетки передвижения на множитель [%] ModUi/&MulticlassKeyHelp=Нажатие с SHIFT по заклинанию переключает тип затрачиваемой ячейки по умолчанию\n[Колдун тратит белые ячейки заклинаний, а остальные - зелёные ячейки колдуна] ModUi/&MultiplyTheExperienceGainedBy=Множитель получаемого опыта [в %] +ModUi/&NeverMoveCameraOnEnemyTurn=+ Камера никогда не двигается во время хода противника ModUi/&NoExperienceOnLevelUp=Отключить систему повышения уровня на основе полученного опыта ModUi/&OfferAdditionalLoreFriendlyNames=Предлагать при создании персонажа дополнительные имена, подходящие по истории ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Отменить преимущество/помеху для ослеплённых, невидимых и видимых [полезно в сочетании с официальными правилами преимущества/помехи] diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt index e3f57cd3bc..d976e5bd9d 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt @@ -233,6 +233,7 @@ ModUi/&Monsters=怪物: ModUi/&MovementGridWidthModifier=将移动格子宽度乘以 [%] ModUi/&MulticlassKeyHelp=SHIFT点击法术会反转消耗的默认曲目槽类型\n[术士消耗白色法术位,其他职业消耗绿色的] ModUi/&MultiplyTheExperienceGainedBy=乘以获得的经验[%] +ModUi/&NeverMoveCameraOnEnemyTurn=+ 敌人回合时镜头永不移动 ModUi/&NoExperienceOnLevelUp=升级不需要经验 ModUi/&OfferAdditionalLoreFriendlyNames=在角色创建时提供额外的知识友好名称 ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ 取消对目盲、隐形和感知到的优势/劣势[与官方优势/劣势规则结合使用] From ee7679bdfb7a586596c54032d3148e9d59bba43f Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Tue, 16 Jul 2024 21:41:29 -0700 Subject: [PATCH 78/91] add mod UI settings - Disable all camera bounds / Enable elevation camera to stay at pos after disabled / Increase elevation camera max height by X cells --- .../ChangelogHistory.txt | 6 +- .../Displays/GameUiDisplay.cs | 27 +++++++++ .../Patches/CameraModeManualPatcher.cs | 59 +++++++++++++++++++ SolastaUnfinishedBusiness/Settings.cs | 5 ++ SolastaUnfinishedBusiness/Settings/empty.xml | 4 ++ .../Translations/de/Settings-de.txt | 4 ++ .../Translations/en/Settings-en.txt | 4 ++ .../Translations/es/Settings-es.txt | 4 ++ .../Translations/fr/Settings-fr.txt | 4 ++ .../Translations/it/Settings-it.txt | 4 ++ .../Translations/ja/Settings-ja.txt | 4 ++ .../Translations/ko/Settings-ko.txt | 4 ++ .../Translations/pt-BR/Settings-pt-BR.txt | 4 ++ .../Translations/ru/Settings-ru.txt | 4 ++ .../Translations/zh-CN/Settings-zh-CN.txt | 4 ++ 15 files changed, 138 insertions(+), 3 deletions(-) create mode 100644 SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 9f08b74c6f..02959c7bc8 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,15 +1,15 @@ 1.5.97.20: - added Interface > Game UI > 'Camera never moves during enemy turns' +- added Interface > Game UI > 'Disable all camera bounds' +- added Interface > Game UI > 'Enable elevation camera to stay at pos after disabled' +- added Interface > Game UI > 'Increase elevation camera max height by X cells' - added variant spell points rules, and Sickening Radiance spell - fixed Arcane Archer arcane shot soft lock when enemy already dead - fixed Export Hero and RESPEC auras, infusions, etc. termination - fixed cast main action leaving cast bonus action available - fixed Ring of Knifes spell follow up power to-hit modifier - fixed selection on Field Manipulator displacement, and Scatter spell -- improved 'Battle camera doesn't follow when character is already on screen' -- removed Merciless, Polearm Expert, Rope it Up, Sentinel, Shield Expert backward compatibility - KNOWN ISSUES: diff --git a/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs b/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs index a31a0026d6..e99a3f1ec1 100644 --- a/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs +++ b/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs @@ -368,6 +368,33 @@ internal static void DisplayGameUi() #endregion + #region Camera + + UI.Label(); + UI.Label(Gui.Localize("ModUi/&Camera")); + UI.Label(); + + toggle = Main.Settings.DisableAllCameraBounds; + if (UI.Toggle(Gui.Localize("ModUi/&DisableAllCameraBounds"), ref toggle, UI.AutoWidth())) + { + Main.Settings.DisableAllCameraBounds = toggle; + } + + toggle = Main.Settings.EnableElevationCameraToStayAtPosition; + if (UI.Toggle(Gui.Localize("ModUi/&EnableElevationCameraToStayAtPosition"), ref toggle, UI.AutoWidth())) + { + Main.Settings.EnableElevationCameraToStayAtPosition = toggle; + } + + intValue = Main.Settings.SetElevationCameraMaxHeightBy; + if (UI.Slider(Gui.Localize("ModUi/&SetElevationCameraMaxHeightBy"), ref intValue, 0, 24, + 4, "cells", UI.AutoWidth())) + { + Main.Settings.SetElevationCameraMaxHeightBy = intValue; + } + + #endregion + #region Formation UI.Label(); diff --git a/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs b/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs new file mode 100644 index 0000000000..c811522bb6 --- /dev/null +++ b/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs @@ -0,0 +1,59 @@ +using System.Diagnostics.CodeAnalysis; +using HarmonyLib; +using JetBrains.Annotations; +using UnityEngine; + +namespace SolastaUnfinishedBusiness.Patches; + +[UsedImplicitly] +public static class CameraModeManualPatcher +{ + private static CameraController.CameraBoundsSource _cameraBoundsSource = CameraController.CameraBoundsSource.None; + + //PATCH: supports camera settings in Mod UI + [HarmonyPatch(typeof(CameraModeManual), nameof(CameraModeManual.Parameters), MethodType.Getter)] + [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] + [UsedImplicitly] + public static class Parameters_Getter_Patch + { + [UsedImplicitly] + public static void Prefix(CameraModeManual __instance) + { + __instance.parameters.boundsSource = Main.Settings.DisableAllCameraBounds + ? CameraController.CameraBoundsSource.None + : _cameraBoundsSource; + + __instance.parameters.hasElevationCorrection = !Main.Settings.EnableElevationCameraToStayAtPosition; + + __instance.parameters.elevationType = Main.Settings.SetElevationCameraMaxHeightBy == 0 + ? CameraModeManualParameters.CameraElevationType.Auto + : CameraModeManualParameters.CameraElevationType.Free; + } + } + + //PATCH: supports camera settings in Mod UI + [HarmonyPatch(typeof(CameraModeManual), nameof(CameraModeManual.SetBounds))] + [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] + [UsedImplicitly] + public static class TargetBounds_Getter_Patch + { + [UsedImplicitly] + public static void Prefix( + CameraModeManual __instance, + ref Bounds bounds, + CameraController.CameraBoundsSource source) + { + _cameraBoundsSource = source; + + if (Main.Settings.SetElevationCameraMaxHeightBy != 0) + { + bounds = new Bounds( + __instance.targetBounds.center, + new Vector3( + bounds.size.x, + bounds.size.y + Main.Settings.SetElevationCameraMaxHeightBy, + bounds.size.z)); + } + } + } +} diff --git a/SolastaUnfinishedBusiness/Settings.cs b/SolastaUnfinishedBusiness/Settings.cs index 45388c6486..4f9f0ede0a 100644 --- a/SolastaUnfinishedBusiness/Settings.cs +++ b/SolastaUnfinishedBusiness/Settings.cs @@ -412,6 +412,11 @@ public class Settings : UnityModManager.ModSettings public int HighContrastTargetingAoeSelectedColor { get; set; } public int HighContrastTargetingSingleSelectedColor { get; set; } + // Camera + public bool DisableAllCameraBounds { get; set; } + public bool EnableElevationCameraToStayAtPosition { get; set; } + public int SetElevationCameraMaxHeightBy { get; set; } + // Formation public int FormationGridSelectedSet { get; set; } = -1; diff --git a/SolastaUnfinishedBusiness/Settings/empty.xml b/SolastaUnfinishedBusiness/Settings/empty.xml index efcd1956ec..10c5c30a9e 100644 --- a/SolastaUnfinishedBusiness/Settings/empty.xml +++ b/SolastaUnfinishedBusiness/Settings/empty.xml @@ -866,6 +866,7 @@ false false false + false 5 1 100 @@ -874,6 +875,9 @@ false 0 0 + false + false + 0 0 diff --git a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt index 6b0768cc50..e2f0d71b0b 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt @@ -42,6 +42,7 @@ ModUi/&Bestiary=Bestiarium ModUi/&BestowCurseNoConcentrationRequiredForSlotLevel5OrAbove=Fluch verleihen erfordert keine Konzentration, wenn es mit einem L5+-Zauberslot gewirkt wird ModUi/&BlindedConditionDontAllowAttackOfOpportunity=Der Zustand Blind erlaubt keinen Gelegenheitsangriff ModUi/&Blueprints=Blaupausen +ModUi/&Camera=Kamera: ModUi/&Campaigns=Kampagnen: ModUi/&CampaignsAndLocations=Kampagnen und Standorte: ModUi/&Category=Kategorie @@ -64,6 +65,7 @@ ModUi/&CriticalOption1=1: Summiere das maximale Er ModUi/&CriticalOption2=2: Wirf alle Schadenswürfel, die das höchstmögliche Ergebnis erzielen, erneut und addiere es zum Gesamtschaden ModUi/&CriticalOption3=3: Verdoppeln Sie den Gesamtschaden Ihres Angriffs, anstatt zusätzliche Würfel zu werfen. [(XdY+Z)*2] ModUi/&Deities=Gottheiten +ModUi/&DisableAllCameraBounds=Alle Kamerabegrenzungen deaktivieren [übertrifft die maximale Kamerahöhe um] [Neustart erforderlich] ModUi/&DisableAutoEquip=Deaktivieren Sie die automatische Ausrüstung von Gegenständen im Inventar ModUi/&DisableBarbarianBrutalCritical=+ Deaktivieren Sie außerdem Barbar Brutal Critical auf den Stufen 9, 13 und 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Deaktivieren Sie die Zaubervoraussetzungen für Talente, die von diesem Mod bereitgestellt werden [Neustart erforderlich] @@ -118,6 +120,7 @@ ModUi/&EnableCheatMenu=Aktivieren Sie das Cheats-Menü ModUi/&EnableCustomPortraits=Aktivieren Sie benutzerdefinierte Porträts ModUi/&EnableCustomPortraitsHelp=• Platzieren Sie Ihre benutzerdefinierten Porträts in den Unterordnern Personal oder PreGen , benannt nach dem Vornamen des Helden [d. h.: Anton, Celia, Nialla usw.]\n• Verwenden Sie PNG Bilder, 256 x 384 Pixel groß, mit einer Transparenzebene [verwenden Sie GIMP für beste Ergebnisse] ModUi/&EnableDungeonMakerModdedContent=Aktivieren Sie Dungeon Maker Pro\n[einschließlich flacher Räume, Dungeongrößen von 150 x 150 und 200 x 200 und ohne Schnickschnack, bei dem Assets aus allen Umgebungen gemischt werden] +ModUi/&EnableElevationCameraToStayAtPosition=Höhenkamera so aktivieren, dass sie nach der Deaktivierung an ihrer Position bleibt ModUi/&EnableEpicPointsAndArray=Aktivieren Sie ein episches 35-Punkte-Kaufsystem und Array [17,15,13,12,10,8] [Neustart erforderlich] ModUi/&EnableExtendedProficienciesPanelDisplay=Aktivieren Sie die Anzeige der erweiterten Kompetenzen [Arkane Schüsse, Infusionen, Manöver und Vielseitigkeiten]\n[Leistung Treffer bei der Charakterinspektion. Nutzung auf eigene Gefahr] ModUi/&EnableFeatsAtEvenLevels=Aktivieren Sie die Auswahl von Talenten auf den Stufen 2, 10 und 18 @@ -278,6 +281,7 @@ ModUi/&SelectTabletop=Wählen Sie Tischplatte ModUi/&SenseNormalVisionRangeMultiplier=Ändern Sie den Bereich der Normalen Sicht [nur in Schlachten] ModUi/&Services=Dienstleistungen ModUi/&SetBeltOfDwarvenKindBeardChances=Gürtel der Zwergen Bart-Erscheinungschancen +ModUi/&SetElevationCameraMaxHeightBy=Maximale Höhe der Höhenkamera einstellen um ModUi/&SettingsExport=Export ModUi/&SettingsHelp=• Als Host können Sie Ihre aktuelle Konfiguration exportieren, den Exportordner öffnen und ganz einfach mit Ihren Kollegen teilen.\n• Als Gast können Sie den Exportordner öffnen, die freigegebene Datei vom Host einfügen und über [Neustart erforderlich] ModUi/&SettingsLoad=• Laden Sie eine exportierte Einstellung diff --git a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt index f620bb3e2f..2f0b21d708 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt @@ -42,6 +42,7 @@ ModUi/&Bestiary=Bestiary ModUi/&BestowCurseNoConcentrationRequiredForSlotLevel5OrAbove=Bestow Curse does not require concentration when cast with a L5+ spell slot ModUi/&BlindedConditionDontAllowAttackOfOpportunity=The Blinded condition doesn't allow attack of opportunity ModUi/&Blueprints=Blueprints +ModUi/&Camera=Camera: ModUi/&Campaigns=Campaigns: ModUi/&CampaignsAndLocations=Campaigns and locations: ModUi/&Category=Category @@ -64,6 +65,7 @@ ModUi/&CriticalOption1=1: sum the maximum result f ModUi/&CriticalOption2=2: keep re-rolling any damage dice that roll the highest possible result and add it to the total damage ModUi/&CriticalOption3=3: Double your attack's total damage instead of rolling additional dice. [(XdY+Z)*2] ModUi/&Deities=Deities +ModUi/&DisableAllCameraBounds=Disable all camera bounds [surpasses camera max height by] [Requires Restart] ModUi/&DisableAutoEquip=Disable auto-equip of items in inventory ModUi/&DisableBarbarianBrutalCritical=+ Also disable Barbarian Brutal Critical at levels 9, 13 and 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Disable cast spell pre-requisites on feats provided by this mod [Requires Restart] @@ -118,6 +120,7 @@ ModUi/&EnableCheatMenu=Enable the cheats menu ModUi/&EnableCustomPortraits=Enable custom portraits ModUi/&EnableCustomPortraitsHelp=• Place your custom portraits under subfolders Personal or PreGen, named after the hero first name [i.e.: Anton, Celia, Nialla, etc.]\n• Use PNG images, 256 x 384 pixels in size, with a transparency layer [use GIMP for best results] ModUi/&EnableDungeonMakerModdedContent=Enable Dungeon Maker Pro\n[include flat rooms, 150x150 & 200x200 dungeon sizes and no frills mixing assets from all environments] +ModUi/&EnableElevationCameraToStayAtPosition=Enable elevation camera to stay at position after disabled ModUi/&EnableEpicPointsAndArray=Enable an epic 35 points buy system and array [17,15,13,12,10,8] [Requires Restart] ModUi/&EnableExtendedProficienciesPanelDisplay=Enable extended proficiencies panel display [Arcane Shots, Infusions, Maneuvers, and Versatilities]\n[performance hit on character inspection. use at your own risk] ModUi/&EnableFeatsAtEvenLevels=Enable feats selection at levels 2, 10 and 18 @@ -278,6 +281,7 @@ ModUi/&SelectTabletop=Select Tabletop ModUi/&SenseNormalVisionRangeMultiplier=Modify Normal Vision range [only in battles] ModUi/&Services=Services ModUi/&SetBeltOfDwarvenKindBeardChances=Belt of Dwarvenkind beard appearing chances +ModUi/&SetElevationCameraMaxHeightBy=Set elevation camera max height by ModUi/&SettingsExport=Export ModUi/&SettingsHelp=• As a host you can export your current configuration, open the exports folder and easily share with your peers\n• As a guest you can open the exports folder, paste the shared file from the host and load it over [Requires Restart] ModUi/&SettingsLoad=• Load an exported setting diff --git a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt index 15c36096b1..29d7e4dacc 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt @@ -42,6 +42,7 @@ ModUi/&Bestiary=Bestiario ModUi/&BestowCurseNoConcentrationRequiredForSlotLevel5OrAbove=Otorgar maldición no requiere concentración cuando se lanza con un espacio de hechizo N5+ ModUi/&BlindedConditionDontAllowAttackOfOpportunity=La condición Cegado no permite ataques de oportunidad. ModUi/&Blueprints=Planos +ModUi/&Camera=Cámara: ModUi/&Campaigns=Campañas: ModUi/&CampaignsAndLocations=Campañas y ubicaciones: ModUi/&Category=Categoría @@ -64,6 +65,7 @@ ModUi/&CriticalOption1=1: suma el resultado máxim ModUi/&CriticalOption2=2: sigue tirando los dados de daño que obtengan el resultado más alto posible y súmalo al daño total. ModUi/&CriticalOption3=3: duplica el daño total de tu ataque en lugar de tirar dados adicionales. [(XdY+Z)*2] ModUi/&Deities=Deidades +ModUi/&DisableAllCameraBounds=Deshabilitar todos los límites de la cámara [supera la altura máxima de la cámara en] [Requiere reinicio] ModUi/&DisableAutoEquip=Deshabilitar el autoequipamiento de artículos en el inventario ModUi/&DisableBarbarianBrutalCritical=+ También desactiva Bárbaro Crítico Brutal en los niveles 9, 13 y 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Desactiva los requisitos previos para lanzar hechizos en dotes proporcionadas por este mod [Requiere reinicio] @@ -118,6 +120,7 @@ ModUi/&EnableCheatMenu=Habilitar el menú de trucos ModUi/&EnableCustomPortraits=Habilitar retratos personalizados ModUi/&EnableCustomPortraitsHelp=• Coloque sus retratos personalizados en las subcarpetas Personal o PreGen , que lleva el nombre del nombre del héroe [es decir: Anton, Celia, Nialla, etc.]\n• Utilice PNG imágenes, de 256 x 384 píxeles de tamaño, con una capa de transparencia [use GIMP para obtener mejores resultados] ModUi/&EnableDungeonMakerModdedContent=Habilite Dungeon Maker Pro\n[incluye salas planas, tamaños de mazmorra de 150 x 150 y 200 x 200 y una combinación sencilla de recursos de todos los entornos] +ModUi/&EnableElevationCameraToStayAtPosition=Habilite la cámara de elevación para permanecer en su posición después de desactivarla ModUi/&EnableEpicPointsAndArray=Habilite un sistema de compra épico de 35 puntos y una matriz [17,15,13,12,10,8] [Requiere reinicio] ModUi/&EnableExtendedProficienciesPanelDisplay=Habilitar visualización del panel de competencias extendidas [Disparos arcanos, infusiones, maniobras y versatilidades]\n[rendimiento éxito en la inspección del personaje. úsalo bajo tu propia responsabilidad] ModUi/&EnableFeatsAtEvenLevels=Habilite la selección de dotes en los niveles 2, 10 y 18 @@ -278,6 +281,7 @@ ModUi/&SelectTabletop=Seleccionar tablero ModUi/&SenseNormalVisionRangeMultiplier=Modificar el rango de Visión normal [solo en batallas] ModUi/&Services=Servicios ModUi/&SetBeltOfDwarvenKindBeardChances=Cinturón de los enanos Probabilidades de aparición de barba +ModUi/&SetElevationCameraMaxHeightBy=Establecer la altura máxima de la cámara de elevación por ModUi/&SettingsExport=Exportar ModUi/&SettingsHelp=• Como anfitrión, puedes exportar tu configuración actual, abrir la carpeta de exportaciones y compartirla fácilmente con tus compañeros.\n• Como invitado, puedes abrir la carpeta de exportaciones, pegar el archivo compartido desde el anfitrión y cargarlo <. i>[Requiere reinicio] ModUi/&SettingsLoad=• Cargar una configuración exportada diff --git a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt index 81d3836785..27c1292d06 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt @@ -42,6 +42,7 @@ ModUi/&Bestiary=Bestiaire ModUi/&BestowCurseNoConcentrationRequiredForSlotLevel5OrAbove=Accorder une malédiction ne nécessite pas de concentration lorsqu'il est lancé avec un emplacement de sort L5+. ModUi/&BlindedConditionDontAllowAttackOfOpportunity=La condition Aveuglé ne permet pas l'attaque d'opportunité. ModUi/&Blueprints=Plans +ModUi/&Camera=Caméra : ModUi/&Campaigns=Campagnes : ModUi/&CampaignsAndLocations=Campagnes et emplacements : ModUi/&Category=Catégorie @@ -64,6 +65,7 @@ ModUi/&CriticalOption1=1 : additionnez le résult ModUi/&CriticalOption2=2 : continuez à relancer tous les dés de dégâts qui obtiennent le résultat le plus élevé possible et ajoutez-le au total des dégâts. ModUi/&CriticalOption3=3 : doublez les dégâts totaux de votre attaque au lieu de lancer des dés supplémentaires. [(XdY+Z)*2] ModUi/&Deities=Divinités +ModUi/&DisableAllCameraBounds=Désactivez toutes les limites de la caméra [dépasse la hauteur maximale de la caméra de] [Nécessite un redémarrage] ModUi/&DisableAutoEquip=Désactiver l'équipement automatique des articles en inventaire ModUi/&DisableBarbarianBrutalCritical=+ Désactivez également Barbare Critique brutal aux niveaux 9, 13 et 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Désactivez les pré-requis pour lancer des sorts sur les exploits fournis par ce mod [Nécessite un redémarrage] @@ -118,6 +120,7 @@ ModUi/&EnableCheatMenu=Activer le menu des astuces ModUi/&EnableCustomPortraits=Activer les portraits personnalisés ModUi/&EnableCustomPortraitsHelp=• Placez vos portraits personnalisés dans les sous-dossiers Personnel ou PreGen. , nommé d'après le prénom du héros [c'est-à-dire : Anton, Celia, Nialla, etc.]\n• Utiliser PNG images, d'une taille de 256 x 384 pixels, avec un calque de transparence [utilisez GIMP pour de meilleurs résultats] ModUi/&EnableDungeonMakerModdedContent=Activer Dungeon Maker Pro\n[inclut des salles plates, des donjons de 150 x 150 et 200 x 200 et un mélange sans fioritures des ressources de tous les environnements] +ModUi/&EnableElevationCameraToStayAtPosition=Permettre à la caméra d'élévation de rester en position après sa désactivation ModUi/&EnableEpicPointsAndArray=Activez un système et un tableau d'achat épiques de 35 points [17,15,13,12,10,8] [Nécessite un redémarrage] ModUi/&EnableExtendedProficienciesPanelDisplay=Activer l'affichage du panneau de compétences étendues [Tirs arcaniques, infusions, manœuvres et polyvalences]\n[performance frappé sur l'inspection du caractère. utilisez à vos propres risques] ModUi/&EnableFeatsAtEvenLevels=Activer la sélection des exploits aux niveaux 2, 10 et 18 @@ -278,6 +281,7 @@ ModUi/&SelectTabletop=Sélectionnez une table ModUi/&SenseNormalVisionRangeMultiplier=Modifier la portée de la Vision normale [uniquement en bataille] ModUi/&Services=Prestations de service ModUi/&SetBeltOfDwarvenKindBeardChances=Ceinture des nains chances d'apparition de la barbe +ModUi/&SetElevationCameraMaxHeightBy=Définir la hauteur maximale de la caméra d'élévation par ModUi/&SettingsExport=Exporter ModUi/&SettingsHelp=• En tant qu'hôte, vous pouvez exporter votre configuration actuelle, ouvrir le dossier des exportations et la partager facilement avec vos pairs.\n• En tant qu'invité, vous pouvez ouvrir le dossier des exportations, coller le fichier partagé depuis l'hôte et le charger sur [Redémarrage requis] ModUi/&SettingsLoad=• Charger un paramètre exporté diff --git a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt index 48497a6261..abfab3cce6 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt @@ -42,6 +42,7 @@ ModUi/&Bestiary=Bestiario ModUi/&BestowCurseNoConcentrationRequiredForSlotLevel5OrAbove=Lancia Maledizione non richiede concentrazione se lanciato con uno slot incantesimo L5+ ModUi/&BlindedConditionDontAllowAttackOfOpportunity=La condizione Accecato non consente attacchi di opportunità ModUi/&Blueprints=Progetti +ModUi/&Camera=Fotocamera: ModUi/&Campaigns=Campagne: ModUi/&CampaignsAndLocations=Campagne e posizioni: ModUi/&Category=Categoria @@ -64,6 +65,7 @@ ModUi/&CriticalOption1=1: somma il risultato massi ModUi/&CriticalOption2=2: continua a ripetere il lancio di tutti i dadi di danno che ottengono il risultato più alto possibile e aggiungilo al danno totale ModUi/&CriticalOption3=3: raddoppia il danno totale del tuo attacco invece di lanciare dadi aggiuntivi. [(XdY+Z)*2] ModUi/&Deities=Divinità +ModUi/&DisableAllCameraBounds=Disattiva tutti i limiti della telecamera [supera l'altezza massima della telecamera di] [Richiede il riavvio] ModUi/&DisableAutoEquip=Disabilita l'equipaggiamento automatico degli oggetti nell'inventario ModUi/&DisableBarbarianBrutalCritical=+ Disabilita anche Barbaro Critico Brutale ai livelli 9, 13 e 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Disabilita i prerequisiti di lancio degli incantesimi sui talenti forniti da questo mod [Richiede il riavvio] @@ -118,6 +120,7 @@ ModUi/&EnableCheatMenu=Abilita il menu dei trucchi ModUi/&EnableCustomPortraits=Abilita ritratti personalizzati ModUi/&EnableCustomPortraitsHelp=• Inserisci i tuoi ritratti personalizzati nelle sottocartelle Personale o PreGen , che prende il nome dal nome dell'eroe [es.: Anton, Celia, Nialla, ecc.]\n• Usa PNG immagini, dimensioni 256 x 384 pixel, con un livello di trasparenza [usa GIMP per i migliori risultati] ModUi/&EnableDungeonMakerModdedContent=Abilita Dungeon Maker Pro\n[include stanze piatte, dimensioni di dungeon 150x150 e 200x200 e senza fronzoli mescolando risorse da tutti gli ambienti] +ModUi/&EnableElevationCameraToStayAtPosition=Abilita la telecamera di elevazione a rimanere nella posizione dopo la disattivazione ModUi/&EnableEpicPointsAndArray=Abilita un sistema di acquisto epico da 35 punti e un array [17,15,13,12,10,8] [Richiede il riavvio] ModUi/&EnableExtendedProficienciesPanelDisplay=Abilita la visualizzazione del pannello delle competenze estese [Tiri arcani, infusioni, manovre e versatilità]\n[prestazioni colpo sull'ispezione del carattere. utilizzare a proprio rischio] ModUi/&EnableFeatsAtEvenLevels=Abilita la selezione dei talenti ai livelli 2, 10 e 18 @@ -278,6 +281,7 @@ ModUi/&SelectTabletop=Seleziona Da tavolo ModUi/&SenseNormalVisionRangeMultiplier=Modifica il raggio Visione normale [solo nelle battaglie] ModUi/&Services=Servizi ModUi/&SetBeltOfDwarvenKindBeardChances=Cintura della razza nanica possibilità di apparizione della barba +ModUi/&SetElevationCameraMaxHeightBy=Imposta l'altezza massima della telecamera di elevazione di ModUi/&SettingsExport=Esportare ModUi/&SettingsHelp=• Come host puoi esportare la tua configurazione attuale, aprire la cartella delle esportazioni e condividerla facilmente con i tuoi colleghi\n• Come ospite puoi aprire la cartella delle esportazioni, incollare il file condiviso dall'host e caricarlo [Richiede il riavvio] ModUi/&SettingsLoad=• Caricare un'impostazione esportata diff --git a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt index df946a6b27..dd8bdbd1de 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt @@ -42,6 +42,7 @@ ModUi/&Bestiary=獣寓話 ModUi/&BestowCurseNoConcentrationRequiredForSlotLevel5OrAbove=授与の呪いは、L5以上の呪文スロットでキャストする場合は集中力を必要としません ModUi/&BlindedConditionDontAllowAttackOfOpportunity=盲目状態では機会攻撃は許可されません ModUi/&Blueprints=青写真 +ModUi/&Camera=カメラ: ModUi/&Campaigns=キャンペーン: ModUi/&CampaignsAndLocations=キャンペーンと場所: ModUi/&Category=カテゴリー @@ -64,6 +65,7 @@ ModUi/&CriticalOption1=1: ダメージ ダイス ModUi/&CriticalOption2=2: 可能な限り最高の結果が出たダメージ ダイスを再度振り続け、それを合計ダメージに追加します。 ModUi/&CriticalOption3=3: 追加のサイコロを振る代わりに、攻撃の合計ダメージが2倍になります。 [(XdY+Z)*2] ModUi/&Deities=神々 +ModUi/&DisableAllCameraBounds=すべてのカメラ境界を無効にします [カメラの最大高さを超えます] [再起動が必要です] ModUi/&DisableAutoEquip=インベントリ内のアイテムの自動装備を無効にする ModUi/&DisableBarbarianBrutalCritical=+ レベル 9、13、17 でバーバリアンのブルータル クリティカルも無効化します ModUi/&DisableCastSpellPreRequisitesOnModFeats=この MOD によって提供される特技の呪文の前提条件を無効にします[再起動が必要] @@ -118,6 +120,7 @@ ModUi/&EnableCheatMenu=チートメニューを有効にする ModUi/&EnableCustomPortraits=カスタムポートレートを有効にする ModUi/&EnableCustomPortraitsHelp=• カスタム ポートレートをサブフォルダ Personal または PreGen に配置します。 、主人公の名前にちなんで名付けられました [例: アントン、セリア、ニアラなど]\n• PNG を使用します画像、サイズ 256 x 384 ピクセル、透明レイヤーあり [最良の結果を得るには GIMP を使用] ModUi/&EnableDungeonMakerModdedContent=Dungeon Maker Pro を有効にする\n[フラット ルーム、150x150 および 200x200 のダンジョン サイズ、あらゆる環境のアセットを簡単に混合する機能が含まれます] +ModUi/&EnableElevationCameraToStayAtPosition=無効にした後も高度カメラの位置を維持する ModUi/&EnableEpicPointsAndArray=壮大な 35 ポイント購入システムと配列 [17,15,13,12,10,8] [再起動が必要] ModUi/&EnableExtendedProficienciesPanelDisplay=拡張熟練度パネル表示を有効にする [秘術ショット、注入、マニューバー、多用途性]\n[パフォーマンス]文字検査でヒットしました。ご自身の責任で使用してください] ModUi/&EnableFeatsAtEvenLevels=レベル 2、10、18 で特技の選択を有効にします @@ -278,6 +281,7 @@ ModUi/&SelectTabletop=テーブルトップを選択してください ModUi/&SenseNormalVisionRangeMultiplier=通常の視力範囲を変更[戦闘時のみ] ModUi/&Services=サービス ModUi/&SetBeltOfDwarvenKindBeardChances=ドワーフ族のベルト ひげが出現するチャンス +ModUi/&SetElevationCameraMaxHeightBy=仰角カメラの最大高度を設定する ModUi/&SettingsExport=輸出 ModUi/&SettingsHelp=• ホストとして、現在の構成をエクスポートし、エクスポート フォルダを開いてピアと簡単に共有できます。\n• ゲストとして、エクスポート フォルダを開いて、ホストから共有ファイルを貼り付け、[再起動が必要] ModUi/&SettingsLoad=• エクスポートした設定をロードする diff --git a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt index 1862e0a2f8..10e9566d33 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt @@ -42,6 +42,7 @@ ModUi/&Bestiary=동물 우화집 ModUi/&BestowCurseNoConcentrationRequiredForSlotLevel5OrAbove=저주 부여는 L5+ 주문 슬롯으로 시전할 때 집중이 필요하지 않습니다. ModUi/&BlindedConditionDontAllowAttackOfOpportunity=맹인 상태는 기회 공격을 허용하지 않습니다. ModUi/&Blueprints=청사진 +ModUi/&Camera=카메라: ModUi/&Campaigns=캠페인: ModUi/&CampaignsAndLocations=캠페인 및 위치: ModUi/&Category=범주 @@ -64,6 +65,7 @@ ModUi/&CriticalOption1=1: 피해 주사위의 최 ModUi/&CriticalOption2=2: 가능한 가장 높은 결과를 굴리는 피해 주사위를 계속해서 다시 굴려 총 피해량에 추가합니다. ModUi/&CriticalOption3=3: 추가 주사위를 굴리는 대신 공격의 총 피해를 두 배로 늘립니다. [(XdY+Z)*2] ModUi/&Deities=신들 +ModUi/&DisableAllCameraBounds=모든 카메라 경계 비활성화 [카메라 최대 높이 초과] [다시 시작 필요] ModUi/&DisableAutoEquip=인벤토리 내 아이템 자동 장착 비활성화 ModUi/&DisableBarbarianBrutalCritical=+ 또한 레벨 9, 13, 17에서 야만인 잔혹한 치명적을 비활성화합니다. ModUi/&DisableCastSpellPreRequisitesOnModFeats=이 모드에서 제공하는 feats에 대한 시전 주문 전제 조건을 비활성화합니다. [다시 시작 필요] @@ -118,6 +120,7 @@ ModUi/&EnableCheatMenu=치트 메뉴 활성화 ModUi/&EnableCustomPortraits=맞춤 인물 사진 활성화 ModUi/&EnableCustomPortraitsHelp=• 사용자 정의 초상화를 하위 폴더 개인 또는 PreGen 아래에 배치하세요. , 영웅의 이름을 따서 명명됨 [예: Anton, Celia, Nialla 등]\n• PNG 사용 투명 레이어가 있는 256 x 384 픽셀 크기의 이미지 [최상의 결과를 얻으려면 김프 사용] ModUi/&EnableDungeonMakerModdedContent=Dungeon Maker Pro 활성화\n[플랫 룸, 150x150 및 200x200 던전 크기 및 모든 환경의 자산을 혼합하는 장식 없음] +ModUi/&EnableElevationCameraToStayAtPosition=비활성화된 후 고도 카메라를 활성화하여 위치를 유지합니다. ModUi/&EnableEpicPointsAndArray=엄청난 35포인트 구매 시스템 및 배열 활성화 [17,15,13,12,10,8] [다시 시작 필요] ModUi/&EnableExtendedProficienciesPanelDisplay=확장된 숙련도 패널 표시 활성화 [비전 사격, 주입, 기동 및 다용도]\n[performance 캐릭터 점검에 들어갑니다. 사용에 따른 책임은 본인에게 있습니다] ModUi/&EnableFeatsAtEvenLevels=레벨 2, 10, 18에서 재능 선택 활성화 @@ -278,6 +281,7 @@ ModUi/&SelectTabletop=탁상 선택 ModUi/&SenseNormalVisionRangeMultiplier=일반 시야 범위 수정 [전투에서만] ModUi/&Services=서비스 ModUi/&SetBeltOfDwarvenKindBeardChances=드워프족의 허리띠 수염 출현 확률 +ModUi/&SetElevationCameraMaxHeightBy=고도 카메라 최대 높이 설정 ModUi/&SettingsExport=내보내다 ModUi/&SettingsHelp=• 호스트는 현재 구성을 내보내고 내보내기 폴더를 열고 동료와 쉽게 공유할 수 있습니다.\n• 게스트는 내보내기 폴더를 열고 호스트에서 공유 파일을 붙여넣고 에서 로드할 수 있습니다. i>[다시 시작해야 함] ModUi/&SettingsLoad=• 내보낸 설정 로드 diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt index 4eb573a3ae..6a4cf155d7 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt @@ -42,6 +42,7 @@ ModUi/&Bestiary=Bestiário ModUi/&BestowCurseNoConcentrationRequiredForSlotLevel5OrAbove=Conceder Maldição não requer concentração quando lançado com um espaço de feitiço L5+ ModUi/&BlindedConditionDontAllowAttackOfOpportunity=A condição Cego não permite ataque de oportunidade ModUi/&Blueprints=Plantas +ModUi/&Camera=Câmera: ModUi/&Campaigns=Campanhas: ModUi/&CampaignsAndLocations=Campanhas e locais: ModUi/&Category=Categoria @@ -64,6 +65,7 @@ ModUi/&CriticalOption1=1: soma o resultado máximo ModUi/&CriticalOption2=2: continue jogando novamente quaisquer dados de dano que obtiverem o resultado mais alto possível e adicione-o ao dano total ModUi/&CriticalOption3=3: Dobre o dano total do seu ataque em vez de lançar dados adicionais. [(XdY+Z)*2] ModUi/&Deities=Divindades +ModUi/&DisableAllCameraBounds=Desative todos os limites da câmera [ultrapassa a altura máxima da câmera em] [Requer reinicialização] ModUi/&DisableAutoEquip=Desative o equipamento automático de itens no inventário ModUi/&DisableBarbarianBrutalCritical=+ Desative também Bárbaro Brutal Critical nos níveis 9, 13 e 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Desative os pré-requisitos de lançamento de feitiço em talentos fornecidos por este mod [Requer reinicialização] @@ -118,6 +120,7 @@ ModUi/&EnableCheatMenu=Habilite o menu de cheats ModUi/&EnableCustomPortraits=Habilite retratos personalizados ModUi/&EnableCustomPortraitsHelp=• Coloque seus retratos personalizados nas subpastas Pessoal ou Pré-geração , nomeado após o nome do herói [ou seja: Anton, Celia, Nialla, etc.]\n• Use PNG imagens, tamanho 256 x 384 pixels, com uma camada de transparência [use o GIMP para obter melhores resultados] ModUi/&EnableDungeonMakerModdedContent=Ative o Dungeon Maker Pro\n[inclua salas planas, tamanhos de masmorras de 150 x 150 e 200 x 200 e mistura simples de recursos de todos os ambientes] +ModUi/&EnableElevationCameraToStayAtPosition=Ative a câmera de elevação para permanecer na posição após desativada ModUi/&EnableEpicPointsAndArray=Habilite um sistema e matriz de compra épico de 35 pontos [17,15,13,12,10,8] [Requer reinicialização] ModUi/&EnableExtendedProficienciesPanelDisplay=Ative a exibição do painel de proficiências estendidas [Arcane Shots, Infusions, Maneuvers, and Versatilities]\n[desempenho acertar na inspeção do personagem. use por sua conta e risco] ModUi/&EnableFeatsAtEvenLevels=Ative a seleção de talentos nos níveis 2, 10 e 18 @@ -278,6 +281,7 @@ ModUi/&SelectTabletop=Selecione Mesa ModUi/&SenseNormalVisionRangeMultiplier=Modifique o alcance da Visão Normal [apenas em batalhas] ModUi/&Services=Serviços ModUi/&SetBeltOfDwarvenKindBeardChances=Cinto da Raça Anã chance de aparecimento de barba +ModUi/&SetElevationCameraMaxHeightBy=Definir altura máxima da câmera de elevação por ModUi/&SettingsExport=Exportar ModUi/&SettingsHelp=• Como host, você pode exportar sua configuração atual, abrir a pasta de exportações e compartilhar facilmente com seus colegas\n• Como convidado, você pode abrir a pasta de exportações, colar o arquivo compartilhado do host e carregá-lo em [Requer reinicialização] ModUi/&SettingsLoad=• Carregar uma configuração exportada diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index d1f4310aa6..1d10562764 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -42,6 +42,7 @@ ModUi/&Bestiary=Бестиарий ModUi/&BestowCurseNoConcentrationRequiredForSlotLevel5OrAbove=Проклятие не требует концентрации, когда наложено с помощью ячейки заклинания 5-го уровня и выше ModUi/&BlindedConditionDontAllowAttackOfOpportunity=Состояние Ослеплённый не позволяет совершать атаку по возможности ModUi/&Blueprints=Чертежи +ModUi/&Camera=Камера: ModUi/&Campaigns=Кампании: ModUi/&CampaignsAndLocations=Кампании и локации: ModUi/&Category=Категория @@ -64,6 +65,7 @@ ModUi/&CriticalOption1=1: суммирует ма ModUi/&CriticalOption2=2: продолжает кидать кость урона, на которой выпало максимальное значение, и добавляет его к урону ModUi/&CriticalOption3=3: полностью удваивает урон вместо бросания дополнительных костей. [(XdY+Z)*2] ModUi/&Deities=Божества +ModUi/&DisableAllCameraBounds=Отключить все границы камеры [превышает максимальную высоту камеры на] [Требуется перезагрузка] ModUi/&DisableAutoEquip=Отключить автонадевание предметов в инвентаре ModUi/&DisableBarbarianBrutalCritical=+ Также отключить Варварам Сильный критический удар на уровнях 9, 13 и 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Отключить обязательные условия наложения заклинаний для черт из этого мода [Необходим перезапуск] @@ -118,6 +120,7 @@ ModUi/&EnableCheatMenu=Включить меню читов ModUi/&EnableCustomPortraits=Включить пользовательские портреты ModUi/&EnableCustomPortraitsHelp=• Поместите свои пользовательские портреты в подпапки Personal или PreGen с именами, соответствующими именам героев [т.е.: Антон, Селия, Ниалла и т. д.]\n• Используйте изображения размером 256 x 384 пикселей с прозрачным фоном [для достижения наилучших результатов используйте GIMP] ModUi/&EnableDungeonMakerModdedContent=Включить Создатель Подземелий ПРО\n[включает простые комнаты, размеры подземелий 150x150 и 200x200, а также смешивание ассетов из разных наборов окружений без танцев с бубном] +ModUi/&EnableElevationCameraToStayAtPosition=Включить камеру возвышения, чтобы она оставалась на месте после отключения ModUi/&EnableEpicPointsAndArray=Включить эпические варианты поинт-бай системы (35 очков) и массива характеристик [17,15,13,12,10,8] [Необходим перезапуск] ModUi/&EnableExtendedProficienciesPanelDisplay=Включить отображение панели расширенных владений [Магические выстрелы, Инфузии, Приёмы и Универсалии]\n[снижает производительность при просмотре персонажа, используйте на свой страх и риск] ModUi/&EnableFeatsAtEvenLevels=Включить возможность выбора черты на уровнях 2, 10 и 18 @@ -278,6 +281,7 @@ ModUi/&SelectTabletop=Выбрать согласно настольной иг ModUi/&SenseNormalVisionRangeMultiplier=Изменить множитель дальности Нормального зрения [только в бою] ModUi/&Services=Сервисы ModUi/&SetBeltOfDwarvenKindBeardChances=Шанс появления бороды при ношении Пояса Дварфов +ModUi/&SetElevationCameraMaxHeightBy=Установить максимальную высоту камеры возвышения ModUi/&SettingsExport=Экспорт ModUi/&SettingsHelp=• В качестве хоста вы можете экспортировать вашу текущую конфигурацию, открыть папку экспорта и просто поделиться со своими игроками\n• В качестве гостя вы можете открыть папку экспорта, положить туда файл конфигурации от хоста и загрузить его [Необходим перезапуск] ModUi/&SettingsLoad=• Загрузить экспортированные настройки diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt index d976e5bd9d..ec0920e91b 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt @@ -42,6 +42,7 @@ ModUi/&Bestiary=怪物池 ModUi/&BestowCurseNoConcentrationRequiredForSlotLevel5OrAbove=降咒使用5环以上法术位施放时不需要专注 ModUi/&BlindedConditionDontAllowAttackOfOpportunity=被致盲时不允许借机攻击 ModUi/&Blueprints=蓝图 +ModUi/&Camera=相机: ModUi/&Campaigns=战役: ModUi/&CampaignsAndLocations=战役和地点: ModUi/&Category=职业 @@ -64,6 +65,7 @@ ModUi/&CriticalOption1=1:将伤害骰子的最 ModUi/&CriticalOption2=2:继续重新掷出任何可能获得最高结果的伤害骰子,并将其添加到总伤害中 ModUi/&CriticalOption3=3:将攻击的总伤害加倍,而不是掷额外的骰子。[(XdY+Z)*2] ModUi/&Deities=神灵 +ModUi/&DisableAllCameraBounds=禁用所有相机边界 [超出相机最大高度] [需要重启] ModUi/&DisableAutoEquip=禁用自动装备物品栏中的物品 ModUi/&DisableBarbarianBrutalCritical=+ 同时在野蛮人 9、13 和 17 级禁用凶蛮重击 ModUi/&DisableCastSpellPreRequisitesOnModFeats=禁用此模组提供的专长的施法先决条件[需要重新启动] @@ -118,6 +120,7 @@ ModUi/&EnableCheatMenu=启用作弊菜单 ModUi/&EnableCustomPortraits=启用自定义肖像 ModUi/&EnableCustomPortraitsHelp=。将你的自定义肖像放在子文件夹 PersonalPreGen,以英雄名字[即:Anton、Celia、Nialla 等]\n 命名。使用 PNG 图像,大小为 256 x 384 像素,带有透明层[使用 GIMP 以获得最佳效果] ModUi/&EnableDungeonMakerModdedContent=启用地城编辑器Pro\n[包括平坦的房间、150x150 和 200x200 的地牢大小以及简洁的混合来自所有环境的素材] +ModUi/&EnableElevationCameraToStayAtPosition=启用高程相机在禁用后停留在原位置 ModUi/&EnableEpicPointsAndArray=启用史诗级 35 点购点和默认骰[17,15,13,12,10,8][需要重启] ModUi/&EnableExtendedProficienciesPanelDisplay=启用扩展熟练面板显示[奥术射击、注法、战技和多种功能]\n[角色性能提升检查。使用风险自负] ModUi/&EnableFeatsAtEvenLevels=在等级 2、10 和 18 级启用专长选择 @@ -278,6 +281,7 @@ ModUi/&SelectTabletop=选择桌面 ModUi/&SenseNormalVisionRangeMultiplier=修改正常视力范围[仅在战斗中] ModUi/&Services=服务 ModUi/&SetBeltOfDwarvenKindBeardChances=矮人腰带胡须出现几率 +ModUi/&SetElevationCameraMaxHeightBy=设置海拔相机最大高度 ModUi/&SettingsExport=导出 ModUi/&SettingsHelp=•作为主机,你可以导出当前配置,打开导出文件夹并轻松与你的联机者共享\n•作为客机,你可以打开导出文件夹,从主机粘贴分享的设置文件并覆盖设置。[需要重启生效] ModUi/&SettingsLoad=•加载导出的设置 From 5fa0c69f2cf502f37fe7fa6e563cfb17c7fe3b03 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Tue, 16 Jul 2024 21:48:44 -0700 Subject: [PATCH 79/91] update collaterals --- .../UnfinishedBusinessBlueprints/Assets.txt | 15 ++++++++ .../FeatInterception.json | 6 ++-- .../ProficiencyFeatInterception.json | 6 ++-- .../ProficiencyFeatMerciless.json | 30 ++++++++++++++++ .../ProficiencyFeatPolearmExpert.json | 30 ++++++++++++++++ .../ProficiencyFeatRopeItUp.json | 30 ++++++++++++++++ .../ProficiencyFeatSentinel.json | 30 ++++++++++++++++ .../ProficiencyFeatShieldExpert.json | 30 ++++++++++++++++ .../FightingStyleDefinition/Interception.json | 6 ++-- .../FightingStyleDefinition/Merciless.json | 34 +++++++++++++++++++ .../PolearmExpert.json | 34 +++++++++++++++++++ .../FightingStyleDefinition/RopeItUp.json | 34 +++++++++++++++++++ .../FightingStyleDefinition/Sentinel.json | 34 +++++++++++++++++++ .../FightingStyleDefinition/ShieldExpert.json | 34 +++++++++++++++++++ .../Translations/de/Settings-de.txt | 2 +- .../Translations/en/Settings-en.txt | 2 +- .../Translations/es/Settings-es.txt | 2 +- .../Translations/fr/Settings-fr.txt | 2 +- .../Translations/it/Settings-it.txt | 2 +- .../Translations/ja/Settings-ja.txt | 2 +- .../Translations/ko/Settings-ko.txt | 2 +- .../Translations/pt-BR/Settings-pt-BR.txt | 2 +- .../Translations/ru/Settings-ru.txt | 2 +- .../Translations/zh-CN/Settings-zh-CN.txt | 2 +- 24 files changed, 354 insertions(+), 19 deletions(-) create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMerciless.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPolearmExpert.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatRopeItUp.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatSentinel.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatShieldExpert.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Merciless.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/PolearmExpert.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/RopeItUp.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Sentinel.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/ShieldExpert.json diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 7c415b4767..b620f4989e 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -4006,11 +4006,16 @@ ProficiencyFeatInterception FeatureDefinitionProficiency FeatureDefinition f3314 ProficiencyFeatLunger FeatureDefinitionProficiency FeatureDefinition 0da39cf7-2df3-563d-ab18-f8ad7c8507af ProficiencyFeatMediumArmor FeatureDefinitionProficiency FeatureDefinition ed422a81-c767-56b0-a455-ad1c88d88869 ProficiencyFeatMenacing FeatureDefinitionProficiency FeatureDefinition 124a0eba-3658-5337-a675-1de95d55c6ad +ProficiencyFeatMerciless FeatureDefinitionProficiency FeatureDefinition 19a654a6-15c9-57af-a93f-f14f5eed5b71 ProficiencyFeatPickPocket FeatureDefinitionProficiency FeatureDefinition 3b9d1757-103e-57a0-bd7b-b9174e57400f ProficiencyFeatPoisoner FeatureDefinitionProficiency FeatureDefinition 9fcf9187-9d80-5363-b82e-e1f162565cab +ProficiencyFeatPolearmExpert FeatureDefinitionProficiency FeatureDefinition 1c75c89c-a39e-5546-8bba-022b6b9b1271 ProficiencyFeatProtection FeatureDefinitionProficiency FeatureDefinition 3db145d9-c49b-59da-93d2-df3587fd6104 ProficiencyFeatPugilist FeatureDefinitionProficiency FeatureDefinition a213f59d-9130-5168-a0ac-0ae7f54fcdb1 ProficiencyFeatRemarkableTechnique FeatureDefinitionProficiency FeatureDefinition 11294f12-730d-550d-832c-049e9de2ae52 +ProficiencyFeatRopeItUp FeatureDefinitionProficiency FeatureDefinition a85c3f98-b265-5c63-b11f-0e2299e0935c +ProficiencyFeatSentinel FeatureDefinitionProficiency FeatureDefinition 69cd3b17-4a21-5c62-bd20-818e72c83031 +ProficiencyFeatShieldExpert FeatureDefinitionProficiency FeatureDefinition 6fd6a6d7-783e-52d3-8122-7d906ebcb8cd ProficiencyFeatSquatNimblenessAcrobatics FeatureDefinitionProficiency FeatureDefinition bc612781-dacc-53dd-b622-a98ea5294bb8 ProficiencyFeatSquatNimblenessAthletics FeatureDefinitionProficiency FeatureDefinition f09658d1-a649-544e-9467-8ba8e37474a0 ProficiencyFeatStealthy FeatureDefinitionProficiency FeatureDefinition dfb97213-b173-5c3c-910c-1b555599df79 @@ -6805,11 +6810,16 @@ ProficiencyFeatInterception FeatureDefinitionProficiency FeatureDefinitionProfic ProficiencyFeatLunger FeatureDefinitionProficiency FeatureDefinitionProficiency 0da39cf7-2df3-563d-ab18-f8ad7c8507af ProficiencyFeatMediumArmor FeatureDefinitionProficiency FeatureDefinitionProficiency ed422a81-c767-56b0-a455-ad1c88d88869 ProficiencyFeatMenacing FeatureDefinitionProficiency FeatureDefinitionProficiency 124a0eba-3658-5337-a675-1de95d55c6ad +ProficiencyFeatMerciless FeatureDefinitionProficiency FeatureDefinitionProficiency 19a654a6-15c9-57af-a93f-f14f5eed5b71 ProficiencyFeatPickPocket FeatureDefinitionProficiency FeatureDefinitionProficiency 3b9d1757-103e-57a0-bd7b-b9174e57400f ProficiencyFeatPoisoner FeatureDefinitionProficiency FeatureDefinitionProficiency 9fcf9187-9d80-5363-b82e-e1f162565cab +ProficiencyFeatPolearmExpert FeatureDefinitionProficiency FeatureDefinitionProficiency 1c75c89c-a39e-5546-8bba-022b6b9b1271 ProficiencyFeatProtection FeatureDefinitionProficiency FeatureDefinitionProficiency 3db145d9-c49b-59da-93d2-df3587fd6104 ProficiencyFeatPugilist FeatureDefinitionProficiency FeatureDefinitionProficiency a213f59d-9130-5168-a0ac-0ae7f54fcdb1 ProficiencyFeatRemarkableTechnique FeatureDefinitionProficiency FeatureDefinitionProficiency 11294f12-730d-550d-832c-049e9de2ae52 +ProficiencyFeatRopeItUp FeatureDefinitionProficiency FeatureDefinitionProficiency a85c3f98-b265-5c63-b11f-0e2299e0935c +ProficiencyFeatSentinel FeatureDefinitionProficiency FeatureDefinitionProficiency 69cd3b17-4a21-5c62-bd20-818e72c83031 +ProficiencyFeatShieldExpert FeatureDefinitionProficiency FeatureDefinitionProficiency 6fd6a6d7-783e-52d3-8122-7d906ebcb8cd ProficiencyFeatSquatNimblenessAcrobatics FeatureDefinitionProficiency FeatureDefinitionProficiency bc612781-dacc-53dd-b622-a98ea5294bb8 ProficiencyFeatSquatNimblenessAthletics FeatureDefinitionProficiency FeatureDefinitionProficiency f09658d1-a649-544e-9467-8ba8e37474a0 ProficiencyFeatStealthy FeatureDefinitionProficiency FeatureDefinitionProficiency dfb97213-b173-5c3c-910c-1b555599df79 @@ -6942,8 +6952,13 @@ Executioner FightingStyleDefinition FightingStyleDefinition d64dd596-85ae-5bea-9 HandAndAHalf FightingStyleDefinition FightingStyleDefinition 0d3fd48d-ae29-598e-b4d0-5202a9b35d9c Interception FightingStyleDefinition FightingStyleDefinition 047741c7-24ee-597e-b480-8f0d3d881712 Lunger FightingStyleDefinition FightingStyleDefinition b20cff60-4c4a-5c64-818f-c6102e5bfdb5 +Merciless FightingStyleDefinition FightingStyleDefinition 6d7a4f67-8035-55e2-823e-619534487125 +PolearmExpert FightingStyleDefinition FightingStyleDefinition f595a71b-7902-5950-87d4-86abd4b656e9 Pugilist FightingStyleDefinition FightingStyleDefinition 00d288b7-bce4-54f4-903e-00299392f8c6 RemarkableTechnique FightingStyleDefinition FightingStyleDefinition 8cdb592b-9041-52a5-801f-fa620bdd9d0b +RopeItUp FightingStyleDefinition FightingStyleDefinition 5ee8beac-d159-5b23-87d0-77a989d37ce6 +Sentinel FightingStyleDefinition FightingStyleDefinition 55d7318b-c14b-5742-8605-eb774f5444d6 +ShieldExpert FightingStyleDefinition FightingStyleDefinition 51d8b57b-ad17-5f32-a593-2a5a72bd584f Torchbearer FightingStyleDefinition FightingStyleDefinition 6fee9da0-fcf2-5f30-bc96-9d839f770760 ActivatorPlate~Catacombs~MOD GadgetBlueprint GadgetBlueprint 7c4dcc42-484e-5b1e-882f-7015214f0a16 ActivatorPlate~CityValley~MOD GadgetBlueprint GadgetBlueprint b00f93c7-d849-528c-bc1d-92fc924a9438 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatInterception.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatInterception.json index 0b87376cd2..7606ee1064 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatInterception.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinitionWithPrerequisites/FeatInterception.json @@ -21,9 +21,9 @@ "description": "FightingStyle/&InterceptionDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "204f9387786340a42bbbadd75d56cc98", - "m_SubObjectName": "Defense", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "1ff9dc49-7b82-5486-a562-0988e0ed0ed6", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatInterception.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatInterception.json index 68e451127a..6fb6d36771 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatInterception.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatInterception.json @@ -12,9 +12,9 @@ "description": "FightingStyle/&InterceptionDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "204f9387786340a42bbbadd75d56cc98", - "m_SubObjectName": "Defense", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "1ff9dc49-7b82-5486-a562-0988e0ed0ed6", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMerciless.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMerciless.json new file mode 100644 index 0000000000..0e5b89d062 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatMerciless.json @@ -0,0 +1,30 @@ +{ + "$type": "FeatureDefinitionProficiency, Assembly-CSharp", + "proficiencyType": "Feat", + "proficiencies": [ + "FeatMerciless" + ], + "forbiddenItemTags": [], + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Feature/&Emptystring", + "description": "Feature/&Emptystring", + "spriteReference": null, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "19a654a6-15c9-57af-a93f-f14f5eed5b71", + "contentPack": 9999, + "name": "ProficiencyFeatMerciless" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPolearmExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPolearmExpert.json new file mode 100644 index 0000000000..af6b95ecaa --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatPolearmExpert.json @@ -0,0 +1,30 @@ +{ + "$type": "FeatureDefinitionProficiency, Assembly-CSharp", + "proficiencyType": "Feat", + "proficiencies": [ + "FeatPolearmExpert" + ], + "forbiddenItemTags": [], + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Feature/&Emptystring", + "description": "Feature/&Emptystring", + "spriteReference": null, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "1c75c89c-a39e-5546-8bba-022b6b9b1271", + "contentPack": 9999, + "name": "ProficiencyFeatPolearmExpert" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatRopeItUp.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatRopeItUp.json new file mode 100644 index 0000000000..93371bc322 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatRopeItUp.json @@ -0,0 +1,30 @@ +{ + "$type": "FeatureDefinitionProficiency, Assembly-CSharp", + "proficiencyType": "Feat", + "proficiencies": [ + "FeatRopeItUp" + ], + "forbiddenItemTags": [], + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Feature/&Emptystring", + "description": "Feature/&Emptystring", + "spriteReference": null, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "a85c3f98-b265-5c63-b11f-0e2299e0935c", + "contentPack": 9999, + "name": "ProficiencyFeatRopeItUp" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatSentinel.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatSentinel.json new file mode 100644 index 0000000000..9d82a825e0 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatSentinel.json @@ -0,0 +1,30 @@ +{ + "$type": "FeatureDefinitionProficiency, Assembly-CSharp", + "proficiencyType": "Feat", + "proficiencies": [ + "FeatSentinel" + ], + "forbiddenItemTags": [], + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Feature/&Emptystring", + "description": "Feature/&Emptystring", + "spriteReference": null, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "69cd3b17-4a21-5c62-bd20-818e72c83031", + "contentPack": 9999, + "name": "ProficiencyFeatSentinel" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatShieldExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatShieldExpert.json new file mode 100644 index 0000000000..c6ec222bc7 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionProficiency/ProficiencyFeatShieldExpert.json @@ -0,0 +1,30 @@ +{ + "$type": "FeatureDefinitionProficiency, Assembly-CSharp", + "proficiencyType": "Feat", + "proficiencies": [ + "FeatShieldExpert" + ], + "forbiddenItemTags": [], + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Feature/&Emptystring", + "description": "Feature/&Emptystring", + "spriteReference": null, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "6fd6a6d7-783e-52d3-8122-7d906ebcb8cd", + "contentPack": 9999, + "name": "ProficiencyFeatShieldExpert" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Interception.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Interception.json index 035974a0d3..355e6ec541 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Interception.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Interception.json @@ -11,9 +11,9 @@ "description": "FightingStyle/&InterceptionDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "204f9387786340a42bbbadd75d56cc98", - "m_SubObjectName": "Defense", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "1ff9dc49-7b82-5486-a562-0988e0ed0ed6", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Merciless.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Merciless.json new file mode 100644 index 0000000000..a706bf989f --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Merciless.json @@ -0,0 +1,34 @@ +{ + "$type": "FightingStyleDefinition, Assembly-CSharp", + "features": [ + "Definition:ProficiencyFeatMerciless:19a654a6-15c9-57af-a93f-f14f5eed5b71" + ], + "condition": "RangedWeaponAttack", + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "FightingStyle/&MercilessTitle", + "description": "FightingStyle/&MercilessDescription", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "6d7a4f67-8035-55e2-823e-619534487125", + "contentPack": 9999, + "name": "Merciless" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/PolearmExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/PolearmExpert.json new file mode 100644 index 0000000000..477aacc8c4 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/PolearmExpert.json @@ -0,0 +1,34 @@ +{ + "$type": "FightingStyleDefinition, Assembly-CSharp", + "features": [ + "Definition:ProficiencyFeatPolearmExpert:1c75c89c-a39e-5546-8bba-022b6b9b1271" + ], + "condition": "RangedWeaponAttack", + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "FightingStyle/&PolearmExpertTitle", + "description": "FightingStyle/&PolearmExpertDescription", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "f595a71b-7902-5950-87d4-86abd4b656e9", + "contentPack": 9999, + "name": "PolearmExpert" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/RopeItUp.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/RopeItUp.json new file mode 100644 index 0000000000..518f54c18a --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/RopeItUp.json @@ -0,0 +1,34 @@ +{ + "$type": "FightingStyleDefinition, Assembly-CSharp", + "features": [ + "Definition:ProficiencyFeatRopeItUp:a85c3f98-b265-5c63-b11f-0e2299e0935c" + ], + "condition": "RangedWeaponAttack", + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "FightingStyle/&RopeItUpTitle", + "description": "FightingStyle/&RopeItUpDescription", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "5ee8beac-d159-5b23-87d0-77a989d37ce6", + "contentPack": 9999, + "name": "RopeItUp" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Sentinel.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Sentinel.json new file mode 100644 index 0000000000..f64d0b859d --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/Sentinel.json @@ -0,0 +1,34 @@ +{ + "$type": "FightingStyleDefinition, Assembly-CSharp", + "features": [ + "Definition:ProficiencyFeatSentinel:69cd3b17-4a21-5c62-bd20-818e72c83031" + ], + "condition": "RangedWeaponAttack", + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "FightingStyle/&SentinelTitle", + "description": "FightingStyle/&SentinelDescription", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "55d7318b-c14b-5742-8605-eb774f5444d6", + "contentPack": 9999, + "name": "Sentinel" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/ShieldExpert.json b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/ShieldExpert.json new file mode 100644 index 0000000000..1e16517b42 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FightingStyleDefinition/ShieldExpert.json @@ -0,0 +1,34 @@ +{ + "$type": "FightingStyleDefinition, Assembly-CSharp", + "features": [ + "Definition:ProficiencyFeatShieldExpert:6fd6a6d7-783e-52d3-8122-7d906ebcb8cd" + ], + "condition": "RangedWeaponAttack", + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "FightingStyle/&ShieldExpertTitle", + "description": "FightingStyle/&ShieldExpertDescription", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "51d8b57b-ad17-5f32-a593-2a5a72bd584f", + "contentPack": 9999, + "name": "ShieldExpert" +} \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt index e2f0d71b0b..a0d9ecd070 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=Wählen Sie Tischplatte ModUi/&SenseNormalVisionRangeMultiplier=Ändern Sie den Bereich der Normalen Sicht [nur in Schlachten] ModUi/&Services=Dienstleistungen ModUi/&SetBeltOfDwarvenKindBeardChances=Gürtel der Zwergen Bart-Erscheinungschancen -ModUi/&SetElevationCameraMaxHeightBy=Maximale Höhe der Höhenkamera einstellen um +ModUi/&SetElevationCameraMaxHeightBy=Maximale Höhe der Höhenkamera erhöhen um ModUi/&SettingsExport=Export ModUi/&SettingsHelp=• Als Host können Sie Ihre aktuelle Konfiguration exportieren, den Exportordner öffnen und ganz einfach mit Ihren Kollegen teilen.\n• Als Gast können Sie den Exportordner öffnen, die freigegebene Datei vom Host einfügen und über [Neustart erforderlich] ModUi/&SettingsLoad=• Laden Sie eine exportierte Einstellung diff --git a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt index 2f0b21d708..ac288adc82 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=Select Tabletop ModUi/&SenseNormalVisionRangeMultiplier=Modify Normal Vision range [only in battles] ModUi/&Services=Services ModUi/&SetBeltOfDwarvenKindBeardChances=Belt of Dwarvenkind beard appearing chances -ModUi/&SetElevationCameraMaxHeightBy=Set elevation camera max height by +ModUi/&SetElevationCameraMaxHeightBy=Increase elevation camera max height by ModUi/&SettingsExport=Export ModUi/&SettingsHelp=• As a host you can export your current configuration, open the exports folder and easily share with your peers\n• As a guest you can open the exports folder, paste the shared file from the host and load it over [Requires Restart] ModUi/&SettingsLoad=• Load an exported setting diff --git a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt index 29d7e4dacc..6c17bbf769 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=Seleccionar tablero ModUi/&SenseNormalVisionRangeMultiplier=Modificar el rango de Visión normal [solo en batallas] ModUi/&Services=Servicios ModUi/&SetBeltOfDwarvenKindBeardChances=Cinturón de los enanos Probabilidades de aparición de barba -ModUi/&SetElevationCameraMaxHeightBy=Establecer la altura máxima de la cámara de elevación por +ModUi/&SetElevationCameraMaxHeightBy=Aumentar la altura máxima de la cámara de elevación en ModUi/&SettingsExport=Exportar ModUi/&SettingsHelp=• Como anfitrión, puedes exportar tu configuración actual, abrir la carpeta de exportaciones y compartirla fácilmente con tus compañeros.\n• Como invitado, puedes abrir la carpeta de exportaciones, pegar el archivo compartido desde el anfitrión y cargarlo <. i>[Requiere reinicio] ModUi/&SettingsLoad=• Cargar una configuración exportada diff --git a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt index 27c1292d06..d5146b622d 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=Sélectionnez une table ModUi/&SenseNormalVisionRangeMultiplier=Modifier la portée de la Vision normale [uniquement en bataille] ModUi/&Services=Prestations de service ModUi/&SetBeltOfDwarvenKindBeardChances=Ceinture des nains chances d'apparition de la barbe -ModUi/&SetElevationCameraMaxHeightBy=Définir la hauteur maximale de la caméra d'élévation par +ModUi/&SetElevationCameraMaxHeightBy=Augmenter la hauteur maximale de la caméra d'élévation de ModUi/&SettingsExport=Exporter ModUi/&SettingsHelp=• En tant qu'hôte, vous pouvez exporter votre configuration actuelle, ouvrir le dossier des exportations et la partager facilement avec vos pairs.\n• En tant qu'invité, vous pouvez ouvrir le dossier des exportations, coller le fichier partagé depuis l'hôte et le charger sur [Redémarrage requis] ModUi/&SettingsLoad=• Charger un paramètre exporté diff --git a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt index abfab3cce6..f9bd322ee8 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=Seleziona Da tavolo ModUi/&SenseNormalVisionRangeMultiplier=Modifica il raggio Visione normale [solo nelle battaglie] ModUi/&Services=Servizi ModUi/&SetBeltOfDwarvenKindBeardChances=Cintura della razza nanica possibilità di apparizione della barba -ModUi/&SetElevationCameraMaxHeightBy=Imposta l'altezza massima della telecamera di elevazione di +ModUi/&SetElevationCameraMaxHeightBy=Aumenta l'altezza massima della telecamera di elevazione di ModUi/&SettingsExport=Esportare ModUi/&SettingsHelp=• Come host puoi esportare la tua configurazione attuale, aprire la cartella delle esportazioni e condividerla facilmente con i tuoi colleghi\n• Come ospite puoi aprire la cartella delle esportazioni, incollare il file condiviso dall'host e caricarlo [Richiede il riavvio] ModUi/&SettingsLoad=• Caricare un'impostazione esportata diff --git a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt index dd8bdbd1de..30b275dec6 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=テーブルトップを選択してください ModUi/&SenseNormalVisionRangeMultiplier=通常の視力範囲を変更[戦闘時のみ] ModUi/&Services=サービス ModUi/&SetBeltOfDwarvenKindBeardChances=ドワーフ族のベルト ひげが出現するチャンス -ModUi/&SetElevationCameraMaxHeightBy=仰角カメラの最大高度を設定する +ModUi/&SetElevationCameraMaxHeightBy=仰角カメラの最大高度を増加 ModUi/&SettingsExport=輸出 ModUi/&SettingsHelp=• ホストとして、現在の構成をエクスポートし、エクスポート フォルダを開いてピアと簡単に共有できます。\n• ゲストとして、エクスポート フォルダを開いて、ホストから共有ファイルを貼り付け、[再起動が必要] ModUi/&SettingsLoad=• エクスポートした設定をロードする diff --git a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt index 10e9566d33..ff05fceb96 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=탁상 선택 ModUi/&SenseNormalVisionRangeMultiplier=일반 시야 범위 수정 [전투에서만] ModUi/&Services=서비스 ModUi/&SetBeltOfDwarvenKindBeardChances=드워프족의 허리띠 수염 출현 확률 -ModUi/&SetElevationCameraMaxHeightBy=고도 카메라 최대 높이 설정 +ModUi/&SetElevationCameraMaxHeightBy=고도 카메라 최대 높이 증가 ModUi/&SettingsExport=내보내다 ModUi/&SettingsHelp=• 호스트는 현재 구성을 내보내고 내보내기 폴더를 열고 동료와 쉽게 공유할 수 있습니다.\n• 게스트는 내보내기 폴더를 열고 호스트에서 공유 파일을 붙여넣고 에서 로드할 수 있습니다. i>[다시 시작해야 함] ModUi/&SettingsLoad=• 내보낸 설정 로드 diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt index 6a4cf155d7..1d67d902cd 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=Selecione Mesa ModUi/&SenseNormalVisionRangeMultiplier=Modifique o alcance da Visão Normal [apenas em batalhas] ModUi/&Services=Serviços ModUi/&SetBeltOfDwarvenKindBeardChances=Cinto da Raça Anã chance de aparecimento de barba -ModUi/&SetElevationCameraMaxHeightBy=Definir altura máxima da câmera de elevação por +ModUi/&SetElevationCameraMaxHeightBy=Aumentar a altura máxima da câmera de elevação em ModUi/&SettingsExport=Exportar ModUi/&SettingsHelp=• Como host, você pode exportar sua configuração atual, abrir a pasta de exportações e compartilhar facilmente com seus colegas\n• Como convidado, você pode abrir a pasta de exportações, colar o arquivo compartilhado do host e carregá-lo em [Requer reinicialização] ModUi/&SettingsLoad=• Carregar uma configuração exportada diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index 1d10562764..f517fc8446 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=Выбрать согласно настольной иг ModUi/&SenseNormalVisionRangeMultiplier=Изменить множитель дальности Нормального зрения [только в бою] ModUi/&Services=Сервисы ModUi/&SetBeltOfDwarvenKindBeardChances=Шанс появления бороды при ношении Пояса Дварфов -ModUi/&SetElevationCameraMaxHeightBy=Установить максимальную высоту камеры возвышения +ModUi/&SetElevationCameraMaxHeightBy=Увеличить максимальную высоту камеры угла наклона ModUi/&SettingsExport=Экспорт ModUi/&SettingsHelp=• В качестве хоста вы можете экспортировать вашу текущую конфигурацию, открыть папку экспорта и просто поделиться со своими игроками\n• В качестве гостя вы можете открыть папку экспорта, положить туда файл конфигурации от хоста и загрузить его [Необходим перезапуск] ModUi/&SettingsLoad=• Загрузить экспортированные настройки diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt index ec0920e91b..c51c538ceb 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=选择桌面 ModUi/&SenseNormalVisionRangeMultiplier=修改正常视力范围[仅在战斗中] ModUi/&Services=服务 ModUi/&SetBeltOfDwarvenKindBeardChances=矮人腰带胡须出现几率 -ModUi/&SetElevationCameraMaxHeightBy=设置海拔相机最大高度 +ModUi/&SetElevationCameraMaxHeightBy=将相机最大高度增加 ModUi/&SettingsExport=导出 ModUi/&SettingsHelp=•作为主机,你可以导出当前配置,打开导出文件夹并轻松与你的联机者共享\n•作为客机,你可以打开导出文件夹,从主机粘贴分享的设置文件并覆盖设置。[需要重启生效] ModUi/&SettingsLoad=•加载导出的设置 From 7b218603d650ab0c6518f7eb4718b8305604d85e Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Tue, 16 Jul 2024 21:49:07 -0700 Subject: [PATCH 80/91] keep FS compatibility to avoid a RESPEC on v20 --- .../Models/FightingStyleContext.cs | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs b/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs index e8d609c034..f0e41963f2 100644 --- a/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs +++ b/SolastaUnfinishedBusiness/Models/FightingStyleContext.cs @@ -2,6 +2,7 @@ using System.Linq; using JetBrains.Annotations; using SolastaUnfinishedBusiness.Builders; +using SolastaUnfinishedBusiness.Builders.Features; using SolastaUnfinishedBusiness.Feats; using SolastaUnfinishedBusiness.FightingStyles; @@ -9,6 +10,15 @@ namespace SolastaUnfinishedBusiness.Models; internal static class FightingStyleContext { + internal static readonly List DemotedFightingStyles = + [ + "Merciless", + "PolearmExpert", + "RopeItUp", + "Sentinel", + "ShieldExpert" + ]; + private static Dictionary> FightingStylesChoiceList { get; } = []; @@ -16,7 +26,7 @@ private static Dictionary DemotedFightingStyles = - [ - "Merciless", - "PolearmExpert", - "RopeItUp", - "Sentinel", - "ShieldExpert" - ]; - private static void KeepBackwardCompatibility() + private static void KeepDemotedFightingStylesBackwardCompatibility() { - - - foreach (var fs in DemotedFightingStyles - .Select(name => - FightingStyleBuilder - .Create(name) - .SetGuiPresentationNoContent(true) - .AddToDB())) + foreach (var name in DemotedFightingStyles) { - fs.contentPack = GamingPlatformDefinitions.ContentPack.BaseGame; + _ = FightingStyleBuilder.Create(name) + .SetGuiPresentation(Category.FightingStyle, hidden: true) + .SetFeatures(FeatureDefinitionProficiencyBuilder.Create($"ProficiencyFeat{name}") + .SetProficiencies(RuleDefinitions.ProficiencyType.Feat, $"Feat{name}") + .AddToDB()) + .AddToDB(); } } From 5f9bba003908135ca897acb4580d2cd5808e4b66 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Tue, 16 Jul 2024 21:50:16 -0700 Subject: [PATCH 81/91] fix Alert feat not working on overland map encounters --- .../ChangelogHistory.txt | 1 + SolastaUnfinishedBusiness/Feats/OtherFeats.cs | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 02959c7bc8..68d3e48ec7 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -5,6 +5,7 @@ - added Interface > Game UI > 'Enable elevation camera to stay at pos after disabled' - added Interface > Game UI > 'Increase elevation camera max height by X cells' - added variant spell points rules, and Sickening Radiance spell +- fixed Alert feat not working on overland map encounters - fixed Arcane Archer arcane shot soft lock when enemy already dead - fixed Export Hero and RESPEC auras, infusions, etc. termination - fixed cast main action leaving cast bonus action available diff --git a/SolastaUnfinishedBusiness/Feats/OtherFeats.cs b/SolastaUnfinishedBusiness/Feats/OtherFeats.cs index 1c445fb3ee..94897b9710 100644 --- a/SolastaUnfinishedBusiness/Feats/OtherFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/OtherFeats.cs @@ -1267,9 +1267,27 @@ private static FeatDefinition BuildAthlete(List feats) .SetGuiPresentationNoContent(true) .SetConditionAffinityType(ConditionAffinityType.Immunity) .SetConditionType(ConditionDefinitions.ConditionSurprised) + .AddCustomSubFeatures(new OnCharacterBattleStartedFeatAlert()) .AddToDB()) .AddToDB(); + private sealed class OnCharacterBattleStartedFeatAlert : ICharacterBattleStartedListener + { + public void OnCharacterBattleStarted(GameLocationCharacter locationCharacter, bool surprise) + { + var rulesetCharacter = locationCharacter.RulesetCharacter; + + if (!surprise || + !rulesetCharacter.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagCombat, ConditionSurprised, out var activeCondition)) + { + return; + } + + rulesetCharacter.RemoveCondition(activeCondition); + } + } + #endregion #region Chef @@ -1535,7 +1553,8 @@ public bool CanModifyRoll( private static FeatDefinition BuildFightingInitiate() { - GroupFeats.FeatGroupFightingStyle.AddFeats(DatabaseRepository + GroupFeats.FeatGroupFightingStyle.AddFeats( + DatabaseRepository .GetDatabase() .Where(x => !FightingStyleContext.DemotedFightingStyles.Contains(x.Name)) .Select(BuildFightingStyleFeat) From 43ab21e9388930c632cf83dec18d92bb97b751b8 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Tue, 16 Jul 2024 22:09:21 -0700 Subject: [PATCH 82/91] minor tweaks --- SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs | 7 ------- SolastaUnfinishedBusiness/ChangelogHistory.txt | 6 +++--- SolastaUnfinishedBusiness/Spells/SpellBuildersLevel08.cs | 2 +- SolastaUnfinishedBusiness/Subclasses/DomainNature.cs | 8 ++------ 4 files changed, 6 insertions(+), 17 deletions(-) diff --git a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs index f5b1342116..bd73ada085 100644 --- a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs +++ b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs @@ -127,8 +127,6 @@ internal static class CharacterClassDefinitions internal static class CharacterFamilyDefinitions { - internal static CharacterFamilyDefinition Beast { get; } = GetDefinition("Beast"); - internal static CharacterFamilyDefinition Construct { get; } = GetDefinition("Construct"); @@ -138,8 +136,6 @@ internal static class CharacterFamilyDefinitions internal static CharacterFamilyDefinition Humanoid { get; } = GetDefinition("Humanoid"); - internal static CharacterFamilyDefinition Plant { get; } = GetDefinition("Plant"); - internal static CharacterFamilyDefinition Undead { get; } = GetDefinition("Undead"); } @@ -304,9 +300,6 @@ internal static class CharacterSubclassDefinitions internal static class ConditionDefinitions { - internal static ConditionDefinition ConditionDummy { get; } = - GetDefinition("ConditionDummy"); - internal static ConditionDefinition ConditionFeebleMinded { get; } = GetDefinition("ConditionFeebleMinded"); diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 68d3e48ec7..3e574dd4e5 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -2,13 +2,13 @@ - added Interface > Game UI > 'Camera never moves during enemy turns' - added Interface > Game UI > 'Disable all camera bounds' -- added Interface > Game UI > 'Enable elevation camera to stay at pos after disabled' +- added Interface > Game UI > 'Enable elevation camera to stay at position' - added Interface > Game UI > 'Increase elevation camera max height by X cells' -- added variant spell points rules, and Sickening Radiance spell +- added Sickening Radiance spell, and variant spell points rules - fixed Alert feat not working on overland map encounters - fixed Arcane Archer arcane shot soft lock when enemy already dead +- fixed cast main action leaving available cast bonus action behind - fixed Export Hero and RESPEC auras, infusions, etc. termination -- fixed cast main action leaving cast bonus action available - fixed Ring of Knifes spell follow up power to-hit modifier - fixed selection on Field Manipulator displacement, and Scatter spell diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel08.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel08.cs index e91e4ab89f..62209e8a7c 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel08.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel08.cs @@ -155,7 +155,7 @@ public IEnumerator OnPowerOrSpellInitiatedByMe(CharacterActionMagicEffect action continue; } - if (rulesetCharacterMonster.CharacterFamily == CharacterFamilyDefinitions.Plant.Name || + if (rulesetCharacterMonster.CharacterFamily == "Plant" || rulesetCharacterMonster.MonsterDefinition == MonsterDefinitions.Ice_Elemental || rulesetCharacterMonster.MonsterDefinition == CircleOfTheNight.WildShapeWaterElemental) { diff --git a/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs b/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs index 1a9cdaf742..82f5d02280 100644 --- a/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs +++ b/SolastaUnfinishedBusiness/Subclasses/DomainNature.cs @@ -124,9 +124,7 @@ public DomainNature() .Create() .SetDurationData(DurationType.Minute, 1) .SetTargetingData(Side.Enemy, RangeType.Self, 0, TargetType.Sphere, 6) - .SetRestrictedCreatureFamilies( - CharacterFamilyDefinitions.Beast.Name, - CharacterFamilyDefinitions.Plant.Name) + .SetRestrictedCreatureFamilies("Beast", "Plant") .SetSavingThrowData( false, AttributeDefinitions.Wisdom, @@ -222,9 +220,7 @@ public DomainNature() .Create() .SetDurationData(DurationType.Minute, 1) .SetTargetingData(Side.Enemy, RangeType.Self, 0, TargetType.Sphere, 6) - .SetRestrictedCreatureFamilies( - CharacterFamilyDefinitions.Beast.Name, - CharacterFamilyDefinitions.Plant.Name) + .SetRestrictedCreatureFamilies("Beast", "Plant") .SetSavingThrowData( false, AttributeDefinitions.Wisdom, From ba0de93841741a29bac14ba043e1559f88856718 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Tue, 16 Jul 2024 22:09:42 -0700 Subject: [PATCH 83/91] no need to reference dummy condition --- ...werPathOfTheWildMagicUnstableBacklash.json | 34 ++----------------- .../Subclasses/PathOfTheWildMagic.cs | 4 +-- 2 files changed, 4 insertions(+), 34 deletions(-) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheWildMagicUnstableBacklash.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheWildMagicUnstableBacklash.json index 0637d131ca..c6cdeaad82 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheWildMagicUnstableBacklash.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPathOfTheWildMagicUnstableBacklash.json @@ -60,35 +60,7 @@ "effectPoolAmount": 60, "effectApplication": "All", "effectFormFilters": [], - "effectForms": [ - { - "$type": "EffectForm, Assembly-CSharp", - "formType": "Condition", - "addBonusMode": "None", - "applyLevel": "No", - "levelType": "ClassLevel", - "levelMultiplier": 1, - "diceByLevelTable": [], - "createdByCharacter": true, - "createdByCondition": false, - "hasSavingThrow": false, - "savingThrowAffinity": "None", - "dcModifier": 0, - "canSaveToCancel": false, - "saveOccurence": "EndOfTurn", - "conditionForm": { - "$type": "ConditionForm, Assembly-CSharp", - "conditionDefinitionName": "ConditionDummy", - "conditionDefinition": "Definition:ConditionDummy:dd1143496d6a85245bc154674f730e7d", - "operation": "Add", - "conditionsList": [], - "applyToSelf": false, - "forceOnSelf": false - }, - "hasFilterId": false, - "filterId": 0 - } - ], + "effectForms": [], "specialFormsDescription": "", "effectAdvancement": { "$type": "EffectAdvancement, Assembly-CSharp", @@ -107,7 +79,7 @@ "alteredDuration": "None" }, "speedType": "Instant", - "speedParameter": -1.0, + "speedParameter": 10.0, "offsetImpactTimeBasedOnDistance": false, "offsetImpactTimeBasedOnDistanceFactor": 0.1, "offsetImpactTimePerTarget": 0.0, @@ -127,7 +99,7 @@ }, "casterQuickSpellParticleReference": { "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "81560ac3813217d4d9fd281d5e73c234", + "m_AssetGUID": "", "m_SubObjectName": "", "m_SubObjectType": "" }, diff --git a/SolastaUnfinishedBusiness/Subclasses/PathOfTheWildMagic.cs b/SolastaUnfinishedBusiness/Subclasses/PathOfTheWildMagic.cs index 6b09df9427..d725054f35 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PathOfTheWildMagic.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PathOfTheWildMagic.cs @@ -1322,10 +1322,8 @@ private static FeatureDefinitionPower BuildFeatureUnstableBacklash(WildSurgeHand .SetEffectDescription( EffectDescriptionBuilder .Create() - .SetTargetingData(Side.Enemy, RangeType.Distance, 24, TargetType.Individuals) - .UseQuickAnimations() .SetDurationData(DurationType.Round) - .SetEffectForms(EffectFormBuilder.ConditionForm(ConditionDefinitions.ConditionDummy)) + .SetTargetingData(Side.Enemy, RangeType.Distance, 24, TargetType.Individuals) .Build()) .AddCustomSubFeatures(new UnstableBackslashHandler(wildSurgeHandler)) .AddToDB(); From 0bdf03c68d36090022d157b04ba712805d504745 Mon Sep 17 00:00:00 2001 From: Dovel Date: Thu, 18 Jul 2024 01:07:48 +0300 Subject: [PATCH 84/91] update russian translation --- .../Translations/ru/Settings-ru.txt | 8 +++---- .../Translations/ru/Spells/Spells04-ru.txt | 22 +++++++++---------- .../ru/SubClasses/MartialTactician-ru.txt | 4 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index f517fc8446..caf19b110d 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1: суммирует ма ModUi/&CriticalOption2=2: продолжает кидать кость урона, на которой выпало максимальное значение, и добавляет его к урону ModUi/&CriticalOption3=3: полностью удваивает урон вместо бросания дополнительных костей. [(XdY+Z)*2] ModUi/&Deities=Божества -ModUi/&DisableAllCameraBounds=Отключить все границы камеры [превышает максимальную высоту камеры на] [Требуется перезагрузка] +ModUi/&DisableAllCameraBounds=Отключить все ограничения камеры [позволяет превысить максимальную высоту камеры на] [Необходим перезапуск] ModUi/&DisableAutoEquip=Отключить автонадевание предметов в инвентаре ModUi/&DisableBarbarianBrutalCritical=+ Также отключить Варварам Сильный критический удар на уровнях 9, 13 и 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Отключить обязательные условия наложения заклинаний для черт из этого мода [Необходим перезапуск] @@ -120,7 +120,7 @@ ModUi/&EnableCheatMenu=Включить меню читов ModUi/&EnableCustomPortraits=Включить пользовательские портреты ModUi/&EnableCustomPortraitsHelp=• Поместите свои пользовательские портреты в подпапки Personal или PreGen с именами, соответствующими именам героев [т.е.: Антон, Селия, Ниалла и т. д.]\n• Используйте изображения размером 256 x 384 пикселей с прозрачным фоном [для достижения наилучших результатов используйте GIMP] ModUi/&EnableDungeonMakerModdedContent=Включить Создатель Подземелий ПРО\n[включает простые комнаты, размеры подземелий 150x150 и 200x200, а также смешивание ассетов из разных наборов окружений без танцев с бубном] -ModUi/&EnableElevationCameraToStayAtPosition=Включить камеру возвышения, чтобы она оставалась на месте после отключения +ModUi/&EnableElevationCameraToStayAtPosition=Включить сохранение позиции уровня камеры после отключения ModUi/&EnableEpicPointsAndArray=Включить эпические варианты поинт-бай системы (35 очков) и массива характеристик [17,15,13,12,10,8] [Необходим перезапуск] ModUi/&EnableExtendedProficienciesPanelDisplay=Включить отображение панели расширенных владений [Магические выстрелы, Инфузии, Приёмы и Универсалии]\n[снижает производительность при просмотре персонажа, используйте на свой страх и риск] ModUi/&EnableFeatsAtEvenLevels=Включить возможность выбора черты на уровнях 2, 10 и 18 @@ -236,7 +236,7 @@ ModUi/&Monsters=Монстры: ModUi/&MovementGridWidthModifier=Увеличить ширину сетки передвижения на множитель [%] ModUi/&MulticlassKeyHelp=Нажатие с SHIFT по заклинанию переключает тип затрачиваемой ячейки по умолчанию\n[Колдун тратит белые ячейки заклинаний, а остальные - зелёные ячейки колдуна] ModUi/&MultiplyTheExperienceGainedBy=Множитель получаемого опыта [в %] -ModUi/&NeverMoveCameraOnEnemyTurn=+ Камера никогда не двигается во время хода противника +ModUi/&NeverMoveCameraOnEnemyTurn=+ Неподвижная камера во время хода противника ModUi/&NoExperienceOnLevelUp=Отключить систему повышения уровня на основе полученного опыта ModUi/&OfferAdditionalLoreFriendlyNames=Предлагать при создании персонажа дополнительные имена, подходящие по истории ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Отменить преимущество/помеху для ослеплённых, невидимых и видимых [полезно в сочетании с официальными правилами преимущества/помехи] @@ -281,7 +281,7 @@ ModUi/&SelectTabletop=Выбрать согласно настольной иг ModUi/&SenseNormalVisionRangeMultiplier=Изменить множитель дальности Нормального зрения [только в бою] ModUi/&Services=Сервисы ModUi/&SetBeltOfDwarvenKindBeardChances=Шанс появления бороды при ношении Пояса Дварфов -ModUi/&SetElevationCameraMaxHeightBy=Увеличить максимальную высоту камеры угла наклона +ModUi/&SetElevationCameraMaxHeightBy=Увеличить максимальную высоту уровня камеры на ModUi/&SettingsExport=Экспорт ModUi/&SettingsHelp=• В качестве хоста вы можете экспортировать вашу текущую конфигурацию, открыть папку экспорта и просто поделиться со своими игроками\n• В качестве гостя вы можете открыть папку экспорта, положить туда файл конфигурации от хоста и загрузить его [Необходим перезапуск] ModUi/&SettingsLoad=• Загрузить экспортированные настройки diff --git a/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt index f7b5f1a8ac..bbb56cfa7d 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Spells/Spells04-ru.txt @@ -13,17 +13,17 @@ Condition/&ConditionElementalBaneTitle=Проклятье стихий: {0} Condition/&ConditionIrresistiblePerformanceDescription=Вы не можете выполнять никаких действий, требующих использования рук или рта, но в остальном можете действовать нормально. Condition/&ConditionIrresistiblePerformanceTitle=Неотразимое исполнение Condition/&ConditionPsionicBlastTitle=Затуманенный разум -Condition/&ConditionSickeningRadianceDescription=Вы излучаете тусклый свет в радиусе 5 футов. Этот свет лишает вас возможности быть невидимым. -Condition/&ConditionSickeningRadianceExhausted1Description=У вас есть помеха при проверках способностей. -Condition/&ConditionSickeningRadianceExhausted1Title=Измученный 1 -Condition/&ConditionSickeningRadianceExhausted2Description=Ваша скорость уменьшается вдвое, и вы получаете помеху при проверках способностей. -Condition/&ConditionSickeningRadianceExhausted2Title=Измученный 2 -Condition/&ConditionSickeningRadianceExhausted3Description=Ваша скорость уменьшается вдвое, и вы получаете помеху при проверках характеристик, бросках атаки и спасбросках. -Condition/&ConditionSickeningRadianceExhausted3Title=Измученный 3 -Condition/&ConditionSickeningRadianceExhausted4Description=Ваша скорость и максимальное количество очков жизни уменьшаются вдвое, и вы получаете помеху при проверках характеристик, бросках атаки и спасбросках. -Condition/&ConditionSickeningRadianceExhausted4Title=Измученный 4 -Condition/&ConditionSickeningRadianceExhausted5Description=Ваша скорость равна 0, максимальное количество очков здоровья уменьшено вдвое, и вы получаете помеху при проверках способностей, бросках атаки и спасбросках. -Condition/&ConditionSickeningRadianceExhausted5Title=Устал 5 +Condition/&ConditionSickeningRadianceDescription=Вы испускаете тусклый зеленоватый свет в радиусе 5 футов. Этот свет делает невозможным получение преимуществ от невидимости. +Condition/&ConditionSickeningRadianceExhausted1Description=Вы совершаете с помехой проверки характеристик. +Condition/&ConditionSickeningRadianceExhausted1Title=Истощён 1 +Condition/&ConditionSickeningRadianceExhausted2Description=Ваша скорость уменьшается вдвое, и вы совершаете с помехой проверки характеристик. +Condition/&ConditionSickeningRadianceExhausted2Title=Истощён 2 +Condition/&ConditionSickeningRadianceExhausted3Description=Ваша скорость уменьшается вдвое, и вы совершаете с помехой проверки характеристик, броски атаки и спасброски. +Condition/&ConditionSickeningRadianceExhausted3Title=Истощён 3 +Condition/&ConditionSickeningRadianceExhausted4Description=Ваша скорость и максимальные хиты уменьшаются вдвое, и вы совершаете с помехой проверки характеристик, броски атаки и спасброски. +Condition/&ConditionSickeningRadianceExhausted4Title=Истощён 4 +Condition/&ConditionSickeningRadianceExhausted5Description=Ваша скорость равна 0, максимальные хиты уменьшены вдвое, и вы совершаете с помехой проверки характеристик, броски атаки и спасброски. +Condition/&ConditionSickeningRadianceExhausted5Title=Истощён 5 Condition/&ConditionSickeningRadianceTitle=Болезненное сияние Condition/&ConditionStaggeringSmiteEnemyDescription=Вас поразили психическим уроном. Condition/&ConditionStaggeringSmiteEnemyTitle=Оглушающая кара diff --git a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/MartialTactician-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/MartialTactician-ru.txt index 638b5a9241..fbd779f97c 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/SubClasses/MartialTactician-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/SubClasses/MartialTactician-ru.txt @@ -12,8 +12,8 @@ Feature/&FeatureSetTacticianHonedCraftDescription=Вы получаете ком Feature/&FeatureSetTacticianHonedCraftTitle=Отточенное ремесло Feature/&FeatureSetTacticianSharpMindDescription=Вы получаете владение одним навыком по вашему выбору. Feature/&FeatureSetTacticianSharpMindTitle=Острый ум -Feature/&FeatureSetTacticianTacticalAwarenessDescription=Во время боя вы восстанавливаете кубик превосходства в начале каждого своего хода. -Feature/&FeatureSetTacticianTacticalAwarenessTitle=Мастер войны +Feature/&FeatureSetTacticianTacticalAwarenessDescription=Во время боя вы восстанавливаете кость превосходства в начале каждого своего хода. +Feature/&FeatureSetTacticianTacticalAwarenessTitle=Мастер боевых действий Feature/&FeatureTacticianGambitDieSizeD10Description=Ваша кость превосходства улучшена до D10. Feature/&FeatureTacticianGambitDieSizeD10Title=Размер кости превосходства (d10) Feature/&FeatureTacticianGambitDieSizeD12Description=Ваша кость превосходства улучшена до D12. From 25ff86999f8356735633850258bd2ffeda4ea449 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Wed, 17 Jul 2024 15:37:47 -0700 Subject: [PATCH 85/91] tweak camera settings --- .../Patches/CameraModeManualPatcher.cs | 7 ++----- SolastaUnfinishedBusiness/Translations/de/Settings-de.txt | 2 +- SolastaUnfinishedBusiness/Translations/en/Settings-en.txt | 2 +- SolastaUnfinishedBusiness/Translations/es/Settings-es.txt | 2 +- SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt | 2 +- SolastaUnfinishedBusiness/Translations/it/Settings-it.txt | 2 +- SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt | 2 +- SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt | 2 +- .../Translations/pt-BR/Settings-pt-BR.txt | 2 +- SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt | 2 +- .../Translations/zh-CN/Settings-zh-CN.txt | 2 +- 11 files changed, 12 insertions(+), 15 deletions(-) diff --git a/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs b/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs index c811522bb6..3ef71473f3 100644 --- a/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs @@ -38,17 +38,14 @@ public static void Prefix(CameraModeManual __instance) public static class TargetBounds_Getter_Patch { [UsedImplicitly] - public static void Prefix( - CameraModeManual __instance, - ref Bounds bounds, - CameraController.CameraBoundsSource source) + public static void Prefix(ref Bounds bounds, CameraController.CameraBoundsSource source) { _cameraBoundsSource = source; if (Main.Settings.SetElevationCameraMaxHeightBy != 0) { bounds = new Bounds( - __instance.targetBounds.center, + bounds.center, new Vector3( bounds.size.x, bounds.size.y + Main.Settings.SetElevationCameraMaxHeightBy, diff --git a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt index a0d9ecd070..1793eca453 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1: Summiere das maximale Er ModUi/&CriticalOption2=2: Wirf alle Schadenswürfel, die das höchstmögliche Ergebnis erzielen, erneut und addiere es zum Gesamtschaden ModUi/&CriticalOption3=3: Verdoppeln Sie den Gesamtschaden Ihres Angriffs, anstatt zusätzliche Würfel zu werfen. [(XdY+Z)*2] ModUi/&Deities=Gottheiten -ModUi/&DisableAllCameraBounds=Alle Kamerabegrenzungen deaktivieren [übertrifft die maximale Kamerahöhe um] [Neustart erforderlich] +ModUi/&DisableAllCameraBounds=Deaktivieren Sie alle Kamerabegrenzungen [anstelle eines rechteckigen Felds mit 4 Zellen Höhe] ModUi/&DisableAutoEquip=Deaktivieren Sie die automatische Ausrüstung von Gegenständen im Inventar ModUi/&DisableBarbarianBrutalCritical=+ Deaktivieren Sie außerdem Barbar Brutal Critical auf den Stufen 9, 13 und 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Deaktivieren Sie die Zaubervoraussetzungen für Talente, die von diesem Mod bereitgestellt werden [Neustart erforderlich] diff --git a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt index ac288adc82..6b206ce7f6 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1: sum the maximum result f ModUi/&CriticalOption2=2: keep re-rolling any damage dice that roll the highest possible result and add it to the total damage ModUi/&CriticalOption3=3: Double your attack's total damage instead of rolling additional dice. [(XdY+Z)*2] ModUi/&Deities=Deities -ModUi/&DisableAllCameraBounds=Disable all camera bounds [surpasses camera max height by] [Requires Restart] +ModUi/&DisableAllCameraBounds=Disable all camera bounds [instead of a 4 cells height rectangular box] ModUi/&DisableAutoEquip=Disable auto-equip of items in inventory ModUi/&DisableBarbarianBrutalCritical=+ Also disable Barbarian Brutal Critical at levels 9, 13 and 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Disable cast spell pre-requisites on feats provided by this mod [Requires Restart] diff --git a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt index 6c17bbf769..2b1eeeddec 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1: suma el resultado máxim ModUi/&CriticalOption2=2: sigue tirando los dados de daño que obtengan el resultado más alto posible y súmalo al daño total. ModUi/&CriticalOption3=3: duplica el daño total de tu ataque en lugar de tirar dados adicionales. [(XdY+Z)*2] ModUi/&Deities=Deidades -ModUi/&DisableAllCameraBounds=Deshabilitar todos los límites de la cámara [supera la altura máxima de la cámara en] [Requiere reinicio] +ModUi/&DisableAllCameraBounds=Deshabilite todos los límites de la cámara [en lugar de un cuadro rectangular de 4 celdas de altura] ModUi/&DisableAutoEquip=Deshabilitar el autoequipamiento de artículos en el inventario ModUi/&DisableBarbarianBrutalCritical=+ También desactiva Bárbaro Crítico Brutal en los niveles 9, 13 y 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Desactiva los requisitos previos para lanzar hechizos en dotes proporcionadas por este mod [Requiere reinicio] diff --git a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt index d5146b622d..b26bc0929f 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1 : additionnez le résult ModUi/&CriticalOption2=2 : continuez à relancer tous les dés de dégâts qui obtiennent le résultat le plus élevé possible et ajoutez-le au total des dégâts. ModUi/&CriticalOption3=3 : doublez les dégâts totaux de votre attaque au lieu de lancer des dés supplémentaires. [(XdY+Z)*2] ModUi/&Deities=Divinités -ModUi/&DisableAllCameraBounds=Désactivez toutes les limites de la caméra [dépasse la hauteur maximale de la caméra de] [Nécessite un redémarrage] +ModUi/&DisableAllCameraBounds=Désactivez toutes les limites de la caméra [au lieu d'une boîte rectangulaire de 4 cellules de hauteur] ModUi/&DisableAutoEquip=Désactiver l'équipement automatique des articles en inventaire ModUi/&DisableBarbarianBrutalCritical=+ Désactivez également Barbare Critique brutal aux niveaux 9, 13 et 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Désactivez les pré-requis pour lancer des sorts sur les exploits fournis par ce mod [Nécessite un redémarrage] diff --git a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt index f9bd322ee8..1cca794036 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1: somma il risultato massi ModUi/&CriticalOption2=2: continua a ripetere il lancio di tutti i dadi di danno che ottengono il risultato più alto possibile e aggiungilo al danno totale ModUi/&CriticalOption3=3: raddoppia il danno totale del tuo attacco invece di lanciare dadi aggiuntivi. [(XdY+Z)*2] ModUi/&Deities=Divinità -ModUi/&DisableAllCameraBounds=Disattiva tutti i limiti della telecamera [supera l'altezza massima della telecamera di] [Richiede il riavvio] +ModUi/&DisableAllCameraBounds=Disattiva tutti i limiti della fotocamera [invece di una casella rettangolare di 4 celle di altezza] ModUi/&DisableAutoEquip=Disabilita l'equipaggiamento automatico degli oggetti nell'inventario ModUi/&DisableBarbarianBrutalCritical=+ Disabilita anche Barbaro Critico Brutale ai livelli 9, 13 e 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Disabilita i prerequisiti di lancio degli incantesimi sui talenti forniti da questo mod [Richiede il riavvio] diff --git a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt index 30b275dec6..da31c90728 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1: ダメージ ダイス ModUi/&CriticalOption2=2: 可能な限り最高の結果が出たダメージ ダイスを再度振り続け、それを合計ダメージに追加します。 ModUi/&CriticalOption3=3: 追加のサイコロを振る代わりに、攻撃の合計ダメージが2倍になります。 [(XdY+Z)*2] ModUi/&Deities=神々 -ModUi/&DisableAllCameraBounds=すべてのカメラ境界を無効にします [カメラの最大高さを超えます] [再起動が必要です] +ModUi/&DisableAllCameraBounds=すべてのカメラ境界を無効にします [4 セルの高さの長方形ボックスの代わりに] ModUi/&DisableAutoEquip=インベントリ内のアイテムの自動装備を無効にする ModUi/&DisableBarbarianBrutalCritical=+ レベル 9、13、17 でバーバリアンのブルータル クリティカルも無効化します ModUi/&DisableCastSpellPreRequisitesOnModFeats=この MOD によって提供される特技の呪文の前提条件を無効にします[再起動が必要] diff --git a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt index ff05fceb96..7076f8caca 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1: 피해 주사위의 최 ModUi/&CriticalOption2=2: 가능한 가장 높은 결과를 굴리는 피해 주사위를 계속해서 다시 굴려 총 피해량에 추가합니다. ModUi/&CriticalOption3=3: 추가 주사위를 굴리는 대신 공격의 총 피해를 두 배로 늘립니다. [(XdY+Z)*2] ModUi/&Deities=신들 -ModUi/&DisableAllCameraBounds=모든 카메라 경계 비활성화 [카메라 최대 높이 초과] [다시 시작 필요] +ModUi/&DisableAllCameraBounds=모든 카메라 경계 비활성화 [4셀 높이의 직사각형 상자 대신] ModUi/&DisableAutoEquip=인벤토리 내 아이템 자동 장착 비활성화 ModUi/&DisableBarbarianBrutalCritical=+ 또한 레벨 9, 13, 17에서 야만인 잔혹한 치명적을 비활성화합니다. ModUi/&DisableCastSpellPreRequisitesOnModFeats=이 모드에서 제공하는 feats에 대한 시전 주문 전제 조건을 비활성화합니다. [다시 시작 필요] diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt index 1d67d902cd..9b3c432c0d 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1: soma o resultado máximo ModUi/&CriticalOption2=2: continue jogando novamente quaisquer dados de dano que obtiverem o resultado mais alto possível e adicione-o ao dano total ModUi/&CriticalOption3=3: Dobre o dano total do seu ataque em vez de lançar dados adicionais. [(XdY+Z)*2] ModUi/&Deities=Divindades -ModUi/&DisableAllCameraBounds=Desative todos os limites da câmera [ultrapassa a altura máxima da câmera em] [Requer reinicialização] +ModUi/&DisableAllCameraBounds=Desative todos os limites da câmera [em vez de uma caixa retangular de 4 células de altura] ModUi/&DisableAutoEquip=Desative o equipamento automático de itens no inventário ModUi/&DisableBarbarianBrutalCritical=+ Desative também Bárbaro Brutal Critical nos níveis 9, 13 e 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Desative os pré-requisitos de lançamento de feitiço em talentos fornecidos por este mod [Requer reinicialização] diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index caf19b110d..d3ce44eb01 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1: суммирует ма ModUi/&CriticalOption2=2: продолжает кидать кость урона, на которой выпало максимальное значение, и добавляет его к урону ModUi/&CriticalOption3=3: полностью удваивает урон вместо бросания дополнительных костей. [(XdY+Z)*2] ModUi/&Deities=Божества -ModUi/&DisableAllCameraBounds=Отключить все ограничения камеры [позволяет превысить максимальную высоту камеры на] [Необходим перезапуск] +ModUi/&DisableAllCameraBounds=Отключить все ограничения камеры [вместо прямоугольного поля высотой 4 клетки] ModUi/&DisableAutoEquip=Отключить автонадевание предметов в инвентаре ModUi/&DisableBarbarianBrutalCritical=+ Также отключить Варварам Сильный критический удар на уровнях 9, 13 и 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Отключить обязательные условия наложения заклинаний для черт из этого мода [Необходим перезапуск] diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt index c51c538ceb..7d7526d156 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt @@ -65,7 +65,7 @@ ModUi/&CriticalOption1=1:将伤害骰子的最 ModUi/&CriticalOption2=2:继续重新掷出任何可能获得最高结果的伤害骰子,并将其添加到总伤害中 ModUi/&CriticalOption3=3:将攻击的总伤害加倍,而不是掷额外的骰子。[(XdY+Z)*2] ModUi/&Deities=神灵 -ModUi/&DisableAllCameraBounds=禁用所有相机边界 [超出相机最大高度] [需要重启] +ModUi/&DisableAllCameraBounds=禁用所有相机边界[而不是 4 个单元格高度的矩形框] ModUi/&DisableAutoEquip=禁用自动装备物品栏中的物品 ModUi/&DisableBarbarianBrutalCritical=+ 同时在野蛮人 9、13 和 17 级禁用凶蛮重击 ModUi/&DisableCastSpellPreRequisitesOnModFeats=禁用此模组提供的专长的施法先决条件[需要重新启动] From d8278f79deb44106d58d6144bee0f7ced12668ac Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Wed, 17 Jul 2024 17:16:07 -0700 Subject: [PATCH 86/91] update subclasses sprites --- .../MartialArcaneArcher.json | 6 +- .../PatronArchfey.json | 6 +- .../PatronCelestial.json | 6 +- .../PowerPatronMountainClingingStrength.json | 2 +- .../Properties/Resources.Designer.cs | 82 ++++++++++++++++-- .../Properties/Resources.resx | 41 ++++++++- .../Resources/Powers/PowerClingeStrength.png | Bin .../Subclasses/CircleOfTheCosmos.png | Bin 0 -> 36380 bytes .../Subclasses/MartialArcaneArcher.png | Bin 0 -> 36576 bytes .../Subclasses/MartialForceKnight.png | Bin 0 -> 36376 bytes .../Resources/Subclasses/PatronArchfey.png | Bin 0 -> 36694 bytes .../Resources/Subclasses/PatronCelestial.png | Bin 0 -> 38356 bytes .../Subclasses/RoguishUmbralStalker.png | Bin 0 -> 31720 bytes ...DistantHand.png => WayOfTheZenArchery.png} | Bin .../Subclasses/CircleOfTheCosmos.cs | 2 +- .../Subclasses/MartialArcaneArcher.cs | 3 +- .../Subclasses/MartialForceKnight.cs | 2 +- .../Subclasses/PatronArchfey.cs | 2 +- .../Subclasses/PatronCelestial.cs | 4 +- .../Subclasses/PatronMountain.cs | 4 +- .../Subclasses/RoguishUmbralStalker.cs | 2 +- .../Subclasses/WayOfTheZenArchery.cs | 2 +- 22 files changed, 137 insertions(+), 27 deletions(-) rename Media/PowerMarkForDeath.png => SolastaUnfinishedBusiness/Resources/Powers/PowerClingeStrength.png (100%) create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/CircleOfTheCosmos.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/MartialArcaneArcher.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/MartialForceKnight.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/PatronArchfey.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/PatronCelestial.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/RoguishUmbralStalker.png rename SolastaUnfinishedBusiness/Resources/Subclasses/{WayOfTheDistantHand.png => WayOfTheZenArchery.png} (100%) diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialArcaneArcher.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialArcaneArcher.json index 1029faf5d2..dce3217c35 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialArcaneArcher.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/MartialArcaneArcher.json @@ -71,9 +71,9 @@ "description": "Subclass/&MartialArcaneArcherDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "2bc90f386449dab49a7897bfa72b4e16", - "m_SubObjectName": "Ranger_SwiftBlade", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "3056393d-28af-5548-a278-7614b46c2417", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronArchfey.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronArchfey.json index a1e7ca4821..88619ffdd0 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronArchfey.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronArchfey.json @@ -36,9 +36,9 @@ "description": "Subclass/&PatronArchfeyDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "e2e75a8dfa5339a4486b00747f23310e", - "m_SubObjectName": "Ranger_Shadow_Tamer", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "d9612842-7d1a-591c-b6d0-8da39f7ba514", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronCelestial.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronCelestial.json index 57971e5b8e..7ba8d3e726 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronCelestial.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronCelestial.json @@ -41,9 +41,9 @@ "description": "Subclass/&PatronCelestialDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "f13740c3947aa0f49a79fa8da3a44eba", - "m_SubObjectName": "DomainLife", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "4befd4b2-c278-552b-bd9e-c5cc43cbf9f0", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPatronMountainClingingStrength.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPatronMountainClingingStrength.json index d2b1cf426b..8eeb9d637c 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPatronMountainClingingStrength.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerPatronMountainClingingStrength.json @@ -332,7 +332,7 @@ "description": "Feature/&PowerPatronMountainClingingStrengthDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", + "m_AssetGUID": "0f5fb5b6-f59d-5ed3-8e45-166a5e7f60a9", "m_SubObjectName": null, "m_SubObjectType": null }, diff --git a/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs b/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs index d61ebe2d8f..f74fc01f81 100644 --- a/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs +++ b/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs @@ -909,6 +909,16 @@ public static byte[] CircleOfTheAncientForest { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] CircleOfTheCosmos { + get { + object obj = ResourceManager.GetObject("CircleOfTheCosmos", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -2349,6 +2359,26 @@ public static byte[] MantleOfThorns { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] MartialArcaneArcher { + get { + object obj = ResourceManager.GetObject("MartialArcaneArcher", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] MartialForceKnight { + get { + object obj = ResourceManager.GetObject("MartialForceKnight", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -2712,6 +2742,26 @@ public static byte[] PathOfTheYeoman { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] PatronArchfey { + get { + object obj = ResourceManager.GetObject("PatronArchfey", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] PatronCelestial { + get { + object obj = ResourceManager.GetObject("PatronCelestial", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -2982,6 +3032,16 @@ public static byte[] PowerCharmAnimalsAndPlants { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] PowerClingeStrength { + get { + object obj = ResourceManager.GetObject("PowerClingeStrength", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -4182,6 +4242,16 @@ public static byte[] RoguishSlayer { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] RoguishUmbralStalker { + get { + object obj = ResourceManager.GetObject("RoguishUmbralStalker", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -4895,9 +4965,9 @@ public static byte[] WayOfTheDiscordance { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] WayOfTheDistantHand { + public static byte[] WayOfTheDragon { get { - object obj = ResourceManager.GetObject("WayOfTheDistantHand", resourceCulture); + object obj = ResourceManager.GetObject("WayOfTheDragon", resourceCulture); return ((byte[])(obj)); } } @@ -4905,9 +4975,9 @@ public static byte[] WayOfTheDistantHand { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] WayOfTheDragon { + public static byte[] WayOfTheSilhouette { get { - object obj = ResourceManager.GetObject("WayOfTheDragon", resourceCulture); + object obj = ResourceManager.GetObject("WayOfTheSilhouette", resourceCulture); return ((byte[])(obj)); } } @@ -4915,9 +4985,9 @@ public static byte[] WayOfTheDragon { /// /// Looks up a localized resource of type System.Byte[]. /// - public static byte[] WayOfTheSilhouette { + public static byte[] WayOfTheZenArchery { get { - object obj = ResourceManager.GetObject("WayOfTheSilhouette", resourceCulture); + object obj = ResourceManager.GetObject("WayOfTheZenArchery", resourceCulture); return ((byte[])(obj)); } } diff --git a/SolastaUnfinishedBusiness/Properties/Resources.resx b/SolastaUnfinishedBusiness/Properties/Resources.resx index 41ef15f372..8d6f98eac4 100644 --- a/SolastaUnfinishedBusiness/Properties/Resources.resx +++ b/SolastaUnfinishedBusiness/Properties/Resources.resx @@ -302,6 +302,11 @@ PublicKeyToken=b77a5c561934e089 + + ../Resources/Powers/PowerClingeStrength.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + ../Resources/Powers/PowerSpiritTeleport.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -1990,6 +1995,11 @@ Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\CircleOfTheCosmos.png;System.Byte[], mscorlib, Version=4.0.0.0, + Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\CircleOfTheForestGuardian.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2093,6 +2103,11 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\MartialArcaneArcher.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\MartialGuardian.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2103,6 +2118,11 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\MartialForceKnight.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\MartialRoyalKnight.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2154,8 +2174,18 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\PatronArchfey.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + + + ..\Resources\Subclasses\PatronCelestial.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + - ..\Resources\Subclasses\PatronElementalist.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + ..\Resources\Subclasses\PatronArchfey.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2294,6 +2324,11 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\RoguishUmbralStalker.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\SorcererDivineHeart.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, @@ -2321,8 +2356,8 @@ PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Subclasses\WayOfTheDistantHand.png;System.Byte[], mscorlib, Version=4.0.0.0, + + ..\Resources\Subclasses\WayOfTheZenArchery.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/Media/PowerMarkForDeath.png b/SolastaUnfinishedBusiness/Resources/Powers/PowerClingeStrength.png similarity index 100% rename from Media/PowerMarkForDeath.png rename to SolastaUnfinishedBusiness/Resources/Powers/PowerClingeStrength.png diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/CircleOfTheCosmos.png b/SolastaUnfinishedBusiness/Resources/Subclasses/CircleOfTheCosmos.png new file mode 100644 index 0000000000000000000000000000000000000000..509ebd4320dd912f4f9bb339cbb7e0e1bb34a681 GIT binary patch literal 36380 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 AX#fBK literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/MartialArcaneArcher.png b/SolastaUnfinishedBusiness/Resources/Subclasses/MartialArcaneArcher.png new file mode 100644 index 0000000000000000000000000000000000000000..48ab557e2e1658f6ae45d7be2293b07a5c96c09e GIT binary patch literal 36576 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�<< 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 P00000NkvXXu0mjfffRg5 literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/WayOfTheDistantHand.png b/SolastaUnfinishedBusiness/Resources/Subclasses/WayOfTheZenArchery.png similarity index 100% rename from SolastaUnfinishedBusiness/Resources/Subclasses/WayOfTheDistantHand.png rename to SolastaUnfinishedBusiness/Resources/Subclasses/WayOfTheZenArchery.png diff --git a/SolastaUnfinishedBusiness/Subclasses/CircleOfTheCosmos.cs b/SolastaUnfinishedBusiness/Subclasses/CircleOfTheCosmos.cs index f38537224a..a7bfa4ccdf 100644 --- a/SolastaUnfinishedBusiness/Subclasses/CircleOfTheCosmos.cs +++ b/SolastaUnfinishedBusiness/Subclasses/CircleOfTheCosmos.cs @@ -301,7 +301,7 @@ public CircleOfTheCosmos() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.PatronEldritchSurge, 256)) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.CircleOfTheCosmos, 256)) .AddFeaturesAtLevel(2, featureSetConstellationMap, featureSetConstellationForm) .AddFeaturesAtLevel(6, powerCosmosOmen, powerCosmosOmenPool) .AddFeaturesAtLevel(10, featureSetTwinklingStars) diff --git a/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs b/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs index a4620e4f20..a51ab362a0 100644 --- a/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs +++ b/SolastaUnfinishedBusiness/Subclasses/MartialArcaneArcher.cs @@ -10,6 +10,7 @@ using SolastaUnfinishedBusiness.Builders.Features; using SolastaUnfinishedBusiness.CustomUI; using SolastaUnfinishedBusiness.Interfaces; +using SolastaUnfinishedBusiness.Properties; using SolastaUnfinishedBusiness.Validators; using static RuleDefinitions; using static SolastaUnfinishedBusiness.Api.DatabaseHelper; @@ -191,7 +192,7 @@ public MartialArcaneArcher() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, CharacterSubclassDefinitions.RangerSwiftBlade) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.MartialArcaneArcher, 256)) .AddFeaturesAtLevel(3, featureSetArcaneLore, castSpellArcaneMagic, diff --git a/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs b/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs index 410db09eea..2e8d6e2faf 100644 --- a/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs +++ b/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs @@ -538,7 +538,7 @@ public MartialForceKnight() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.WizardGravityMage, 256)) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.MartialForceKnight, 256)) .AddFeaturesAtLevel(3, featureSetPsionicInitiate) .AddFeaturesAtLevel(6, BuildPowerModifier(PowerPsionicInitiate, 6)) .AddFeaturesAtLevel(7, featureSetPsionicAdept, featureSetPsionicPropulsion) diff --git a/SolastaUnfinishedBusiness/Subclasses/PatronArchfey.cs b/SolastaUnfinishedBusiness/Subclasses/PatronArchfey.cs index 91454c7c3f..52f96c5501 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PatronArchfey.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PatronArchfey.cs @@ -310,7 +310,7 @@ public PatronArchfey() Subclass = CharacterSubclassDefinitionBuilder .Create($"Patron{Name}") - .SetGuiPresentation(Category.Subclass, CharacterSubclassDefinitions.RangerShadowTamer) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.PatronArchfey, 256)) .AddFeaturesAtLevel(1, magicAffinityExpandedSpells, featureSetFeyPresence) .AddFeaturesAtLevel(6, powerMistyEscape) .AddFeaturesAtLevel(10, featureSetBeguilingDefenses) diff --git a/SolastaUnfinishedBusiness/Subclasses/PatronCelestial.cs b/SolastaUnfinishedBusiness/Subclasses/PatronCelestial.cs index 2afd722bb8..ae58f681c3 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PatronCelestial.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PatronCelestial.cs @@ -8,8 +8,10 @@ using SolastaUnfinishedBusiness.Behaviors.Specific; using SolastaUnfinishedBusiness.Builders; using SolastaUnfinishedBusiness.Builders.Features; +using SolastaUnfinishedBusiness.CustomUI; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Models; +using SolastaUnfinishedBusiness.Properties; using SolastaUnfinishedBusiness.Validators; using static RuleDefinitions; using static SolastaUnfinishedBusiness.Api.DatabaseHelper; @@ -236,7 +238,7 @@ public PatronCelestial() Subclass = CharacterSubclassDefinitionBuilder .Create($"Patron{Name}") - .SetGuiPresentation(Category.Subclass, CharacterSubclassDefinitions.DomainLife) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.PatronCelestial, 256)) .AddFeaturesAtLevel(1, magicAffinityExpandedSpells, bonusCantripCelestial, featureSetHealingLight) .AddFeaturesAtLevel(6, featureSetRadiantSoul) .AddFeaturesAtLevel(10, powerCelestialResistance) diff --git a/SolastaUnfinishedBusiness/Subclasses/PatronMountain.cs b/SolastaUnfinishedBusiness/Subclasses/PatronMountain.cs index e8cfe54460..69bafe59d4 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PatronMountain.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PatronMountain.cs @@ -6,8 +6,10 @@ using SolastaUnfinishedBusiness.Behaviors.Specific; using SolastaUnfinishedBusiness.Builders; using SolastaUnfinishedBusiness.Builders.Features; +using SolastaUnfinishedBusiness.CustomUI; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Models; +using SolastaUnfinishedBusiness.Properties; using static RuleDefinitions; using static SolastaUnfinishedBusiness.Api.DatabaseHelper; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.SpellDefinitions; @@ -128,7 +130,7 @@ public PatronMountain() var powerClingingStrength = FeatureDefinitionPowerBuilder .Create($"Power{Name}ClingingStrength") - .SetGuiPresentation(Category.Feature) + .SetGuiPresentation(Category.Feature, Sprites.GetSprite(Name, Resources.PowerClingeStrength, 128, 64)) .SetUsesFixed(ActivationTime.BonusAction, RechargeRate.ShortRest) .SetEffectDescription( EffectDescriptionBuilder diff --git a/SolastaUnfinishedBusiness/Subclasses/RoguishUmbralStalker.cs b/SolastaUnfinishedBusiness/Subclasses/RoguishUmbralStalker.cs index 3f45c3d6b0..6404fde5be 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RoguishUmbralStalker.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RoguishUmbralStalker.cs @@ -205,7 +205,7 @@ public RoguishUmbralStalker() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.WayOfTheSilhouette, 256)) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.RoguishUmbralStalker, 256)) .AddFeaturesAtLevel(3, featureSetDeadlyShadows, actionAffinityHailOfBladesToggle) .AddFeaturesAtLevel(9, featureSetShadowStride) .AddFeaturesAtLevel(13, featureSetUmbralSoul) diff --git a/SolastaUnfinishedBusiness/Subclasses/WayOfTheZenArchery.cs b/SolastaUnfinishedBusiness/Subclasses/WayOfTheZenArchery.cs index 03e6bada5a..4966254cc6 100644 --- a/SolastaUnfinishedBusiness/Subclasses/WayOfTheZenArchery.cs +++ b/SolastaUnfinishedBusiness/Subclasses/WayOfTheZenArchery.cs @@ -128,7 +128,7 @@ public WayOfZenArchery() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.WayOfTheDistantHand, 256)) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.WayOfTheZenArchery, 256)) .AddFeaturesAtLevel(3, proficiencyOneWithTheBow, featureFlurryOfArrows) .AddFeaturesAtLevel(6, featureKiEmpoweredArrows) .AddFeaturesAtLevel(11, featureUnerringPrecision) From 3076d8ce1a56f770f54ed0bb29c5d19262701a43 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Wed, 17 Jul 2024 21:51:32 -0700 Subject: [PATCH 87/91] update subclasses sprites --- .../PatronMountain.json | 6 +- .../RangerSkyWarrior.json | 6 +- .../WayOfTheStormSoul.json | 6 +- Media/TidalWave.png | Bin 27705 -> 0 bytes Media/WaterySphere.png | Bin 37265 -> 0 bytes .../CharacterActionMagicEffectPatcher.cs | 20 ++--- .../Properties/Resources.Designer.cs | 70 ++++++++++++++++++ .../Properties/Resources.resx | 37 +++++++++ .../Resources/Subclasses/PatronMountain.png | Bin 0 -> 30460 bytes .../Subclasses/RangerFeyWanderer.png | Bin 0 -> 35909 bytes .../Subclasses/RangerGloomStalker.png | Bin 0 -> 32646 bytes .../Resources/Subclasses/RangerSkyWarrior.png | Bin 0 -> 34680 bytes .../Resources/Subclasses/SorcererPsion.png | Bin 0 -> 28588 bytes .../Subclasses/WayOfTheStormSoul.png | Bin 0 -> 38052 bytes .../Subclasses/WayOfTheWealAndWoe.png | Bin 0 -> 27763 bytes .../Subclasses/PatronMountain.cs | 2 +- .../Subclasses/RangerFeyWanderer.cs | 2 +- .../Subclasses/RangerGloomStalker.cs | 2 +- .../Subclasses/RangerSkyWarrior.cs | 2 +- .../Subclasses/SorcerousPsion.cs | 2 +- .../Subclasses/WayOfTheStormSoul.cs | 2 +- .../Subclasses/WayOfTheWealAndWoe.cs | 2 +- 22 files changed, 128 insertions(+), 31 deletions(-) delete mode 100644 Media/TidalWave.png delete mode 100644 Media/WaterySphere.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/PatronMountain.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/RangerFeyWanderer.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/RangerGloomStalker.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/RangerSkyWarrior.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/SorcererPsion.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/WayOfTheStormSoul.png create mode 100644 SolastaUnfinishedBusiness/Resources/Subclasses/WayOfTheWealAndWoe.png diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronMountain.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronMountain.json index 350f1a4cc5..36b7ebebe6 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronMountain.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/PatronMountain.json @@ -46,9 +46,9 @@ "description": "Subclass/&PatronMountainDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "66614872ccbd31747b1555dcb689b144", - "m_SubObjectName": "Mountaineer", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "b0afa966-2819-5e1b-a1c9-7b35689d8550", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/RangerSkyWarrior.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/RangerSkyWarrior.json index c98c81194d..113eaac376 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/RangerSkyWarrior.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/RangerSkyWarrior.json @@ -51,9 +51,9 @@ "description": "Subclass/&RangerSkyWarriorDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "a934d22a89555934da76c63cc0346839", - "m_SubObjectName": "Cleric_Battler", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "c76ebf72-3b89-592a-a6b1-c7b3a897ee5a", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/WayOfTheStormSoul.json b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/WayOfTheStormSoul.json index 0a15933e02..ce5c05ffd1 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/WayOfTheStormSoul.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/CharacterSubclassDefinition/WayOfTheStormSoul.json @@ -31,9 +31,9 @@ "description": "Subclass/&WayOfTheStormSoulDescription", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "2e87609ff921809408f223c91150a5f8", - "m_SubObjectName": "Cleric_Storm", - "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + "m_AssetGUID": "201f8991-bd33-5775-9d09-4643dc6a90c6", + "m_SubObjectName": null, + "m_SubObjectType": null }, "color": { "$type": "UnityEngine.Color, UnityEngine.CoreModule", diff --git a/Media/TidalWave.png b/Media/TidalWave.png deleted file mode 100644 index eda52335facbf2589a8977b80dadba5dd60a3bcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27705 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 Ef&x(Hm;e9( diff --git a/Media/WaterySphere.png b/Media/WaterySphere.png deleted file mode 100644 index 58afa7d7f97577f2d729eeac95767365e8d1a7af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37265 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 B-%tPm diff --git a/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs index 4e79daa79f..fbbcf1a9c9 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs @@ -598,11 +598,6 @@ private static IEnumerator ExecuteImpl(CharacterActionMagicEffect __instance) .Where(affectedCharacter => targets.TryAdd(affectedCharacter)) .Select(_ => new ActionModifier())); - __instance.SpendMagicEffectUses(); - - // This is used to remove invisibility (for example) when casting a spell - __instance.CheckInterruptionBefore(); - // BEGIN PATCH //PATCH: supports `IPowerOrSpellInitiatedByMe` @@ -643,6 +638,11 @@ private static IEnumerator ExecuteImpl(CharacterActionMagicEffect __instance) // END PATCH + __instance.SpendMagicEffectUses(); + + // This is used to remove invisibility (for example) when casting a spell + __instance.CheckInterruptionBefore(); + // Handle spell countering yield return __instance.WaitSpellCastAction(battleManager); @@ -955,16 +955,6 @@ private static IEnumerator ExecuteImpl(CharacterActionMagicEffect __instance) } } - if (__instance is CharacterActionCastSpell { ActionType: ActionDefinitions.ActionType.Bonus }) - { - actingCharacter.UsedMainSpell = true; - } - - if (__instance is CharacterActionCastSpell { ActionType: ActionDefinitions.ActionType.Main }) - { - actingCharacter.UsedBonusSpell = true; - } - // END PATCH yield return __instance.HandlePostExecution(); diff --git a/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs b/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs index f74fc01f81..3aaeacff0c 100644 --- a/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs +++ b/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs @@ -2792,6 +2792,16 @@ public static byte[] PatronMoonlit { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] PatronMountain { + get { + object obj = ResourceManager.GetObject("PatronMountain", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -4062,6 +4072,26 @@ public static byte[] RangerArcanist { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] RangerFeyWanderer { + get { + object obj = ResourceManager.GetObject("RangerFeyWanderer", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] RangerGloomStalker { + get { + object obj = ResourceManager.GetObject("RangerGloomStalker", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -4082,6 +4112,16 @@ public static byte[] RangerLightBearer { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] RangerSkyWarrior { + get { + object obj = ResourceManager.GetObject("RangerSkyWarrior", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -4382,6 +4422,16 @@ public static byte[] SorcererDivineHeart { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] SorcererPsion { + get { + object obj = ResourceManager.GetObject("SorcererPsion", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// @@ -4982,6 +5032,26 @@ public static byte[] WayOfTheSilhouette { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] WayOfTheStormSoul { + get { + object obj = ResourceManager.GetObject("WayOfTheStormSoul", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] WayOfTheWealAndWoe { + get { + object obj = ResourceManager.GetObject("WayOfTheWealAndWoe", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// diff --git a/SolastaUnfinishedBusiness/Properties/Resources.resx b/SolastaUnfinishedBusiness/Properties/Resources.resx index 8d6f98eac4..7fd2085d62 100644 --- a/SolastaUnfinishedBusiness/Properties/Resources.resx +++ b/SolastaUnfinishedBusiness/Properties/Resources.resx @@ -2189,6 +2189,11 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\PatronMountain.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\PathOfTheElements.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2267,6 +2272,16 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\RangerFeyWanderer.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + + + ..\Resources\Subclasses\RangerGloomStalker.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\RangerLightBearer.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2277,6 +2292,11 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\RangerSkyWarrior.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\RangerSurvivalist.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2335,6 +2355,12 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\SorcererPsion.png;System.Byte[], mscorlib, Version=4.0.0.0, + Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\SorcererFieldManipulator.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -2356,6 +2382,12 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\WayOfTheStormSoul.png;System.Byte[], mscorlib, Version=4.0.0.0, + Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\WayOfTheZenArchery.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, @@ -2372,6 +2404,11 @@ PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\WayOfTheWealAndWoe.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Subclasses\WizardArcaneFighter.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/PatronMountain.png b/SolastaUnfinishedBusiness/Resources/Subclasses/PatronMountain.png new file mode 100644 index 0000000000000000000000000000000000000000..4dfda3c9addf093f13ca5bcd6771649a962852e3 GIT binary patch literal 30460 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 D57Hu7 literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/RangerFeyWanderer.png b/SolastaUnfinishedBusiness/Resources/Subclasses/RangerFeyWanderer.png new file mode 100644 index 0000000000000000000000000000000000000000..280699881a99aeaa992e2f685cae63ea20185287 GIT binary patch literal 35909 zcmV)4K+3;~P);~|NsAgfr6x?rT_o`i;IlV(9!?@|I5tH z|NsB#=;+hb*8l(i`T6?c;Nif)!Rzeq?(OaW|Nj600Q~;<{QUY03l0MU1O^5O|Ns9Z zB`FgW7Y`5<9Umha8y;nAa3&}%go=)nn45rxiYYBJFflYgL`jN}lQA|sLPtzBHaRUa zH$Xx~YHxE{Ut>l`N>Nr@Pf}KyouPJne>^=vZgO>beuHp#dleTNU1DaDl$TXnU!0(# zh>ehCXKH+dhG1f3OH58xR#<(2gQTdcpQNXqqot~`v#6}C7a1H`TV1-q!=$RMVrXo` z$;`jR$6sV=NlsHNEig+_Rz^!vb9j4#gNDh?&^9|kDl08JKt>=VD3+U^x4OHtxVda| zc#e{my1l+3A|$Z1w>dpSYHMvdIz2TxK2A_l)z{dqvbCV6s&jOAv%0;fuCb$}rM2As+1lEzwz`g(n~Ri~)tW#00000kbW%=J01b2Q)@bU-#apd+&XZA=`k&5h9VLh!9y42ox%

NWA2ZD-H7bt@3xzJ*@&)NQa4cgaN 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 literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/RangerGloomStalker.png b/SolastaUnfinishedBusiness/Resources/Subclasses/RangerGloomStalker.png new file mode 100644 index 0000000000000000000000000000000000000000..292a2608489fd6dde70476152b15c4b20a127e5f GIT binary patch literal 32646 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

    Y4-m5I*dHso!{NsyZi31e|`u6 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 FV1k_k28{p! literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/RangerSkyWarrior.png b/SolastaUnfinishedBusiness/Resources/Subclasses/RangerSkyWarrior.png new file mode 100644 index 0000000000000000000000000000000000000000..dc5ff90cfdff77d500430af2b52c5aca3bab893b GIT binary patch literal 34680 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 Q>i_@%07*qoM6N<$g3R0D=Kufz literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/SorcererPsion.png b/SolastaUnfinishedBusiness/Resources/Subclasses/SorcererPsion.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6e161aa13b6e271a563fb51b557cb33ddf959a GIT binary patch literal 28588 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 Ds07LJ literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/WayOfTheStormSoul.png b/SolastaUnfinishedBusiness/Resources/Subclasses/WayOfTheStormSoul.png new file mode 100644 index 0000000000000000000000000000000000000000..2042dfc04f3fd2fd7adb2270ab907bc9e9dc502e GIT binary patch literal 38052 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�@-f`%O25Iq%jy{^bYtx&u?w0|2I|o?j~8j5~7j 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 literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Subclasses/PatronMountain.cs b/SolastaUnfinishedBusiness/Subclasses/PatronMountain.cs index 69bafe59d4..cd1c359083 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PatronMountain.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PatronMountain.cs @@ -202,7 +202,7 @@ public PatronMountain() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, CharacterSubclassDefinitions.MartialMountaineer) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.PatronMountain, 256)) .AddFeaturesAtLevel(1, magicAffinityExpandedSpells, featureSetKnowledgeOfAeons, diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs b/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs index 9307cacbc4..45a8cd539d 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerFeyWanderer.cs @@ -204,7 +204,7 @@ public RangerFeyWanderer() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.CircleOfTheAncientForest, 256)) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.RangerFeyWanderer, 256)) .AddFeaturesAtLevel(3, autoPreparedSpells, additionalDamageDreadfulStrikes, featureSetOtherworldlyGlamour) .AddFeaturesAtLevel(7, diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerGloomStalker.cs b/SolastaUnfinishedBusiness/Subclasses/RangerGloomStalker.cs index e4c8ff7f38..dfda6cd978 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerGloomStalker.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerGloomStalker.cs @@ -173,7 +173,7 @@ public RangerGloomStalker() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.WayOfTheSilhouette, 256)) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.RangerGloomStalker, 256)) .AddFeaturesAtLevel(3, autoPreparedSpells, attributeModifierDreadAmbusher, featureUmbralSight) .AddFeaturesAtLevel(7, featureSetIronMind) diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerSkyWarrior.cs b/SolastaUnfinishedBusiness/Subclasses/RangerSkyWarrior.cs index 6b86c271f3..41698ba711 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerSkyWarrior.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerSkyWarrior.cs @@ -238,7 +238,7 @@ public RangerSkyWarrior() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, CharacterSubclassDefinitions.DomainBattle) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.RangerSkyWarrior, 256)) .AddFeaturesAtLevel(3, autoPreparedSpells, additionalDamageGiftOfTheWind, powerGiftOfTheWind, proficiencyAerialAgility) .AddFeaturesAtLevel(7, diff --git a/SolastaUnfinishedBusiness/Subclasses/SorcerousPsion.cs b/SolastaUnfinishedBusiness/Subclasses/SorcerousPsion.cs index 0e36240d9e..9aea381be3 100644 --- a/SolastaUnfinishedBusiness/Subclasses/SorcerousPsion.cs +++ b/SolastaUnfinishedBusiness/Subclasses/SorcerousPsion.cs @@ -244,7 +244,7 @@ public SorcerousPsion() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.PathOfTheElements, 256)) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.SorcererPsion, 256)) .AddFeaturesAtLevel(1, autoPreparedSpellsPsion, bonusCantripsPsionicMind, featureSetPsychokinesis) .AddFeaturesAtLevel(6, actionAffinityMindSculpt) .AddFeaturesAtLevel(14, powerMindOverMatter) diff --git a/SolastaUnfinishedBusiness/Subclasses/WayOfTheStormSoul.cs b/SolastaUnfinishedBusiness/Subclasses/WayOfTheStormSoul.cs index d68d18363b..a2767506d5 100644 --- a/SolastaUnfinishedBusiness/Subclasses/WayOfTheStormSoul.cs +++ b/SolastaUnfinishedBusiness/Subclasses/WayOfTheStormSoul.cs @@ -182,7 +182,7 @@ public WayOfTheStormSoul() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, CharacterSubclassDefinitions.DomainElementalLighting) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.WayOfTheStormSoul, 256)) .AddFeaturesAtLevel(3, additionalDamageDiscipleOfStorms) .AddFeaturesAtLevel(6, featureSetLightningWarrior) .AddFeaturesAtLevel(11, powerTempestFury) diff --git a/SolastaUnfinishedBusiness/Subclasses/WayOfTheWealAndWoe.cs b/SolastaUnfinishedBusiness/Subclasses/WayOfTheWealAndWoe.cs index bcb0ecd58e..2de9d42b18 100644 --- a/SolastaUnfinishedBusiness/Subclasses/WayOfTheWealAndWoe.cs +++ b/SolastaUnfinishedBusiness/Subclasses/WayOfTheWealAndWoe.cs @@ -105,7 +105,7 @@ public WayOfTheWealAndWoe() Subclass = CharacterSubclassDefinitionBuilder .Create(Name) - .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.OathOfDemonHunter, 256)) + .SetGuiPresentation(Category.Subclass, Sprites.GetSprite(Name, Resources.WayOfTheWealAndWoe, 256)) .AddFeaturesAtLevel(3, featureWeal, featureWoe) .AddFeaturesAtLevel(6, featureSelfPropelledWeal) .AddFeaturesAtLevel(11, featureBrutalWeal) From 55590916df347e18dad7a50ba200cd9d98380855 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Wed, 17 Jul 2024 21:52:05 -0700 Subject: [PATCH 88/91] update settings --- .../Settings/hiddenHax.xml | 1748 ----------------- .../Settings/zappastuff.xml | 4 + 2 files changed, 4 insertions(+), 1748 deletions(-) delete mode 100644 SolastaUnfinishedBusiness/Settings/hiddenHax.xml diff --git a/SolastaUnfinishedBusiness/Settings/hiddenHax.xml b/SolastaUnfinishedBusiness/Settings/hiddenHax.xml deleted file mode 100644 index abf6e105c3..0000000000 --- a/SolastaUnfinishedBusiness/Settings/hiddenHax.xml +++ /dev/null @@ -1,1748 +0,0 @@ - - - 0 - 0 - 4 - true - true - true - true - true - true - true - true - false - false - true - true - - - - Barbarian - - - true - - - - - Bard - - - true - - - - - Cleric - - - true - - - - - Druid - - - true - - - - - Fighter - - - true - - - - - Monk - - - true - - - - - Paladin - - - true - - - - - Ranger - - - true - - - - - Rogue - - - true - - - - - Sorcerer - - - true - - - - - Warlock - - - true - - - - - Wizard - - - true - - - - - Inventor - - - true - - - - - - - SpellListBard - - - true - - - - - SpellListCleric - - - true - - - - - SpellListDruid - - - true - - - - - SpellListInventor - - - true - - - - - SpellListPaladin - - - true - - - - - SpellListRanger - - - true - - - - - SpellListSorcerer - - - true - - - - - SpellListWarlock - - - true - - - - - SpellListMonkTraditionLight - - - true - - - - - SpellListWizard - - - true - - - - true - true - true - true - true - true - true - true - true - - Adam_The_Twelth - DLC3_Elven_07_Guard - SRD_DLC_Mage - SRD_Mage - DLC1_NPC_Forge_Escorted_01 - DLC3_NPC_Generic_ElvenCitizen_Husk - Generic_Darkweaver - DLC3_ElvenClans_Leralyn - DLC3_NPC_Elven3_DLC3_Ending - DLC3_NPC_Elven5_DLC3_Ending - Generic_HighPriest - DLC3_Elven_Suspect_05_Guard_Traitor - DLC3_Elven_06_Guard - SRD_DLC3_Archmage - Generic_ShockArcanist - Mutant_Ape - Mutant_Ape_Range - Mutant_Direwolf - Badlands_Ape_MonsterDefinition - BadlandsBear - BadlandsBear_POI_ONLY - Eagle_Matriarch - KindredSpiritApe - KindredSpiritBear - KindredSpiritEagle - KindredSpiritTiger - KindredSpiritViper - KindredSpiritWolf - WildshapeDirewolf - WildShapeWolf - AlphaWolf - ConjuredEightBeast_Wolf - ConjuredTwoBeast_Direwolf - Direwolf - DLC1_Complex_Trained_Direwolf - DLC1_Complex_Trained_Wolf - StarvingWolf - Wolf - FeyBear - FeyGiant_Eagle - FeyGiantApe - FeyWolf - SRD_Werewolf - Captain_Verissa_Ironshell - Conjuration_TheSuperEgo_Master_Humanoid - DLC1_Complex_NPC_Sitinero - DLC1_Complex_NPC_Sitinero_DM_Monster - DLC1_NPC_Fusioned_Orenetis_Sitenero - DLC1_NPC_Sitenero - DLC1_NPC_Tuznut - DLC1_NPC_Tuznut_Hostile - DLC1_NPC_Tuznut_Hostile_DM_Monster - DLC1_Valley_NPC_Samko_Flint - DLC1_Valley_NPC_Telerien_Purevoice - DLC1_NPC_Forge_Hasdrubal - DLC1_NPC_Nobleman_ThePeople07 - DLC1_NPC_Orenetis_Apprentice - DLC1_NPC_ThePeople_Reya_Outpost - DLC3_NPC_Einareum_Merchant_General - DLC3_NPC_SouthernClans_Generic_Cousin_Husk - Lizzaria_Of_Grimhold - Merchant_Gorim_Ironsoot - Merchant_Hugo_Requer - Priest_Of_Misaye_Nel - - - Couatl - CubeOfLight - Conjuration_TheSuperEgo_Master_Humanoid - - - Aksha - Aksha_Legendary - - - Aksha - Aksha_Legendary - - - AcidSplash - Aid - AnimalShapes - BeaconOfHope - Bless - BlessingOfRime - BoomingBlade - DispelMagic - FeatherFall - Knock - Levitate - MassCureWounds - PassWithoutTrace - PowerBarbarianBrutalStrike - PowerBardHopeWordsOfHope6 - PowerBardTraditionManacalonsPerfection - PowerCelestialSearingVengeance - PowerCollegeOfAudacityDefensiveWhirl - PowerCollegeOfAudacityMobileWhirl - PowerCollegeOfValianceHeroicInspiration - PowerDomainElementalHeraldOfTheElementsThunder - PowerFeatChefCookMeal - PowerFeatOrcishAggression - PowerInnovationWeaponArcaneJolt - PowerOathOfJugementPurgeCorruption - PowerOathOfJugementRetribution - PowerOathOfThunderThunderousRebuke - PowerPatronFiendHurlThroughHell - PowerRangerHellWalkerMarkOfTheDammed - PowerRangerLightBearerBlessedWarrior - PowerRiftWalkerRiftStrike - PowerSorcerousPsionMindOverMatter - PowerTraditionOpenHandQuiveringPalmTrigger - PowerWayOfTheDistantHandZenArrowTechnique - PowerWayOfTheDistantHandZenArrowUpgradedTechnique - RayOfEnfeeblement - ResonatingStrike - Sanctuary - ShieldOfFaith - Sparkle - SunlightBlade - TrueStrike - CommandApproach - CommandDrop - CommandFlee - CommandGrovel - CommandHalt - AnimateDead - ArcaneSword - ConjureAnimalsFourBeasts - ConjureAnimalsOneBeast - ConjureAnimalsTwoBeasts - ConjureCelestial - ConjureCelestialCouatl - ConjureCelestialKutkartal - ConjureCelestialMelek - ConjureElemental - ConjureElementalAir - ConjureElementalEarth - ConjureElementalFire - ConjureFey_Ape - ConjureFey_Bear - ConjureFey_Dryad - ConjureFey_Eagle - ConjureFey_GreenHag - ConjureFey_Wolf - ConjureFey - ConjureGoblinoids - ConjureMinorElementals - ConjureMinorElementalsFour - ConjureMinorElementalsOne_b - ConjureMinorElementalsOne - ConjureMinorElementalsTwo - CreateDeadRisenGhost - CreateDeadRisenGhoul - CreateDeadRisenSkeleton_Archer - CreateDeadRisenSkeleton_Enforcer - CreateDeadRisenSkeleton_Knight - CreateDeadRisenSkeleton_Marksman - CreateDeadRisenSkeleton - CreateDeadRisenWight - CreateDeadRisenWightLord - DancingLights - DimensionDoor - FindFamiliar - GiantInsect - SpiritualWeapon - WaterBreathing - WaterWalk - - true - false - false - false - true - - Korragos - Hurk - Perra - Serenrae - - false - true - true - false - false - 100 - 4 - false - 1.5 - 5 - false - false - false - false - true - true - true - true - 0 - false - false - false - true - false - 3 - true - false - true - true - false - false - false - true - true - true - true - false - true - true - true - false - false - true - false - true - - true - false - true - true - true - true - false - true - false - true - false - true - true - true - true - true - true - true - true - true - true - false - true - false - false - false - false - false - false - true - true - true - true - false - - false - - true - true - true - true - true - true - true - true - true - - true - false - true - true - - true - true - true - true - false - true - true - true - true - false - false - false - false - true - false - true - false - false - false - true - true - true - true - false - false - false - false - false - true - true - false - false - true - false - false - true - true - - true - true - 1 - 0 - 0 - 0 - true - true - false - 200 - 0 - 0 - 3 - - - - false - false - false - false - false - false - false - false - false - 4 - - RaceOligath - RaceMalakh - RaceWendigo - RaceImp - RaceWyrmkin - RaceBolgrif - RaceBattleborn - RaceOni - RaceWildling - RaceLizardfolk - - 4 - - RaceDarkelf - RaceHalfElfDark - RaceTieflingMephistopheles - RaceTieflingDevilTongue - RaceHalfElfHigh - RaceTieflingFeral - RaceHalfElfSylvan - RaceTieflingZariel - RaceObsidianDwarf - RaceIronbornDwarf - RaceGrayDwarf - RaceShadarKai - - 4 - - BackgroundDevoted - BackgroundTroublemaker - BackgroundMilitia - - - - - Barbarian - - - 4 - - - - - Bard - - - 4 - - - - - Cleric - - - 4 - - - - - Druid - - - 4 - - - - - Fighter - - - 4 - - - - - Monk - - - 4 - - - - - Paladin - - - 4 - - - - - Ranger - - - 4 - - - - - Rogue - - - 4 - - - - - Sorcerer - - - 4 - - - - - Warlock - - - 4 - - - - - Wizard - - - 4 - - - - - Inventor - - - 4 - - - - - - - Barbarian - - - - PathOfTheElements - PathOfTheLight - PathOfTheReaver - PathOfTheSavagery - PathOfTheSpirits - PathOfTheRavager - - - - - - Bard - - - - CollegeOfAudacity - CollegeOfValiance - CollegeOfGuts - CollegeOfLife - CollegeOfThespian - CollegeOfElegance - - - - - - Cleric - - - - DomainDefiler - DomainSmith - DomainNature - DomainTempest - - - - - - Druid - - - - CircleOfTheLife - CircleOfTheNight - CircleOfTheForestGuardian - CircleOfTheCosmos - - - - - - Fighter - - - - MartialArcaneArcher - MartialSpellShield - MartialTactician - MartialWeaponMaster - MartialRoyalKnight - MartialGuardian - MartialWarlord - MartialForceKnight - - - - - - Monk - - - - WayOfTheDiscordance - WayOfTheDragon - WayOfSilhouette - WayOfZenArchery - WayOfTheStormSoul - - - - - - Paladin - - - - OathOfHatred - OathOfAncients - OathOfDread - - - - - - Ranger - - - - RangerArcanist - RangerSurvivalist - RangerHellWalker - RangerWildMaster - RangerLightBearer - RangerGloomStalker - RangerFeyWanderer - - - - - - Rogue - - - - RoguishOpportunist - RoguishArcaneScoundrel - RoguishBladeCaller - RoguishSlayer - RoguishDuelist - RoguishRavenScion - RoguishUmbralStalker - - - - - - Sorcerer - - - - SorcerousDivineHeart - SorcerousFieldManipulator - SorcerousSorrAkkath - SorcerousSpellBlade - SorcerousPsion - - - - - - Warlock - - - - PatronSoulBlade - PatronCelestial - PatronMoonlitScion - PatronArchfey - - - - - - Wizard - - - - WizardBladeDancer - WizardGraviturgist - WizardWarMagic - - - - - - Inventor - - - - InnovationAlchemy - InnovationArmor - InnovationArtillerist - InnovationVitriolist - InnovationVivisectionist - InnovationWeapon - - - - - 4 - - FeatGroupApothecary - FeatGroupAwakenTheBeastWithin - FeatBladeMastery - FeatGroupBlessedSoul - FeatCallForCharge - FeatCleavingAttack - FeatGroupCloseQuarters - FeatGroupCrusher - FeatCunningEscape - FeatDefensiveDuelist - FeatDevastatingStrikes - FeatDragonWings - FeatDualFlurry - FeatDualWeaponDefense - FeatGroupElementalAdept - FeatGroupElvenAccuracy - FeatExpandTheHunt - FeatExploiter - FeatGroupFadeAway - FeatFellHanded - FeatGroupHardy - FeatHeavyArmorMaster - FeatInfernalConstitution - FeatInspiringLeader - FeatLongswordFinesse - FeatGroupMagicInitiate - FeatGroupMediumArmor - FeatMetamagicAdept - FeatMobile - FeatMonkInitiate - FeatNaturalFluidity - FeatPickPocket - FeatGroupPiercer - FeatPoisoner - FeatPolearmExpert - FeatGroupPotentSpellcaster - FeatGroupPrecisionFocused - FeatGroupPrimalRage - FeatGroupRevenantGreatSword - FeatSentinel - FeatGroupSlasher - FeatSpearMastery - FeatGroupSpellSniper - FeatSpiritualFluidity - FeatGroupSquatNimbleness - FeatGroupTelekinetic - FeatTough - FeatGroupToxicologist - FeatGroupDefenseExpert - FeatWarCaster - FeatMediumArmorMaster - FeatFencer - FeatZenArcher - FeatFrostAdaptation - FeatShieldTechniques - FeatEldritchAdept - FeatGroupFightingStyle - FeatTacticianAdept - FeatGroupSecondChance - FeatGiftOfTheChromaticDragon - FeatArcaneArcherAdept - FeatCharger - FeatGroupChef - FeatAlert - FeatGroupFlamesOfPhlegethos - FeatDwarvenFortitude - FeatGroupOrcishFury - FeatMageSlayer - FeatWoodElfMagic - FeatDarkElfMagic - FeatGroupFeyTeleport - FeatGroupDragonFear - FeatGroupDragonHide - FeatBountifulLuck - FeatGroupWeaponMaster - FeatHealer - FeatGroupGrudgeBearer - FeatGroupOrcishAggression - FeatGroupAthlete - FeatInfusionsAdept - FeatLucky - FeatDungeonDelver - FeatGroupBalefulScion - FeatMenacing - FeatArcanist - FeatAcrobat - FeatTheologian - FeatStealthy - FeatBowMastery - FeatCrossbowMastery - FeatMerciless - FeatRopeItUp - FeatShieldExpert - FeatSuperiorCritical - FeatImprovedCritical - FeatAlwaysReady - FeatGreatWeaponDefense - FeatGroupWhirlWindAttack - - 4 - - FeatGroupArmor - FeatGroupBodyResilience - FeatGroupClassBound - FeatGroupAgilityCombat - FeatGroupDefenseCombat - FeatGroupMeleeCombat - FeatGroupRangedCombat - FeatGroupSpellCombat - FeatGroupSupportCombat - FeatGroupTwoHandedCombat - FeatGroupTwoWeaponCombat - FeatGroupUnarmoredCombat - FeatGroupCreed - FeatGroupGeneralAdept - FeatGroupRaceBound - FeatGroupSkills - FeatGroupTools - FeatGroupHalfAttributes - FeatGroupElementalTouch - FeatGroupPlaneMagic - - 4 - - Interception - BlindFighting - RemarkableTechnique - HandAndAHalf - AstralReach - Crippling - Executioner - Pugilist - - 4 - - InvocationAspectOfTheMoon - InvocationBondOfTheTalisman - InvocationEldritchMind - InvocationEldritchSmite - InvocationGiftOfTheEverLivingOnes - InvocationGiftOfTheProtectors - InvocationGraspingBlast - InvocationHinderingBlast - InvocationImprovedPactWeapon - InvocationShroudOfShadow - InvocationSuperiorPactWeapon - InvocationTrickstersEscape - InvocationUltimatePactWeapon - InvocationUndyingServitude - InvocationBreakerAndBanisher - InvocationDiscerningGaze - InvocationGiftOfTheHunter - InvocationSpectralShield - InvocationCallOfTheBeast - InvocationTenaciousPlague - InvocationVerdantArmor - InvocationInexorableHex - InvocationVexingHex - InvocationTombOfFrost - InvocationPerniciousCloak - InvocationStasis - InvocationChillingHex - InvocationBurningHex - InvocationPsychicBlast - InvocationFulminateBlast - InvocationFieryBlast - InvocationChillingBlast - InvocationPoisonousBlast - InvocationThunderBlast - InvocationNecroticBlast - InvocationCorrosiveBlast - InvocationRadiantBlast - InvocationBreathOfTheNight - - 4 - - MetamagicSeekingSpell - MetamagicTransmutedSpell - MetamagicWidenedSpell - - false - false - - - - SpellListBard - - - 4 - - - - - SpellListCleric - - - 4 - - - - - SpellListDruid - - - 4 - - - - - SpellListInventor - - - 4 - - - - - SpellListPaladin - - - 4 - - - - - SpellListRanger - - - 4 - - - - - SpellListSorcerer - - - 4 - - - - - SpellListWarlock - - - 4 - - - - - SpellListMonkTraditionLight - - - 4 - - - - - SpellListWizard - - - 4 - - - - - - - SpellListBard - - - - AirBlast - BoomingBlade - ResonatingStrike - SunlightBlade - BladeWard - IlluminatingSphere - MinorLifesteal - StarryWisp - ThunderStrike - EarthTremor - Mule - CloudOfDaggers - MirrorImage - BlessingOfRime - BrainBulwark - IrresistiblePerformance - PsychicLance - MindBlank - Foresight - PowerWordHeal - PowerWordKill - - - - - - SpellListCleric - - - - AirBlast - ElementalWeapon - TollTheDead - BurstOfRadiance - Wrack - Sanctuary - ProtectThreshold - AuraOfLife - VitalityTransfer - SpiritShroud - AuraOfVitality - AuraOfPerseverance - Dawn - MassHeal - PowerWordHeal - - - - - - SpellListDruid - - - - AcidClaws - AirBlast - StarryWisp - ThornyVines - ThunderStrike - ElementalInfusion - EarthTremor - IceBlade - ConjureGoblinoids - NoxiousSpray - PetalStorm - ProtectThreshold - WitherAndBloom - AdderFangs - ElementalWeapon - FlameArrows - WinterBreath - BlessingOfRime - ForestGuardian - MantleOfThorns - FlashFreeze - DraconicTransformation - ReverseGravity - Foresight - Shapechange - - - - - - SpellListInventor - - - - BoomingBlade - ResonatingStrike - LightningLure - SunlightBlade - SwordStorm - ThornyVines - ThunderStrike - CausticZap - RadiantMotes - Sanctuary - VileBrew - ColorBurst - SpellWeb - ElementalWeapon - FlameArrows - BrainBulwark - FaithfulHound - - - - - - SpellListPaladin - - - - SearingSmite - ThunderousSmite - WrathfulSmite - ProtectThreshold - AuraOfLife - BlindingSmite - CrusadersMantle - ElementalWeapon - SpiritShroud - AuraOfVitality - AuraOfPerseverance - StaggeringSmite - BanishingSmite - CircleOfMagicalNegation - DivineWrath - - - - - - SpellListRanger - - - - ElementalInfusion - EnsnaringStrike - SpikeBarrage - SearingSmite - StrikeWithTheWind - ConjureGoblinoids - AdderFangs - ElementalWeapon - FlameArrows - LightningArrow - BlessingOfRime - ForestGuardian - SteelWhirlwind - - - - - - SpellListSorcerer - - - - HeroicInfusion - Foresight - BladeWard - BoomingBlade - ResonatingStrike - AirBlast - IlluminatingSphere - LightningLure - MindSpike - MinorLifesteal - SunlightBlade - SwordStorm - ThunderStrike - ElementalInfusion - CausticZap - ChaosBolt - ChromaticOrb - EarthTremor - IceBlade - Mule - VileBrew - WitchBolt - AganazzarScorcher - CloudOfDaggers - ColorBurst - MirrorImage - NoxiousSpray - BindingIce - ShadowBlade - SnillocSnowballStorm - PsychicWhip - SpellWeb - WitherAndBloom - AdderFangs - CorruptingBolt - FlameArrows - BoomingStep - WinterBreath - BrainBulwark - PsychicLance - FarStep - Incineration - SonicBoom - Telekinesis - FizbanPlatinumShield - FlashFreeze - MysticalCloak - DraconicTransformation - ReverseGravity - MeteorSwarmSingleTarget - PowerWordKill - TimeStop - - - - - - SpellListWarlock - - - - BladeWard - BoomingBlade - ResonatingStrike - LightningLure - MindSpike - MinorLifesteal - SunlightBlade - SwordStorm - ThunderStrike - TollTheDead - SkinOfRetribution - VoidGrasp - Mule - WitchBolt - CloudOfDaggers - MirrorImage - NoxiousSpray - ShadowBlade - AdderFangs - CorruptingBolt - HungerOfTheVoid - SpiritShroud - BoomingStep - BrainBulwark - PsychicLance - FarStep - FlashFreeze - MysticalCloak - MaddeningDarkness - Foresight - PowerWordKill - Weird - - - - - - SpellListMonkTraditionLight - - - - - - - - SpellListWizard - - - - BladeWard - BoomingBlade - ResonatingStrike - AirBlast - IlluminatingSphere - LightningLure - MindSpike - MinorLifesteal - EnduringSting - SunlightBlade - SwordStorm - ThunderStrike - TollTheDead - ElementalInfusion - CausticZap - ChromaticOrb - EarthTremor - FindFamiliar - GiftOfAlacrity - IceBlade - MagnifyGravity - Mule - RadiantMotes - VileBrew - WitchBolt - AganazzarScorcher - CloudOfDaggers - ColorBurst - MirrorImage - NoxiousSpray - BindingIce - ShadowBlade - SnillocSnowballStorm - PsychicWhip - SpellWeb - WitherAndBloom - CorruptingBolt - FlameArrows - VitalityTransfer - PulseWave - SpiritShroud - BoomingStep - WinterBreath - BrainBulwark - GravitySinkhole - FaithfulHound - PsychicLance - Dawn - FarStep - Incineration - SonicBoom - SteelWhirlwind - Telekinesis - FizbanPlatinumShield - PoisonWave - RingOfBlades - MysticalCloak - HeroicInfusion - DraconicTransformation - ReverseGravity - MaddeningDarkness - MindBlank - Foresight - MeteorSwarmSingleTarget - PowerWordKill - Shapechange - TimeStop - Weird - - - - - false - true - true - true - true - false - false - false - false - true - true - true - true - false - false - false - false - true - 5 - 1 - 100 - 100 - 100 - false - 0 - 0 - 0 - - - - 0 - 0 - 1 - 1 - 0 - - - 0 - 0 - 1 - 1 - 0 - - - 0 - 0 - 1 - 1 - 0 - - - 0 - 0 - 1 - 1 - 0 - - - 0 - 0 - 0 - 0 - 0 - - - - - 0 - 0 - 1 - 0 - 0 - - - 0 - 1 - 0 - 1 - 0 - - - 1 - 0 - 1 - 0 - 1 - - - 0 - 1 - 0 - 1 - 0 - - - 0 - 0 - 0 - 0 - 0 - - - - - 0 - 0 - 1 - 0 - 0 - - - 0 - 0 - 0 - 0 - 0 - - - 0 - 1 - 1 - 1 - 0 - - - 0 - 1 - 0 - 1 - 0 - - - 1 - 0 - 0 - 0 - 1 - - - - - 0 - 1 - 0 - 1 - 0 - - - 0 - 0 - 1 - 0 - 0 - - - 0 - 0 - 1 - 0 - 0 - - - 0 - 1 - 0 - 1 - 0 - - - 0 - 1 - 0 - 1 - 0 - - - - - 0 - 1 - 0 - 1 - 0 - - - 0 - 0 - 0 - 0 - 0 - - - 0 - 1 - 0 - 1 - 0 - - - 0 - 1 - 0 - 1 - 0 - - - 0 - 1 - 0 - 1 - 0 - - - - false - false - false - true - true - true - false - false - false - true - false - true - false - false - false - true - true - false - false - false - false - true - false - false - true - false - true - false - en - false - false - false - false - false - false - \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/Settings/zappastuff.xml b/SolastaUnfinishedBusiness/Settings/zappastuff.xml index 11e1e7c852..db72be448e 100644 --- a/SolastaUnfinishedBusiness/Settings/zappastuff.xml +++ b/SolastaUnfinishedBusiness/Settings/zappastuff.xml @@ -1738,6 +1738,7 @@ true false false + false 5 1 100 @@ -1746,6 +1747,9 @@ true 0 0 + false + true + 12 0 From e2434f4cc0a111fdd76387c7114fe32db0399bea Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 18 Jul 2024 10:31:06 -0700 Subject: [PATCH 89/91] demote Disable all camera bounds setting to avoid any confusion with camera and ensure we don't mess up with camera during loc init --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 1 - .../Displays/GameUiDisplay.cs | 6 ------ .../Patches/CameraModeManualPatcher.cs | 17 ++++++++++------- SolastaUnfinishedBusiness/Settings.cs | 1 - .../Translations/de/Settings-de.txt | 1 - .../Translations/en/Settings-en.txt | 1 - .../Translations/es/Settings-es.txt | 1 - .../Translations/fr/Settings-fr.txt | 1 - .../Translations/it/Settings-it.txt | 1 - .../Translations/ja/Settings-ja.txt | 1 - .../Translations/ko/Settings-ko.txt | 1 - .../Translations/pt-BR/Settings-pt-BR.txt | 1 - .../Translations/ru/Settings-ru.txt | 1 - .../Translations/zh-CN/Settings-zh-CN.txt | 1 - 14 files changed, 10 insertions(+), 25 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 3e574dd4e5..4eb8eda23c 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,7 +1,6 @@ 1.5.97.20: - added Interface > Game UI > 'Camera never moves during enemy turns' -- added Interface > Game UI > 'Disable all camera bounds' - added Interface > Game UI > 'Enable elevation camera to stay at position' - added Interface > Game UI > 'Increase elevation camera max height by X cells' - added Sickening Radiance spell, and variant spell points rules diff --git a/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs b/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs index e99a3f1ec1..483a540356 100644 --- a/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs +++ b/SolastaUnfinishedBusiness/Displays/GameUiDisplay.cs @@ -374,12 +374,6 @@ internal static void DisplayGameUi() UI.Label(Gui.Localize("ModUi/&Camera")); UI.Label(); - toggle = Main.Settings.DisableAllCameraBounds; - if (UI.Toggle(Gui.Localize("ModUi/&DisableAllCameraBounds"), ref toggle, UI.AutoWidth())) - { - Main.Settings.DisableAllCameraBounds = toggle; - } - toggle = Main.Settings.EnableElevationCameraToStayAtPosition; if (UI.Toggle(Gui.Localize("ModUi/&EnableElevationCameraToStayAtPosition"), ref toggle, UI.AutoWidth())) { diff --git a/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs b/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs index 3ef71473f3..21db29f457 100644 --- a/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CameraModeManualPatcher.cs @@ -8,8 +8,6 @@ namespace SolastaUnfinishedBusiness.Patches; [UsedImplicitly] public static class CameraModeManualPatcher { - private static CameraController.CameraBoundsSource _cameraBoundsSource = CameraController.CameraBoundsSource.None; - //PATCH: supports camera settings in Mod UI [HarmonyPatch(typeof(CameraModeManual), nameof(CameraModeManual.Parameters), MethodType.Getter)] [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] @@ -19,12 +17,13 @@ public static class Parameters_Getter_Patch [UsedImplicitly] public static void Prefix(CameraModeManual __instance) { - __instance.parameters.boundsSource = Main.Settings.DisableAllCameraBounds - ? CameraController.CameraBoundsSource.None - : _cameraBoundsSource; + // don't mess up with camera while location is building + if (Gui.GameLocation?.Initialized != true) + { + return; + } __instance.parameters.hasElevationCorrection = !Main.Settings.EnableElevationCameraToStayAtPosition; - __instance.parameters.elevationType = Main.Settings.SetElevationCameraMaxHeightBy == 0 ? CameraModeManualParameters.CameraElevationType.Auto : CameraModeManualParameters.CameraElevationType.Free; @@ -40,7 +39,11 @@ public static class TargetBounds_Getter_Patch [UsedImplicitly] public static void Prefix(ref Bounds bounds, CameraController.CameraBoundsSource source) { - _cameraBoundsSource = source; + // don't mess up with camera while location is building + if (Gui.GameLocation?.Initialized != true) + { + return; + } if (Main.Settings.SetElevationCameraMaxHeightBy != 0) { diff --git a/SolastaUnfinishedBusiness/Settings.cs b/SolastaUnfinishedBusiness/Settings.cs index 4f9f0ede0a..46f1bf10b6 100644 --- a/SolastaUnfinishedBusiness/Settings.cs +++ b/SolastaUnfinishedBusiness/Settings.cs @@ -413,7 +413,6 @@ public class Settings : UnityModManager.ModSettings public int HighContrastTargetingSingleSelectedColor { get; set; } // Camera - public bool DisableAllCameraBounds { get; set; } public bool EnableElevationCameraToStayAtPosition { get; set; } public int SetElevationCameraMaxHeightBy { get; set; } diff --git a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt index 1793eca453..e417664811 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt @@ -65,7 +65,6 @@ ModUi/&CriticalOption1=1: Summiere das maximale Er ModUi/&CriticalOption2=2: Wirf alle Schadenswürfel, die das höchstmögliche Ergebnis erzielen, erneut und addiere es zum Gesamtschaden ModUi/&CriticalOption3=3: Verdoppeln Sie den Gesamtschaden Ihres Angriffs, anstatt zusätzliche Würfel zu werfen. [(XdY+Z)*2] ModUi/&Deities=Gottheiten -ModUi/&DisableAllCameraBounds=Deaktivieren Sie alle Kamerabegrenzungen [anstelle eines rechteckigen Felds mit 4 Zellen Höhe] ModUi/&DisableAutoEquip=Deaktivieren Sie die automatische Ausrüstung von Gegenständen im Inventar ModUi/&DisableBarbarianBrutalCritical=+ Deaktivieren Sie außerdem Barbar Brutal Critical auf den Stufen 9, 13 und 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Deaktivieren Sie die Zaubervoraussetzungen für Talente, die von diesem Mod bereitgestellt werden [Neustart erforderlich] diff --git a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt index 6b206ce7f6..70b24fc89e 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt @@ -65,7 +65,6 @@ ModUi/&CriticalOption1=1: sum the maximum result f ModUi/&CriticalOption2=2: keep re-rolling any damage dice that roll the highest possible result and add it to the total damage ModUi/&CriticalOption3=3: Double your attack's total damage instead of rolling additional dice. [(XdY+Z)*2] ModUi/&Deities=Deities -ModUi/&DisableAllCameraBounds=Disable all camera bounds [instead of a 4 cells height rectangular box] ModUi/&DisableAutoEquip=Disable auto-equip of items in inventory ModUi/&DisableBarbarianBrutalCritical=+ Also disable Barbarian Brutal Critical at levels 9, 13 and 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Disable cast spell pre-requisites on feats provided by this mod [Requires Restart] diff --git a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt index 2b1eeeddec..a10c5389ba 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt @@ -65,7 +65,6 @@ ModUi/&CriticalOption1=1: suma el resultado máxim ModUi/&CriticalOption2=2: sigue tirando los dados de daño que obtengan el resultado más alto posible y súmalo al daño total. ModUi/&CriticalOption3=3: duplica el daño total de tu ataque en lugar de tirar dados adicionales. [(XdY+Z)*2] ModUi/&Deities=Deidades -ModUi/&DisableAllCameraBounds=Deshabilite todos los límites de la cámara [en lugar de un cuadro rectangular de 4 celdas de altura] ModUi/&DisableAutoEquip=Deshabilitar el autoequipamiento de artículos en el inventario ModUi/&DisableBarbarianBrutalCritical=+ También desactiva Bárbaro Crítico Brutal en los niveles 9, 13 y 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Desactiva los requisitos previos para lanzar hechizos en dotes proporcionadas por este mod [Requiere reinicio] diff --git a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt index b26bc0929f..da094e1b4b 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt @@ -65,7 +65,6 @@ ModUi/&CriticalOption1=1 : additionnez le résult ModUi/&CriticalOption2=2 : continuez à relancer tous les dés de dégâts qui obtiennent le résultat le plus élevé possible et ajoutez-le au total des dégâts. ModUi/&CriticalOption3=3 : doublez les dégâts totaux de votre attaque au lieu de lancer des dés supplémentaires. [(XdY+Z)*2] ModUi/&Deities=Divinités -ModUi/&DisableAllCameraBounds=Désactivez toutes les limites de la caméra [au lieu d'une boîte rectangulaire de 4 cellules de hauteur] ModUi/&DisableAutoEquip=Désactiver l'équipement automatique des articles en inventaire ModUi/&DisableBarbarianBrutalCritical=+ Désactivez également Barbare Critique brutal aux niveaux 9, 13 et 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Désactivez les pré-requis pour lancer des sorts sur les exploits fournis par ce mod [Nécessite un redémarrage] diff --git a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt index 1cca794036..524445d039 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt @@ -65,7 +65,6 @@ ModUi/&CriticalOption1=1: somma il risultato massi ModUi/&CriticalOption2=2: continua a ripetere il lancio di tutti i dadi di danno che ottengono il risultato più alto possibile e aggiungilo al danno totale ModUi/&CriticalOption3=3: raddoppia il danno totale del tuo attacco invece di lanciare dadi aggiuntivi. [(XdY+Z)*2] ModUi/&Deities=Divinità -ModUi/&DisableAllCameraBounds=Disattiva tutti i limiti della fotocamera [invece di una casella rettangolare di 4 celle di altezza] ModUi/&DisableAutoEquip=Disabilita l'equipaggiamento automatico degli oggetti nell'inventario ModUi/&DisableBarbarianBrutalCritical=+ Disabilita anche Barbaro Critico Brutale ai livelli 9, 13 e 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Disabilita i prerequisiti di lancio degli incantesimi sui talenti forniti da questo mod [Richiede il riavvio] diff --git a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt index da31c90728..3ddae827ae 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt @@ -65,7 +65,6 @@ ModUi/&CriticalOption1=1: ダメージ ダイス ModUi/&CriticalOption2=2: 可能な限り最高の結果が出たダメージ ダイスを再度振り続け、それを合計ダメージに追加します。 ModUi/&CriticalOption3=3: 追加のサイコロを振る代わりに、攻撃の合計ダメージが2倍になります。 [(XdY+Z)*2] ModUi/&Deities=神々 -ModUi/&DisableAllCameraBounds=すべてのカメラ境界を無効にします [4 セルの高さの長方形ボックスの代わりに] ModUi/&DisableAutoEquip=インベントリ内のアイテムの自動装備を無効にする ModUi/&DisableBarbarianBrutalCritical=+ レベル 9、13、17 でバーバリアンのブルータル クリティカルも無効化します ModUi/&DisableCastSpellPreRequisitesOnModFeats=この MOD によって提供される特技の呪文の前提条件を無効にします[再起動が必要] diff --git a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt index 7076f8caca..b12b9b1353 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt @@ -65,7 +65,6 @@ ModUi/&CriticalOption1=1: 피해 주사위의 최 ModUi/&CriticalOption2=2: 가능한 가장 높은 결과를 굴리는 피해 주사위를 계속해서 다시 굴려 총 피해량에 추가합니다. ModUi/&CriticalOption3=3: 추가 주사위를 굴리는 대신 공격의 총 피해를 두 배로 늘립니다. [(XdY+Z)*2] ModUi/&Deities=신들 -ModUi/&DisableAllCameraBounds=모든 카메라 경계 비활성화 [4셀 높이의 직사각형 상자 대신] ModUi/&DisableAutoEquip=인벤토리 내 아이템 자동 장착 비활성화 ModUi/&DisableBarbarianBrutalCritical=+ 또한 레벨 9, 13, 17에서 야만인 잔혹한 치명적을 비활성화합니다. ModUi/&DisableCastSpellPreRequisitesOnModFeats=이 모드에서 제공하는 feats에 대한 시전 주문 전제 조건을 비활성화합니다. [다시 시작 필요] diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt index 9b3c432c0d..40f45103fa 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt @@ -65,7 +65,6 @@ ModUi/&CriticalOption1=1: soma o resultado máximo ModUi/&CriticalOption2=2: continue jogando novamente quaisquer dados de dano que obtiverem o resultado mais alto possível e adicione-o ao dano total ModUi/&CriticalOption3=3: Dobre o dano total do seu ataque em vez de lançar dados adicionais. [(XdY+Z)*2] ModUi/&Deities=Divindades -ModUi/&DisableAllCameraBounds=Desative todos os limites da câmera [em vez de uma caixa retangular de 4 células de altura] ModUi/&DisableAutoEquip=Desative o equipamento automático de itens no inventário ModUi/&DisableBarbarianBrutalCritical=+ Desative também Bárbaro Brutal Critical nos níveis 9, 13 e 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Desative os pré-requisitos de lançamento de feitiço em talentos fornecidos por este mod [Requer reinicialização] diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index d3ce44eb01..c8bcf37fe7 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -65,7 +65,6 @@ ModUi/&CriticalOption1=1: суммирует ма ModUi/&CriticalOption2=2: продолжает кидать кость урона, на которой выпало максимальное значение, и добавляет его к урону ModUi/&CriticalOption3=3: полностью удваивает урон вместо бросания дополнительных костей. [(XdY+Z)*2] ModUi/&Deities=Божества -ModUi/&DisableAllCameraBounds=Отключить все ограничения камеры [вместо прямоугольного поля высотой 4 клетки] ModUi/&DisableAutoEquip=Отключить автонадевание предметов в инвентаре ModUi/&DisableBarbarianBrutalCritical=+ Также отключить Варварам Сильный критический удар на уровнях 9, 13 и 17 ModUi/&DisableCastSpellPreRequisitesOnModFeats=Отключить обязательные условия наложения заклинаний для черт из этого мода [Необходим перезапуск] diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt index 7d7526d156..8a04adda21 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt @@ -65,7 +65,6 @@ ModUi/&CriticalOption1=1:将伤害骰子的最 ModUi/&CriticalOption2=2:继续重新掷出任何可能获得最高结果的伤害骰子,并将其添加到总伤害中 ModUi/&CriticalOption3=3:将攻击的总伤害加倍,而不是掷额外的骰子。[(XdY+Z)*2] ModUi/&Deities=神灵 -ModUi/&DisableAllCameraBounds=禁用所有相机边界[而不是 4 个单元格高度的矩形框] ModUi/&DisableAutoEquip=禁用自动装备物品栏中的物品 ModUi/&DisableBarbarianBrutalCritical=+ 同时在野蛮人 9、13 和 17 级禁用凶蛮重击 ModUi/&DisableCastSpellPreRequisitesOnModFeats=禁用此模组提供的专长的施法先决条件[需要重新启动] From 827bd47263bf500cc9dd0a25d4f95991a372986e Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 18 Jul 2024 10:31:24 -0700 Subject: [PATCH 90/91] restate action surge fix with leveled spells --- .../Patches/CharacterActionMagicEffectPatcher.cs | 7 +++++++ .../Patches/GameLocationCharacterPatcher.cs | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs index fbbcf1a9c9..78264f7f22 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterActionMagicEffectPatcher.cs @@ -391,6 +391,13 @@ private static IEnumerator ExecuteImpl(CharacterActionMagicEffect __instance) // BEGIN PATCH + //PATCH: mark if levelled spell was used for correct action surge interaction + if (__instance is CharacterActionCastSpell actionCastSpell && + actionCastSpell.ActiveSpell.SpellDefinition.SpellLevel > 0) + { + actingCharacter.UsedSpecialFeatures.TryAdd("LevelledSpell", 0); + } + //PATCH: skip spell animation if this is an AttackAfterMagicEffect spell if (baseDefinition.HasSubFeatureOfType()) { diff --git a/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs index ae3e8ab989..5f2ae9a1cd 100644 --- a/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/GameLocationCharacterPatcher.cs @@ -472,6 +472,13 @@ public static void Postfix( CharacterActionParams actionParams, ActionDefinitions.ActionScope scope) { + //PATCH: ensure we can only cast one levelled spell per turn (required by action surge) + if (__instance.UsedSpecialFeatures.TryGetValue("LevelledSpell", out _)) + { + __instance.UsedBonusSpell = true; + __instance.UsedMainSpell = true; + } + //PATCH: support for `AttackAfterMagicEffect` AttackAfterMagicEffect.HandleAttackAfterMagicEffect(__instance, actionParams); From 06c0c2dbc9593445f2d2dfc0d520107998c7c949 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Thu, 18 Jul 2024 11:27:17 -0700 Subject: [PATCH 91/91] prepare for `1.5.97.20` release --- SolastaUnfinishedBusiness/Info.json | 2 +- SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/Info.json b/SolastaUnfinishedBusiness/Info.json index f5f9e6a65b..837f9a6c44 100644 --- a/SolastaUnfinishedBusiness/Info.json +++ b/SolastaUnfinishedBusiness/Info.json @@ -1,7 +1,7 @@ { "Id": "SolastaUnfinishedBusiness", "DisplayName": "[Un] Finished Business", - "Version": "1.5.97.19", + "Version": "1.5.97.20", "GameVersion": "1.5.97", "ManagerVersion": "0.24.0", "AssemblyName": "SolastaUnfinishedBusiness.dll", diff --git a/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj b/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj index 4bb6fdbbaa..0d7fc2d200 100644 --- a/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj +++ b/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj @@ -3,7 +3,7 @@ 12 net48 - 1.5.97.19 + 1.5.97.20 https://github.com/SolastaMods/SolastaUnfinishedBusiness git Debug Install;Release Install

-f>*WHvjEMq}#VM&~0sIAJ#qbu0&e&aT z)&XD$7MT%UyQWAxdU*RM;+)}h8<9L441ucWXCa_ws4I#XffJ5KxfM(Rfa4)KGrf$u62w z#Pj6L$w@6KlgX%9Ud$`)Up&3HR2`uJASi}J9aGB!UCJMFz89f*29gX{wJ?UZLfhX}5pE8ZKu6 z0$65yT@Me+q!a&v4_J%DWPWq+kV-@XaOdLIpE<~x4zf$mb;(S4T1aRtem;F?YISAr zUefg}W~5G~RBF_Ymw~pTEFS|91!oS<&wqcs zb~N48IR5kBF7E7Z{N^`XbKSbA7ik=!)#WzJIv4@_aROq+s>Y*;rdzX5;MaIfWV=_0Z@^Ss*R=FpLFE56Sa}5``NL?nw;`W2K@bawKTNYk-V@}Tt3(|LZK$< zD3bd6dJ}~*q@0XNW@Hy*7ze1iX$f@#PMPG(|8{5S%f<>wtZTlV0l>oTvou@hC|2dc zbxiT7!$qoX#_Ut;E8)HA-Qwq^ne@NTHlyopF6_-p&oLjr%;?N&DZIDkqiCuY+bJl3 zVZsgoMN4m99u1y6oSASt?fuU-3-eYs#*7w6`&9Y!vAqZ9YrhZyaMSV;KuAmhMcLKh zpZ(eJ)q$(87pd-_r|ExIjKN$wAyB(eA!oh#M0kwle5>|Hx*sDxWTUdlmyxWg1SHfAogPo5%CI=_r8q zXx)Qat_fqqJBsK}YpM$SpD&$18$kgLghU`@5lN#;OwC-3u}0diMKlNJX83}4>E z=bPt;8USe;4-mGN$P1nMcRGv*x1f1AE|G7uRiFBRhQnI|5Oz)4&iK;dy-O=|GhW2u z#!W7sa&nS=xfcD!ZAvhggNwEJ&(ac_UE~T=>A#r{r*>IE90()@0Hr~9AuDiOO>I@O zwaWVVdOD>|!6+Np36He6JD!AV%5qpFZ>tcv%1xac%3$VvQZZ@bZBPaQW5gdvhTP1^|}Q)rGZJi}HUX>5Dlb3V3b;$CDJ1o@ z$(b!KT)^b##4>ngsHC)fEW6)-HEXcsvhXh(o>&GU{od6ZH*4b(>xPTm=C+pIka+go zkqDf29-ytSr~LymK&2H&uTNW&!v3G7#$6#JSH|D`ah(Nh&NXY}bfjQt?bU7u8$i_V zAN)-R4wew=GVq(~DWU4^PF}kBMuJ}4`?Hc8gIq9h;Louagr(JkZP$xW+6RYfWY~z3 zrDeJVf_Ux#O?*3nGQh_;0I8S7L>x$WroR8*i2-hVmr%_QbjmOt1~oT0HWLPFi8pT^zjb+naQU$ituDpvw>B((up z51&39D<$EI;PY1p1$`^O+iXcwG4RKaXa8{i@{bFEF&J7y>Grd|zRunAbvufICe#0H zMFdg@<(jI`*x6Uz(UUgRn=oqo$!$kMLS6*X#RAYItSJ4lWi4Zy(>pOU4`YfrU8$H$ zdWEZG#NXCXFIBSIM}XlZ%YROkCXW+ii$3)4q`_T9RE0U#S|t)l1*8aXGW#yOpy;tn zqGK`zie#E7t$4b?KlozssG^h%1elpl(D8x)g6Q-%+lGJc7%gioV^=iYJE)W`&>cpI z-`SY$?`DZ4cMi^Gt{=V}95K*csyHgpAN+pnH!shfAZX}vDww{xjisdG{om9maBw9> zP8S8>H1Klm#hppvGKOrY^RDA|T3te2Pxp8L%sQ}#Wq<&nBNfw&V}t&x?OSDZRt=TL zO%(qsA^z?qa_vvG;ykv?D`4EtvFWK-g83i&H$>peTn}Q>*sH4%rUkdRFl;}O(_1BE zy`IbCvg{RXOKD`GYURa??TDucqCkxCpou5{`jRgg2zY~<^vdN3okvzkbwaSLrGjYb zk$=?$Ec^7?S?2ipYOHipV-)dF0R74AZ}&@2ivTdGh-cL5ELF$-rMs`j=@?KaZcR^9 zh|EEc;9apsstHXwsUgNxM7Oj@pIpch`9SpNvH$|1ycc6*+a(LRS7T8RpG>dq(f3kK z15|aJ`bx2k%|xKR+NL)Nt)@@@YY}))nlT7=pW!MW5FA2fdrUd9ORtrCO42fe@UX%2e5MX9#5$U`$zPM2di3u$oA2RFCI@@Od5z5gj>5*`UMOOyH6L?*80=w6@+_4WMv=1jQ6Gx-9oMQ+cl*6F~Uq^t&=`Z0w}5rmert&ETe>bSCu*mCE|1m~uItQ{x7d z;IW3!S3!_l{jUq6PX&ESjBhqyr_)qSq)i=PGK#k62o+Qk%PO>9OmrEYz zRKwd60Qgi^Q%aA+>-AO_jkcXs;xcU)lS%@;K_Tms{^?)J|1IP8C;rqurHt))%OtX z_1adP%D+g4qaPLN%dPFHk(BWQ!UwJjL;?YYB0z^L$+gMxIaNZYip{-~V6zGH?cNXn z>mX?Fj#u#Yfou+gPgfK(uU!?#cghh3l^RcF+dV?wNO@tUKRgtvBGeriA|N0#gEhCe zxyS3x$q0lVwo;rDfte%~>f9JqWJC@{WLD1ER^QrTQJ0wvG#3DK63Hin)nj;imT#^A zR0aYHfRPSBm#J4a=MUew1!U~hA4)|LuY`_6h%S)QYRc2Ph?!DCPg?5FykI5)0g?y- zOG!*YXV_mhmz$iAr5nf;!4-;to&QUc=BHd)9tA^z(dV$~<8?vV$NnV&U$=M=mp;Lo zN-RP!CgJ*$NqI~>n@Sal6sSi|_SVd{{j|0Hmxa|O2!P0LZeTz@9WDMz$#9+5SK$p5 zoH%GIsx07)7g}lH*;}U1KVf>G?oQlakJWJ)G(hAGAxDK!WFXeW#l+BLu^^>_i47z% z05g{1q_-ZFt)F>{7Js3=TAm7wBHY~W4WJS_cR9(+AN4u1evx(gI!c!V)!5Y_0wNNo z_1{eS_2stNssOtoO-Lnhg>fZ@TYo7b{#HJaIZzf-+f1mN{x3z~ooSXLkgN5zL4>P= z?s;;~uShwyk2&h>b~=kuCSqj7td|buw%-hw1tAKSR7&O}_QvF_>{@qs(44*yLp3s4 zbcK|q>H^K;Vk$zm?moRYau9Kv8NkqxfKp_~Cq>|lXT;xV)|Vm(;VigR=;AXuxK%<3 z3bWua)OfaX6_Bi-t$Tr|AzV0>O=r?G{1x_`oTAF)%QrIZh?y*)lOc*=Mc&ZR<&LcW zm=IM_LL$Xe8B_*VsfjNcCYKh0$%uGI)HWqJTowN+6Zn8z*#*Sxt5O9VmN3=F8g6El z*g*UXbw(;#nuco23d$!MbDJ8I=b7-Ap`9HnV}`RTZG)y< z7tnd`v#r6J1|wO;28ERko?|b@L4eG;aTz0<5c=e3YpGfmvSk!>MPk&s1=adWfX%C zQ?(Cuwmoc|Z49Np&BPEe(il^B^*z0{Wd?iY!exjto#Hf3162X8EZgCG$BR4StK zk;g-S+&%c|{?_mA|N7qV|M*KlWfZNGfv^oCz(Drr`VK(;@*G52HzF zmY-c$$EJ^_jarND1i^rk5x7XjeeTTh#>UptUtjO#)O+a01~-L_DlShZrZ@#e3MxYI zT1}!}5%1##-}5hmfHNS}+SHD86s3@*DY)@&y=E9gM4{4l3b|S#%4jRkYHDm;&nkO6 zwKg+oga@?qHAHmQ$g+m26jB$-byX;|1{|~g>p}!u-D_XwlP7+67Q``d$q_P>11^s0 z%^$|M8^>Rty%>M7_=i8J*i67AY>Y1e4ny;3lStzR(l>4a;4#JH4lsc<6-Z8z*4^4| z=}vc~r+c!pkp>-$4{%Y6RacMumzOKclZLOvr*eRe;tUqKR?SWC;w00BWI%d*RAM?- zB=x-OpI1U3lLWvdj`Q>YjSBK~)S%%xdO!#$l?*Nq>P#&z9`QFd&8DYf00`jSJ}?PL zKfkMw?)^~ZPfb}do(?zXQY9$6sW4XxU_CBrX^~nKclORDfPvJ45Dt%Gg}?v((DuFU zgWq*5jr)K9G=iZ~cgm+nOZ>BkF&ELJP3To z!UtZWJVy<<2y8_tUrlM|gYaUV@qI{F<=oY);mkYxoI@q%fmvex=PLMaUw%IDl*(pa)M!~g zS!|5=IfNHECs<{uuf$*S08K!$zq4Outkz^)2#_>nS71)~Ri#=_r08Np#Kp^&4mzr|Y zVzPeyiv%)J%#aBNFtk@pRmQUGl|aB$Cl?!q_6GBZ{%Jk*X}dv!Df5*wHUPpV;eg_7 zt~Wr2sN999tfJ)dtiqd_538$n(Whj5Hk&0tf6{BSY4kmD=FYq#TuP0P6oC#I{@KsU z$RyWN>%_L54#37Rz*nq*fba?jf$gWAYbm=wAK%*k`HP2X8@JBK02opsAdvAw0W1sw zg-UgF!~a{Hg}49Y=NZ6+oDQ5tM@_d&RO;pg4e@@LIXV)ZYrG&pcjH&%w^|Epo01(Q zY6UJ7V!#RIXc;;Vpd?%ffYG^eMzS;3`0;oD(Bve6!qN0CPoEwxF5J`@vDNVm#^}C}I074E1NIXaKQ@JY9rms_Gw8hXxbcV>dXGWPZR|jO6pnbPu zHpwNGC=g)L8H#cWrXy@aOwYDzwtjW5Y5L}Gr*|GUKltgv@2LotI3WmTbQ~QSK*w*Y z&HZ)lk%J*r{=EHXB#v<*z#?;TM(xkl^5!1BSSkMnmrVh{*cT;1ZBC=#|LfYDmwL5q z4-GJ2R2H#8m_Hw0d9pO!KUKs6kp!psB*FLo(;y%TlE|oNVsroe_1R0JR)6_yF9cwS z_GzRZvewi2)8toQmN*ZCK06=okJ%p!{E4d`R4@t7&}EE5}C^)XrDb^z5{Sxdyi z1OVKrBn*SDN?;F5v8|WoeQTPd-pjA{bAGua-@5Go!zm*605;zMh)`gZ;2<%0QeL#( z*pUJ_ep#8#Y5=lQNHQUks%ma;PI_;1g2xIZ4BpPkH13*?+}z}nTWLymtQxSK09g7r zo<3MD(-;f}chcU$@jWlF9kkxh{nI>%rh#8<{AMkUB9LoFt_NcU^pU;8T@B&WTq70(Cp3{S5#k)9#&+lp>*F(W=2h zLojY!Lk}h4{Oo6ar^=m9zkj*y;r8Uw<)JsP?es2btOYOuPr{C>)*ZvoZ~wM=GXy~E zA0Lna0tOP1D&S?waeQ%NVxq050!2wEyxou(N|~$u+2ypGsfjo@2=)w6AN_u#imsEZ zGpl?Cy1=u2dXxn|S}*=j31I2kpFJy9aLWqvV#c?#r}9$jO}{=}v*STLs%SO-KY~2{b~)*msHKrX@x!>03@Fs1OU*+sj}%VCU8voym$bdZlVG^ zM@;&4?%AcJCGK|H?{oT=2DSw|F~58>)d>7L3}_ZD8Gs>?TUek(PuRYj(_Fc9tO-*u!htCNu290?Y4HAM07_Td!_a-Kt;JZ3=*bf|g#h zQJ^2G&GNc15Iky=fB;2L&5UX7WOXZ{mRNm=k2Ze#&Z7vEY_9EnG<>7hlai{MU-__I zC8-a8VV5{8zxMT{xUQ_MY_5CwrQW&8gROf0_J_APthZG2)+`fwCKL7Oeqg3r9 z=JV!Txy{cfKBlf7PXA@yHybdGRmz|M2H6ltvUvAjiIu9P_%oybp>&RE$8Dy(G&6Df7>m5^*-IJbTBKPL2 zL0I9wC=mQv#Vc=h@u%bIweH><+1IDWPd$_8d#a8%cL1%YDSLcY=b30dZ0W;6K%@vk zp1?q#ppR;Eluj;aAdDN!_MAWbn1h2csikg>$m{?FxN@6FG?{?dY6t`oX^``%xF_QrbK&U=6L z$*XtYTD@~m@%gF#q;m1*b;JFJ;&*nRzWMFfUhi$Y|NftU>Zvm;L4@OG%dOFo@e-d~ zi;J8%fC^a)>Gn@% z+S^iXxod4j*v!>9I1v7g;Ppq|(uJe$f5+@p$@1r2XYXRL;*Y zn#U{s1)J+7o&QJ(2;DL=IvH2pTUq)F-Mt*{V-hXFq%YFTVZldmWXZefzCzEk!j& zUWkQ0Up+_zfK>u{3=!Zc8cM&Zv*$vT-l$!=<@(3Q>!SMg=0M%8dfn)}#1YX(27_HhmT{15;8x4-?;SM^x!tBy!rZus#^uD7@6{;QVL zczk7}GLe!du2+jx~IOon@P(@)98~8 z%g4aw>e&%r zc13n;wfF6o;&qe9YO%I@?+%t3I?+gy9SNC>{AG}xMczIX|@w)o^E(-QXb~-BG`LI~#zO|-m+vw-4 z3R~0XAJt3W{Gf70cIr8e_vfxA{JGwmU=+t>)yv5ur@ZaGnfKm2T(4_!3~4xu5afb4 z%?I9G8&33nEd6-X_OyN@;h7$P%y+*o{kY=VO9vk|VGIh0NJy&a0v2CS?e^y%Hh-A1 z$bBi_vKIqeiTuOOqj%oASNyHJMM9P2%DY#zZJ%YLn2ocV$67TFf7VkIdF`8@3=cO9 z#FBl<-M-z;zk6kU^8Jr1>T28yP2-yd7c+ho;EAdI7yd~EztJ+`26nmOr8hpj_5Le< zv2k|wVz=iNw}H`rm`L{RjfaXCUi$Rw@4a;t(7f}Y@AbFe{`B2)-hE&vw`PPoBAztniOytSvZ?4~FJ@UVHiKtKaIFTj3G;@BC8|;8%)^H8?#~ zok%wif1XyGXIJ;mc3*D_u7<8JobCFK?ZHo;p3lxMtW0%kDRZH5C|2MuX<06+2x*Gy zWM2JVVPZ6H%5Bf)`n!5|S66p;&+IZn%!i{4P^d%DlF9U^Mzo)| z8J=EjKRxoC%&={*GL?zdqsM+QN-P%(FoHR(Jb^taEXBZZ`G$ z)!RN#`ErwE(Pe5c@jB}2iiL!{JQORnpSiskg{#NOIpOk>hr!+5z0uZUQ%kY8?69DI z)V@^I@ZSB+8+CFGPZ*2;S)ugHUtua%o4Bx;XmP5uk9IeF6|4P~x!_swNMNwmpVZsK z^A#HleWxddy#8QS>>$G+K;+s}L#lUglnaFx$_pu-9yfVd62rxW7-eVxT&)N>l_0>j zBtS$x@>F~HG%jRC?GVzsr2VyWSatHuO^Z^6>&pKYY?F<=NoZT-B&L3~I0L^6Zp1 zrL--%XP(A1pp!x#gcMJ2sr`;%+e{G|k&F*#N2?3aX9ZfPN#?uQzH&J2IfyUn<2rP{ zU{!dLA#=l(mzo2zm4egv?i3JwVw5U4J1h9gzjcLQ{;8h_BG?+@7^~0IUmw&TeA3q! zI$Q0ZP6UJd7sm`dSt=jhs~Amjd}04HdNja5?&*{cP`7GD(9N#n>G^#p|4aaCa3~Iw zyUkGpfKn9+`1KqMVRZ-xCc~T@XdczkkCVBl!>8j}?Ajyd{MeXPfHI`VL@X01DDYAU zfLB^}R(~9pfm3_AO34t(%?>wuMzYI90U_dYk1t3-l+OyZtK!I1q9}Ok2|WS*!5L!@ z#*_7mFE8#0&{tps@KQB?oPv;8@7B@C6@&f(!59{p~%f{MD zeLs2LMJZ4O^I6DUN>O1C{v$Ui+O0weoHdh-+gITZOEokN0&g0uZs5ho3#&6u7pHT$ zz0{>*h#es@KvJ=FuDMl2S6(ECA8*8Gu=ZPwCnHTf0d&cTf&dXU5nF^4N5 zz=2YU07cJXfe9sd80__mV8&VY+*5U!ZGjOy`n&!P(Qo z-M!R;U8?qz@p7Z;KTeDODC1h*S_}zYtaqG0<4M@aBlT7cGE@{A^1q5>eUjTUMv1g^yvSjm;U3k zfKkzuSfGR)w=~!~d&Y<(bq~u2gbd{TL7W7Oii-8m6Z=!MvxP;Mjcj-GJ*9vN=?Q%p z2*&T$-~i$X0(d7tBC**$b7-#&Isu+r46l>Y6|w*@UpXClyM?Yi3l1Nh~+2#Dy4at;Gx-xTuaiNnga&Pxqgu3k9l zniq5R1!2r0Qg~*q1%)d@1FBgzozSaeW`Sa8rg~EX-TMnpgC?ECKDQdSo6VZ}`F&$- zV4m9#*)8P8mI*pF zWm9*R^>+jScmK)N=J%@s^av^j(rgrmNn=b%#pheAtygYe3ZS@jc5QA-(YIj^hl2#H zoL?v`LX&c##WbD>$<4x=i~T@|fLwn2FaQ4Ae{`0{5U(O6ENcbhu(R$oO{ z1E9G7(YOERFR#{nL4tw0Q-(=HLJw+xl^7A>N?YL43)GaHOnOe_Q%UtaU4*lQueD}A zR%o%yWAQ$d-7N4o=k1S!B=~>j3+h6@QjN_sg_*waqS+iX=Ue_l1xCf`a5abOAgINR zr?aE8p0%yjqyzxOd|nMCh+H6t^xOMg1Legco)C486mj0ccfMIG7Nf1{<$Hk$VO)0b z76$@huQ*x_2pBS}OK%7Q=r4FYY^ivxs(RDEmsJ5k6(iAN07XGUFZbf1v!|o+6CS0T zzxlyUt)l9FN~yviST3W~0#RsX)FQ$}`6CjVw?&=R2Wy9Gg|mI?d9qj(K&hgJF485p z$eVJzCPDpm^Si?p0~9a+>K9#^7F2{lSFp7eA{kjs9SaFPDE7xQ1q?(2(4u2yxs$W; zwdBEGavlI|T>hM=fTiT9MK~WB6%}nXPN7Ej@&Lc|unM4Pq-3Ng>GR?+WCEpDiX%je z27o^pEqOz(7`6xv!1BEg+WofsY)1kREg}HttRe`|fNG5P@sWawRRH;1h}QrBZ4!}$ zsHc3+<xZI##SO0Yoc{ZhTl701%NN(K7%MQe1)onzq;7QY(h-O^+Yj zE3!8E)!^tM4s1|GdI2a6hR`AW`q8 zJxu{?-W}I<3en5j-r+_Qud4!EkOPCRVrF8)J`gfRV|!a8eZ~O<3dyQ3s*e6pkSuuu zU|>x33x`|V6FUuMySgY33O5PhFcX@d*4*srj@}j^ zG2DPC+E7{@>>~gvJ6?I+UXb_UoRbH(bO|8r5JR~m{b)%LfN^BF;4Dk3Kd!OQf~1rI za4hFzY=!8_6U5*5$;x;)0+?_bS0OjN2#pvxk-n^YzHoXW?WvulCD!~aNb-O{XfJiJ zcRt>CvrmRQ+<ROM8CIP_LnST$36`q{~PrPfaLW5Qr zfe3JNOFFMd>McqfsE9}fwYQxt;3TqCeYDp#E2hZe zWSjaVE3qP}l|1nAEO57zy8Qm?qS0R=FafS|xQ zMICrGBX-l{$Dz@z!q_0$(1U@<8$W=CVHT7SEg8@DZ&?7M3m2U{P$F?Pu8QK)vLda0 zYkRA?%%g`Uk+wI|1bOuBjd(mKedpaJG~XG<2^?1%)DhMxB}gX-z;x0@y_j@F+<)*z z0{E)aFBL86q$^esU=Q&oJ-HGCf|rOu==ac8w8e7l`Q1{tzS0T1?rI*yxUxS(4u%35d|p)ReDvy#1=E zv@?5Bcx+YxCnR)LAXQgTxL$!#-BZqJZ*%K*=1wutPJJs5aLH6CU${Rxah%E|92irq zWF>^K3G4}zS}nF0AUqDCdcmnH{W`h!=f7}*c+lkrjoet#4TvH*qWT~n8_aORy|Kgi&R=E$PQ~y*4B<&FiSj1PztIuiI?)=yjE9*h}o&xs+Wr8 zU;B^%0HPE}OcKP#r%$Eq;*8vs$%aO^7);k5=Q*V$fGC&qMK}Dd*OpU9g_FAort}@h zV<4$w7u2A!@&49jg} zsS#Be3Rl%J9k`>_)E9DOexx{B1zL6JY!{R?FWul{_51cDiqTAf5gC(UYdP4;Wiy$X z-SU4NjEJcLifh~%( z&6&iqtl5~!nnt&xglxSHiPE5Bz*YrH5g0yr_w~KANsJU(d%ig>28Rxe+ETeVe79_g zt~p#^U!QEFz-)l$$8xAE9=Uxx8}}Uew0O{nxVoy{HgR8}bx)1=30t3m)na={qpVge z<3II<9HBqfR-x9IDR`>nWMb=-LBFe$P4N<^Da=dgDG}xHWD?oOBg1`N7(5@Bsgx5? z+&n3udCA~guM%4sGR4C(4MX3aHHk&wP8+}W4UQ5&fv5ve2M&5n;K1q$eb%g>$>>M7 z_f@*N9D+Fkb)(?d0ASkiN1rW@3!+llEq`$h!YznI;2KJK&=s$hO$ss(L+ zi?)`>PDi$V01OR;S;*id223vLL~LMdTi<_RmFcBZ2q;TfprQcncW$?ptSTgb)__#U zr(Iy!{96YAFAZaNd*x(((6gzg_J#6~GlhaERJJAaXQIJZ&IG&t+p9Tn=6iyFs*NX^|QX>Vx ztHsqW*MWMVwbdvHKwr<+;|NIgfJmMc4~}%VKWqZv|7zZYe)DjzQ6NyQY<{{;nHrX~gjHbvagLHbuuD*lA70=^|%DxwE(-?%^0QIfSp0cuu z8k?s4Ar%!fc}@?jN5I_izD|N`(NK0TUAdJAgD5}%@DXuO#B~rGI5^N-4)$dUens`7Sxp&`)Z6|?N0K3YLwlmtMGQHr*e-3ZWi4FY*(?q&^uoC761LreR__W9On zS#4cFWxXq!pP!dn3C$t5m@^yJIh6)ew$+C$F1(s7{;mJ4W8!yZrS!Z#X6~jalTEzt z)x_)Z^b*Qh-0FzPUkqITTz0&&WB7WiOPuF*D)3Ya+y)@an#;-_Ha8Cmj-pPbKy?a4 z1WXgGd}(Y`5wB>x!T%%&zBdh2dKaKu&hjQl2)s)Oh&R|tpp`tsOD%fmT)oQ zl^{qbrgmqJ6V+M~0E$T4G)u>!fs;9-`Pd$wHHyRlsII2H@sq~JMg~f&WLRm!uDa9X z%m?Bcmcasz(>iPF_WI;p^H?1MO%YgjsLJVl7?_%y+1WXt9qI9tl6D2AAm=qCo+u`E zQ<9bnB@k#}T3|7uu_3eUKkuI|VoJbdH>D~7L{QQ#_Koi^PErz=iNxkbyE;6&H`dra z_+a>xiar3`T~~~O7HuH_n{1q$t8GX-X?;%_r@_I-vB1341X$0ck<$rD#yG{99l8 zPkX1UhTL4ZP+d^Vu^f)~+NpSo=)1rT5r-nm5Yu7Sn;7hF?urE~D>?xIaM#orc%@qm zlHSIict_<#9qFoSj?{hd-s>-YeHYNu2w?H-s?|%OpzZOjgpv~z3l&iodK%>e{qf1d zMfuGHumkn8kF%+Q(TCR*0Gv0{KGqurO%D(K-+1la_g^X39wubmZYKM<+~-*{03ye6 zt)krh1e8#Hn%S#3^~5VLgpxo4;}#bcq_7p*#e36~JtyKBoGFvX3d3Y+#Qm%PdGolg zL{@;93u4`u(~*5?B01|?^iVvbr_C-{ErICr;b3RY%-X?1B2SlWZ_l4~wR!+;uV5KG z%?%|~pg8?`~Hv zM%RvT%}!-KfXL?nuxuUJnTQI2H|J7?160gYS_vVuJ(=YFE%#JH8+=av;l}q#rYT{!hx{5_KuCj^l2{JrzX+% zC`Q`LBQ#rh92Q!K73WseWkXUIA&VZC6-B@Q#ZK^fW>{NL1|HdZAPr%&5*nipOCpdtbA=|;gxm)%Yow53PeQyI(l>}dX{RV@e% zq%#SZR!aa#0(}+cU?KJ7Y-Q`bNq4$6YL}4m!ooz#5zYsEGJm3@)d}FM%XiUeu1xq^ zn_s#&IxpS0Bly4C)@Bs|ZH4Fg2!zO`hmVhs9$_Kva(%jOtxl9sp%@HZb(no200^ zU!*JS?;~->8ASouh(2_&oh`=zyKKxP7<8`jaByP%eW`UN+t^&&+&bX|AS3@YVA0q1 z_#l&=n9b%a3?w70RiWS%VebJmuy%n@7XTwwn%C53ho~vwZ~9IKD17Os1wR1JepBZ) zpmgZK@qqKBPdw#QhUM~oT8OEnsI)k{mF~!7?ydLg0FYd*_CaGc$9?2SF1b?ZOoTNRqD`CxUY_ z=71zrlqiu5*=69f2E*UcD5W1S*0xBvX2I`F2@v>5BuI2oV61?w!`!#t+U5 zrILYpS!{m53WUZ0RVAP)_6u_GUU)nk{h`GHtAeCh2{=jsCwP{Q4*3f#_3_yYKM!bi zA_7FZNXnpLX*41aL}5;Ai2D%~=MnTybgKfP8%dLe2X%+|!jqimDjo{;ozSF^~ zKVPJ&w}tKfO$QpXii6^A@$RgJFY}}G+&oDtpgn-ND_seoIq(Iq(3?glu4Zim&b^SlVi% zhIlTGlG4tOhqWU!nNJo3kA=JdCIfJPR6g1|H@Vr|(9UUwDkg&S0~%h0DOKV&F`&+( zWj%Xo-koZDRW-AmV5+MvX6NNBEzH@nJfsAXLN7HSgw#oC+8aD(PG7!LJLj1jYpMI1 zA3!5{F}zI))I-nkaW*sQ*-126(Mbiy2`+$Bkh4C%Z+2hmxhx*nb%hGlh(jkAhymXr zB)fExNJzq3TJsDqxO<9jtogBKhbT;GoSY7d>p{EJUD-R4>Bv;}?C>un0GcW2`tFJ~&4^T=q1gwD^3l{A|-+v??@e1L^Klu(rW$G!tcz0W}d2vqM#7{|$> zh^n-9qRVJ2D9h9eXYIMx5ryN^Wmwnz)BSXl-B&!>%<=e4cY%-u_kmSVP?E&tCzN`+ zk4SVvKCEo6R$B(3$X4{757zzh7MWazmKONCi-9R&Bim8^Nlsin$*WX;KUo?j);WHl zc;@gpv-3DR7Vm!1xdm-E8a~hi*e8xp1eev@ale$(OB0z+!Qi$1O(S3&b4i`X7Gpws zAu!~XO3N}{old{xu$1~WECALi-QTAOF)cGGv~BlVt2NPJM@O%aXsE3n2?8{IBc14d z5d%T6@y_k7%)#uxQIz7s!#$^NN12#VgzTSXYF0s0$mLK@e!PIay z;I#N#8u3US`(&XD?V5D(lX6kmT`i4D(WYxa4lPv14>D`!^K|1fJaYk-xle8}fB+Qc zUBP08#CsdaklaaZw)pM&*%9^M%{>#pRl@`os#3M_YxIUMZm!Q7gMd@`?eM)p|BknJ^DU+_g6k%Lb2zYg;GWm&Lk< zrq{l;OhUdjR+UL#t!pmsUf-!*R-o>3;LOs!7=_WbD}3riXD!nK;Z+uT%yPHE;A4t@ z_`49m&&#ScEfBDWe2145-?nmG;7bzI#R!HmP7NsuuTv^bQHMZt-N=m}wP$dp2nhcx zMVLt}dBHYiz|TMWH;jRRRK<4yC%; zHBxp{gYtd`bq17yHsBWHj}sHA$?MrnZWAzt@%QSL^vp#MzxBp9Kdk~@jEhiAPyyFIxxcbdS(zvZxpei7Gp(&< z&9x6}8yda&wD;oT&5wo{>O9in>Tv4Z*?~=+?uu-jfN+eBv)FTe_y4w zjb#mYT3a91R%Ry)tn<`PQV5vc!B##mfl&`;U&u-NPiUME&+msR z)HR7y1AW8s8y&65%;%e*9sq!3pHu<>f=Wcl<$#IG;jyvS=E279))~*JUMScsR-9)t ztqZFKGD+8md-9?;K8uAmzTSp<`;%)kmD%x9*MLiJNo;3og&@DIp*4Huc3A)fuv!V^ zVbG`$fSaEde>~XscrHD6z1tSy*CQeYLD9M}j@?`q^^}$JljTVM;fA7s+yoAj|7XAa z-Ci;C`<<#f)+R3vY+iD~RI^D*ZnmHAYFDxtC5wi%(9#a%Vpm63Z{=}r_@mKKJqTdM zkO#_wSOP%QWU^zP#_Xn$C&_G0beUcA)ck;Y^>o~`RXBYVw7c(b%T4tio942^xkP<| z%*yG^zV4X^Wt*Gpo0ScR4Lg+y0{|fb+5m_E5etBT!&&!k+0~HN2%+0RlS9njCT(t)c3E>bt*d+3nYrfKzTM%`zZjq42=uTAQ{q%_X2> z&-#ochFr5enOCn@-kluYdQ@DVyzs&E>j4301(kI&mr5`=_MmanQ+DiGI6jy-@9Q@W z2trWohfEvebNU+jN`-8?w?`%u1|oBe$$mCF$!;zo0Hm7*kl>dR zxXi;&_Ow)F7f#N{kG7l|an&@a3}jUug`(aOFPH0eX_~8X0Ejj$H_7!-Vp2Ns#y^zz}+BuDT@_pWun-7|so5vn5(|H~8$>0(y!}BKL!PZZ5 z*{!a=Ov|-`h=Q9Wfz$9_EkU4NW4I;V#xJ*O0r9E=V~#+94t$Yc6Nc#h7x1f{;bJXr zUWuK}U_dLNq|s=dUXX=7^}vV26c)xHT8?4N#xbK$pO2sPz1dw`i-HJ26)!RtBAMI@ z00wt@%yV+EmWO9HuL_gLhq67&P_t80kxhxIUD^4`tiWywk+naYN;Wexyr zRqo4OpNE3T#{r3ni4W5^8aF&m(g#kXi=Wg0q3!7jsCcAmn2Fvf(?s%~3jk}aX_A`> zu2>;VRsXNxhxN;J64|$`7$05(0ciO+CLf;;>$et>a9D+LIx$3(66=1!+HPuXdTVv< zQFHeW4G1m1)B`-ip};ShZ2%x~B)1Rd)@FrGkQ<*nS)25DVzOP3$L#~Bg^)0tX4iy& zJ2~lFTNgwigpXxz3i8>3Dg^*#V<8VzB?4TytMbF*#`X5CwZv4B-$3M(M+)BW6iY<9 z;S#*O+eh?vT}FyYkFlU20_EJVKg$FBSFC{6?SQ3HcPMLu%lu=C?-@@$>93`5jI`A( zi}+BikD&OC%4F9_HsOnZKGAi@3H-ASfVbX7^Z9arsS5=VF)issK?Wxqvz~PUYsFA6 z^yKA|qvcgS$jat=_vDZEajHy6l9r$xEUD2n@}5;Sv(iHkW?pMNqIj4uQV|>VP`H6Bu-%cVcxHQHJ2QMVHQ4zgYgNYrVw2`YP~w#U zfMn4Z_Z*&{d)5V#(|Q{Pg&xy~Sw*H8_;TUJdpvUu-Rlph>Sa6th$2;P1%QnPfO021 zgKxrftE24pLT;vE@=7nmiPF_jT7+|IR4hbh(@*3JX?m&E2pWq)*_sDc>aST)SpOunuP$jtQ1Ti+jE7c>wfTW-fV5HEnB~9iP%s8 zP%8XYehL8ivTguq!r;=mu8%do`=E7rBy(r1`{iD(23hcd(&Z}((*%aLxAMm6-l1r# z8-R$Q!7-!7?S-H|APm+2ui}UJgsMo2`ptHGM+A_77jG|{H_y&$C7udUl5M`&qL_uz z6so}LE7!WVGaXMozWZanxBVdC@{Zx5b`(TfK@}8gx6_J)05r@D$*Y!Yf--?cI(xj; zf-==T6)k4H6?*~#2xh5Dt`P%5;sBbq%dUGQFUvc%GoMy$KA0F2DkN`Tv$>F|3J{}G zQ%QwQBwB8znCWS=$|G;$z297{tS zuY~6)8xnprhy#;G;W=2w>2?RWOF>oD5`chA^=wE6(RRP~`hAC~W@NCV`|wXIXq{-P z1_%t7`ke*k)}|c|mTs#da^1YxJOupBHfNQYQnu57ESv)W>-gc{s*weJ;4=4{8qn`NYEBk1$oeodCf=gONZ(nY-o6CX3pK( zyfc{2zEW!NiWhFtb#|h7R zIuW!~bop_Jc*ZW~X-4CX0)Xy#H@>~QRREWa0Ih;WpQ(Wt@<3$PXC)T^osbc@cYmzo zdSmKNZQJ#irIeKIZUI+7h2dU*ldI%jx2Sls&E^<01F6iH-W_sFKq)O({o&;)_`kCW z^hK&`VqRSsD18u78AP0@zIkzed~KB|j2AY=Od{Rb&Vw6>G0hN|Vk0x2+nzhgKAxF4 z8jEMvqtE;Sie4%);uj%dh4@8ESE>a7TlYm(g%|U~+gi zy)86!qzeV|?t*7Rn{=q*ZIo0u4EUcYy*g^J<@jS&!aY8-WR8@t-?@Iy(u*@53&AXHKmpt~Uu zD3L*+i2Q{g{O=3kOFu6y7q{C)CV5k6tQ|y4T99}SC9$=0fr&SJAt~dki|gB!yhzm9 zMoH%RVC6x|GqF8hKQc4%Ak$kmBCO~ca1j8lAplDAqv+7(PCV}*n)8ak)RtdzNfjWh zhDQJ=;2E6VgJZ2%j&6_a6txLvVCwMATC2h;PIhBJh>M+_-TG#Bb-E6>tTz^jJd*@4 z)gq{SP#~-JC>=!~S>U79Mw zaI#8nr4TAzPVkhWWg?TC&1`RPXC72$*PeQ2$HwBNFUs2R0$vpe=)M$yfq@r4c>W0H z?rmsjeDMBG?Y-g3nU0yt+G}HPH!BnZ6ZFstIE%3oTvt^TAjDl{L2aX7?0JYmpq>Ep zCq7fDg@lR%ZIQ46zBdw}+Eu|)VC-hu>g!7&<6TN?d|DDqd-hiOay0;ssW4rOoIn9i z6|w3?)$1~m3S*{*k8^98iHX~7HL>Z;eS56*i1*mtmm-x;axX}{Bt27uvrWL5-P{t+A-nf-w`gTz4Ktg zUcFv9a{i)xC(Bsfxi&o5~!tMy8n%UHnOJh-l3Yx29LAnhV5 ze)|W$XZX@@__b(mnO?wb*Wr#Y#-ba6jSB3S#BmSEkALICbBcF=X0}j$F*~l>3E;7&@Zz!-=Xy}`)Ea?x4BWES2d3{ zj*Z-_%uJ+KW(E4ioyv~xu7+1{J(LMS2V2}60HuK$!sT@iEKJaiS%vCaTd&5}cnt+z zix#+%UZ=zFK#4ZeQ7yCxe-H7)e^6(#cHyYg9a`M0^aATpfTZT!Nn9L`@8j(wr6QhG z;r3l4Mkz3eOzkRIYnZic9UV+f9}DJiX0{?RlAYK(nAsl5Y|V8~x5cN&C(Fvp2k$RW zkEh4iW`$0;=9?WKcO2cxc2rg#-RSF@$z~^d@810I<&;asD0oY44Gy$hu39oK8CY5* zyFW>2r>0W2NJBfyYQzeWVy0W|bT}kPm&^OdLSxAH6hHPG35~Q|N$4zQ+3tNEg7HQc z2_97A)gDg>b!T!kPEqretRPHr3gSsDeP)o5^Q>v@@z(g%_}szi#!N=wQ;clcCnvTB zGc&{6YZIQdr=+>T9~bi5=R1QV4?1QtnU>ycM>g9r63>ksOs1ypy!ld+!4wqlD7#Ao z#&FzSn_@^s^LX*MdPGe(+Uf}TU=0G23L32U)=hGMKm`>6rbpm|eXk|(+t|j-Vqo>ACUeEG9C)pbgGl!YsX1Mn(y}#!|`nP%}{MQtS4xEA_6$BXM z*V@gTgb!mF#l$McCq}Z{&718^6BfBN-zK6>Z1>vvU5V%^i)Fev7FwW|*4wT1R&zeYi^JS!2C z=48AlL;yi@H0fqEa@o9sqa^yq&&yf5IK5DfIT~&#fTkQANLo9phGYeP7K$xw&;RK9 zg|p!=vP(%6aXHi>b^LJvD20j@6Q#{@E4ep58R!EwCqfKK_cRu6jZ2Rq+t>qkfvD3SUuQm02@PMyjZ<9 zYYN-ro|F!a-pFpMS$3YZ(b!UIbU=)06<&i903^{sRnfB8@s0Nyxq;+(e0n3>QMYho zth~+ln_dh#*d1T zg_%yZ$+D~g`kI#cMIrwEU%)T_3YHiGm0m9QJ9;0RVV(Xr4?cfP3%OEY^P-@9InJWrz1t7rE($0&L>rs|*5pprlb2 zicsn%wqHH3wb>{h3-n%}P!mki^kg!sEx&zNfv}v0r$IY0F=`ZOryOXf6<&b`@V|qf z_;qoO8+ctn?Qm3Nawr&77{%h!spGSGW_9hPPJ@!2cLs|YF{Yp>+C-uy{z$zGLvfKv zi9q)KW9n=nl{|d?)xlREZQuGllj@6?+OAyP%rl@-iKNNCI1rMSGR(fv{GcLi!HFxq zGM=fQo-CIdTE@~wrN}DPYQ#|U(xg2WlbcoGxS_{eC0&RuM6w{-^1_zzOmf~wxK1px?rQSjYmn^YTyBPoE%!h%-Q%{ zS4fQN7CIV|I$j8b!YT=;#SD@>#bN#B`u*LC^#`4n(m=_deOjS2+vQuC&UUKj`ZWMN z;@Wpv^>jF|`jUaYhHs6P@+wD9Je@SMjQ`a)q5DhXo}LV}CH zP?;qQS93EKUuW`K!R;%ijk>-I^}%`Hiejgc1SQS!`QcBz1Y2A^eEPVK5mP1c?&;zv z=9t^A;Q;3uQo)03`)JP*@T>hc@W#E-3t?RN|1N~E@aKz*M998LZ8DixcQ!d-Nsgp& z1aqHn)z4Gr)WJbl3=_?d9uJR97e>WTlp-8O!GFDnJ_}}QmOGQl&X$JEXtHK+SLmuP zPbxYm0(ss!D#Ed-JeL{H_DOllRFU57Dq$4WV>5Leh;a=`3t~=xKCL#Z{T4k6!5%}w z9}4RKzmK2z%2GlBlr9uf7lal%I(aY*kR+u7%sjr;CzWuc3+J;JCRU`1rFI5ub1gE1 zND1}#)%um>aY@}pXR^G0Y{Gs~k-SK*T%_t{frb_kiAiTm?(j~BXN429y5Q8>?4C>| z?cAC0(fNBSNP+^i{*#?TAr^H6NTAv+Snt)}O?%jFd1=*~`B*e7C|VYC!Lsc?t6Uu{ws=x}g%F`9Cr z0QP@{AN=u>9vfgTr{Abn2U~Z7VxX9PT47Lvtz~XIC1WvfQSbR$Drn>|UZrucNX`>G ztbFwHLtjgA&GOZk9*p##`GPIYZ@gdmP=C6Cvd$=tVT@6j2|PR9>8Dv;dFFOqL<}mH z<6JZf=IqlAbwNzn{v_BELEil{0uA{85I_8to)Q3BX9}4@O}@kJ7O`la(F(3l1gJDM zad4qyF;{i_tYQ*tjTKf* z3Dy zP(9T~wf$^s#>WE2&28^aqEMz)6-|n*kL29iwn*>9E9jZCmIlhQ-ERR`-gAu_U$Db-10Md>rV1y@zB1<^r?HHJj)!7-GUK#;E%aDrXi-tReu6kvKR4169wx zOu0K0ixm_$g@Io#CS`qJ{gEH|zQC7%{P$WUfN7*n>QE@QvNp4z2NA*1oW@FF0JzoM z*?sQGRg^M-EqX$_0?U-W(C(5IK=B?FGGxfCR;$gf&{`7(;m~NVdE)R|m5aZmU87p9 z!XO4&`f+A2rj7*!)*cOLX^%`%P>8LwVYRgN^>@U+?7ME0NSV-jV)e=16N6`;wJCJ1M0Vl3XGRtuKT zQXs~I$M}M}bga?$Anwo?NS#Rn;-P)S&XK)bVK)G!L3Yh`? z0~d4iI+Lt#%`80Al~@!WR0r)w>A+;CP7bV0LEDTpVE{lC=BbIDS)X89Lk=P8kD`FP z%S%aJ-LL(~_v7*}9l}rjN?j2Nh#@MAnL-62oyoFszSEj>b0~;lV1IxGvS9IWiZzDx zXX)fh|KY6KY^h(B>typ?v(ge0q8bJO1%xt}&tmS4vg+p5c-hb=u52~&vhks z`}K?Z@ZLecv>E_K#VV(%NevsxeJ0lXD8PTKj$Klfwb&&$u_mw(z? z-BU#auvVAOWD*W-GO5gHNsgbNuT3Q#Ncc>#H?fKj7>&~X`HB>^=yJ(i;fje}t{B7J z%kAB@Hz&J_%mIf#R3H!K!viYMu`6HJlIEZJ$shiK?|*#hcfb1EdS8WF1;E<&rFuaK zYW?EkqO735zUQt6TqV}ki8#g%=w%9DAElGJsQKxMnrMk0ylw3@Rq`dB%qcKx{bnI4 z%3uIQsKRGb=vIH`m%e}e{(q(gKl$67zotfQ01(gbyM$L63kfoiN?kIY7=}s}g`VwE zj>p)FK6W0XeA&rrjoSO8~qM{K<*CsWgLqDVXR3OMx*xR&wSrnzJFg0zWgI! z`ROHJMd3aQfC~j7Ay77%^s=TUJrB-$GPZY+on6&b^ihSW?d@c2vBVEzjZSCu``KNx`6udZ7EAnh<$vh`rTpaQa=_KH)m%3v0 zx#QI8-jpX^QQ$HaX#n#M1p>~1QNvMU05IrB`zq8LjlZZu{nOv~mhV3dk$?AB6iic9 zk*`oTf7yx8hbhvA04sMpUDC5v-||ZRkjxY;B>?3VHu@Q1oR6w~oxTF8R_Z7&`s!Ey zKfe5b5CZUsP(wvyw#`X1OO&RNAiu{seXRHoBu_?%7x0`=* z6mV01M$`KBO_e#(QN`(L8QExl!_hEc_lMKP(3+1X7Ik&5gbL!rti2{3VTa0ynfFDuJ#%w3lj z9Tl8^a8~`sX5WRSKETF8!t90FW%(7U!G8YE@{-I$s>&k)Ffy?)bIEumMFI=_h?*_l zvr1x9b7#l*q^&&|TIeCKDap>qJWSF(e!vP4Gna5cU7*vJg-!tr1BJQRI9VBiU?g}Q zkr?;{L!D+Vbn*+~8m{S`5MYx6-PBXb!7yS0uU|~C7caxe1x!-0;Y|!982}~{UV?0A&gd(>~HfLjV8(07*qoM6N<$f?*Mn AL;wH) literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Resources/Subclasses/RoguishUmbralStalker.png b/SolastaUnfinishedBusiness/Resources/Subclasses/RoguishUmbralStalker.png new file mode 100644 index 0000000000000000000000000000000000000000..223e4a8d2115ea31b7b0a0204f21a7c0602cf796 GIT binary patch literal 31720 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

uUS&ii8mKq4vKypLfqXzH`BqwaZ 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%0DqSQ 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 literal 35773 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 Date: Sun, 14 Jul 2024 22:01:58 -0700 Subject: [PATCH 57/91] improve Spell Points rules readability --- .../ChangelogHistory.txt | 12 +-- .../Models/MulticlassGameUiContext.cs | 4 +- .../Models/SpellPointsContext.cs | 86 ++++++++----------- .../Patches/CharacterActionItemFormPatcher.cs | 4 +- .../CharacterInspectionScreenPatcher.cs | 4 +- .../Patches/SlotStatusTablePatcher.cs | 4 +- 6 files changed, 50 insertions(+), 64 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 5a3a7d6f49..65e53d951b 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,11 +1,11 @@ 1.5.97.20: -- added official variant spell points rules and Sickening Radiance spell -- fixed Export Hero and RESPEC auras, infusions, etc. effects termination -- fixed Martial Arcane Archer arcane shot soft lock if enemy already dead -- fixed Martial Battle Master initial pool amount to 4 -- fixed Ring of Knifes spell to-hit modifiers on power -- fixed targets selection on Scatter spell, and Field Manipulator displacement +- added variant spell points rules and Sickening Radiance spell +- fixed Export Hero and RESPEC auras, infusions, etc. termination +- fixed Martial Arcane Archer arcane shot soft lock if enemy dead +- fixed Ring of Knifes spell follow up power to-hit modifier +- fixed target selection on Field Manipulator displacement +- fixed target selection on Scatter spell KNOWN ISSUES: diff --git a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs index 192fddb8ee..4a4f510cb6 100644 --- a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs +++ b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs @@ -195,10 +195,10 @@ internal static void PaintPactSlots( // paint spell slots white if (index >= pactSlotsCount || slotLevel > warlockSpellLevel) { - //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) + //PATCH: support display cost on spell level blocks (SPELL_POINTS) if (Main.Settings.UseAlternateSpellPointsSystem) { - SpellPointsContext.AddCostTextToSpellLevels(slotStatusTable, component, slotLevel, spellsAtLevel); + SpellPointsContext.DisplayCostOnSpellLevelBlocks(slotStatusTable, component, slotLevel, spellsAtLevel); } else { diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index 6a6238ba32..387982e84d 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -13,6 +13,7 @@ using static FeatureDefinitionCastSpell; using static RuleDefinitions; using static SolastaUnfinishedBusiness.Builders.Features.FeatureDefinitionCastSpellBuilder; +using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionCastSpells; namespace SolastaUnfinishedBusiness.Models; @@ -28,25 +29,16 @@ internal static class SpellPointsContext private static readonly List<(string, List, List)> FeatureDefinitionCastSpellTab = [ - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellBard.Name, SharedSpellsContext.FullCastingSlots, - SpellPointsFullCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellCleric.Name, SharedSpellsContext.FullCastingSlots, - SpellPointsFullCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellDruid.Name, SharedSpellsContext.FullCastingSlots, - SpellPointsFullCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellPaladin.Name, SharedSpellsContext.HalfCastingSlots, - SpellPointsHalfCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellRanger.Name, SharedSpellsContext.HalfCastingSlots, - SpellPointsHalfCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellSorcerer.Name, SharedSpellsContext.FullCastingSlots, - SpellPointsFullCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellWizard.Name, SharedSpellsContext.FullCastingSlots, - SpellPointsFullCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellMartialSpellBlade.Name, - SharedSpellsContext.OneThirdCastingSlots, + (CastSpellBard.Name, SharedSpellsContext.FullCastingSlots, SpellPointsFullCastingSlots), + (CastSpellCleric.Name, SharedSpellsContext.FullCastingSlots, SpellPointsFullCastingSlots), + (CastSpellDruid.Name, SharedSpellsContext.FullCastingSlots, SpellPointsFullCastingSlots), + (CastSpellPaladin.Name, SharedSpellsContext.HalfCastingSlots, SpellPointsHalfCastingSlots), + (CastSpellRanger.Name, SharedSpellsContext.HalfCastingSlots, SpellPointsHalfCastingSlots), + (CastSpellSorcerer.Name, SharedSpellsContext.FullCastingSlots, SpellPointsFullCastingSlots), + (CastSpellWizard.Name, SharedSpellsContext.FullCastingSlots, SpellPointsFullCastingSlots), + (CastSpellMartialSpellBlade.Name, SharedSpellsContext.OneThirdCastingSlots, SpellPointsOneThirdCastingSlots), - (DatabaseHelper.FeatureDefinitionCastSpells.CastSpellShadowcaster.Name, - SharedSpellsContext.OneThirdCastingSlots, + (CastSpellShadowcaster.Name, SharedSpellsContext.OneThirdCastingSlots, SpellPointsOneThirdCastingSlots), (InventorClass.SpellCasting.Name, SharedSpellsContext.HalfRoundUpCastingSlots, SpellPointsHalfRoundUpCastingSlots), @@ -87,6 +79,22 @@ internal static void SwitchFeatureDefinitionCastSpellSlots() } } + private static int GetMaxSpellPoints(RulesetCharacter rulesetCharacter) + { + var usablePower = PowerProvider.Get(PowerSpellPoints, rulesetCharacter); + var maxUsesOfPower = rulesetCharacter.GetMaxUsesOfPower(usablePower); + + return maxUsesOfPower; + } + + private static int GetRemainingSpellPoints(RulesetCharacter rulesetCharacter) + { + var usablePower = PowerProvider.Get(PowerSpellPoints, rulesetCharacter); + var remainingUsesOfPower = rulesetCharacter.GetRemainingUsesOfPower(usablePower); + + return remainingUsesOfPower; + } + internal static void HideSpellSlots(RulesetCharacterHero hero, RectTransform table) { if (!Main.Settings.UseAlternateSpellPointsSystem || @@ -104,7 +112,7 @@ internal static void HideSpellSlots(RulesetCharacterHero hero, RectTransform tab } } - internal static void SetupUseSlots( + internal static void DisplayRemainingSpellPointsOnCastActions( GuiCharacterAction guiCharacterAction, RectTransform useSlotsTable, GuiLabel highSlotNumber) @@ -126,25 +134,11 @@ internal static void SetupUseSlots( Gui.Format("Screen/&SpellAlternatePointsTooltip", remainingSpellPoints); } - private static int GetMaxSpellPoints(RulesetCharacter rulesetCharacter) - { - var usablePower = PowerProvider.Get(PowerSpellPoints, rulesetCharacter); - var maxUsesOfPower = rulesetCharacter.GetMaxUsesOfPower(usablePower); - - return maxUsesOfPower; - } - - private static int GetRemainingSpellPoints(RulesetCharacter rulesetCharacter) - { - var usablePower = PowerProvider.Get(PowerSpellPoints, rulesetCharacter); - var remainingUsesOfPower = rulesetCharacter.GetRemainingUsesOfPower(usablePower); - - return remainingUsesOfPower; - } - - internal static void SwitchRepertoireTitleOnInspectionScreen( + internal static void DisplayMaxSpellPointsOnInspectionScreen( CharacterInspectionScreen __instance, RulesetCharacterHero heroCharacter) { + var maxSpellPoints = GetMaxSpellPoints(heroCharacter).ToString(); + for (var i = 0; i < __instance.spellPanelsContainer.childCount; i++) { var child = __instance.spellPanelsContainer.GetChild(i); @@ -158,7 +152,6 @@ internal static void SwitchRepertoireTitleOnInspectionScreen( is CastingOrigin.Class or CastingOrigin.Subclass) { - var maxSpellPoints = GetMaxSpellPoints(heroCharacter).ToString(); var postfix = Gui.Format("Screen/&SpellAlternatePointsCostTooltip", maxSpellPoints); repertoireTitle.text = Gui.Localize("Screen/&RepertoireSpellsTitle") + ": " + postfix; @@ -170,8 +163,8 @@ is CastingOrigin.Class } } - internal static void AddCostTextToSpellLevels(SlotStatusTable slotStatusTable, SlotStatus slotStatus, int slotLevel, - int spellsAtLevel) + internal static void DisplayCostOnSpellLevelBlocks( + SlotStatusTable slotStatusTable, SlotStatus slotStatus, int slotLevel, int spellsAtLevel) { var cost = SpellCostByLevel[slotLevel].ToString(); @@ -212,15 +205,6 @@ internal static void ConsumeSlotsAtLevelsPointsCannotCastAnymore( usablePower.remainingUses -= cost; } - // handle scenario where spells at level 6 and above can only be cast once per level - if (slotLevel > 5) - { - var usedSpellsSlots = repertoire.usedSpellsSlots; - - usedSpellsSlots.TryAdd(slotLevel, 0); - usedSpellsSlots[slotLevel] = 1; - } - // consume spell slots at levels points cannot cast anymore var level = isMulticaster ? SharedSpellsContext.GetSharedSpellLevel(hero) @@ -228,7 +212,9 @@ internal static void ConsumeSlotsAtLevelsPointsCannotCastAnymore( for (var i = level; i > 0; i--) { - if (usablePower.RemainingUses >= SpellCostByLevel[i]) + if (usablePower.RemainingUses >= SpellCostByLevel[i] && + // handle scenario where spells at level 6 and above can only be cast once per level + slotLevel <= 5) { continue; } @@ -236,7 +222,7 @@ internal static void ConsumeSlotsAtLevelsPointsCannotCastAnymore( var usedSpellsSlots = repertoire.usedSpellsSlots; usedSpellsSlots.TryAdd(i, 0); - usedSpellsSlots[i] = 1; + usedSpellsSlots[i] = repertoire.spellsSlotCapacities[i]; } repertoire.RepertoireRefreshed?.Invoke(repertoire); diff --git a/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs index aaff1db695..b43aabd660 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs @@ -40,8 +40,8 @@ public static class Refresh_Patch [UsedImplicitly] public static void Postfix(CharacterActionItemForm __instance) { - //PATCH: support display remaining spell points usage (SPELL_POINTS) - SpellPointsContext.SetupUseSlots( + //PATCH: support display remaining spell points on cast actions (SPELL_POINTS) + SpellPointsContext.DisplayRemainingSpellPointsOnCastActions( __instance.GuiCharacterAction, __instance.useSlotsTable, __instance.highSlotNumber); //PATCH: support for `IActionItemDiceBox` showing custom dice number/size diff --git a/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs index 5beb50ce8b..db308466b8 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterInspectionScreenPatcher.cs @@ -30,8 +30,8 @@ public static void Prefix(CharacterInspectionScreen __instance, RulesetCharacter [UsedImplicitly] public static void Postfix(CharacterInspectionScreen __instance, RulesetCharacterHero heroCharacter) { - //PATCH: allows max spell points to display on hero inspection (SPELL_POINTS) - SpellPointsContext.SwitchRepertoireTitleOnInspectionScreen(__instance, heroCharacter); + //PATCH: support display max spell points on inspection screen (SPELL_POINTS) + SpellPointsContext.DisplayMaxSpellPointsOnInspectionScreen(__instance, heroCharacter); //PATCH: hide repertoires that have hidden spell casting feature for (var index = 3; index < __instance.toggleGroup.transform.childCount; ++index) diff --git a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs index 7fb5a7c51d..1e787ce521 100644 --- a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs @@ -64,7 +64,7 @@ public static void Postfix( if (!SharedSpellsContext.IsMulticaster(hero)) { - //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) + //PATCH: support display cost on spell level blocks (SPELL_POINTS) // ReSharper disable once InvertIf if (Main.Settings.UseAlternateSpellPointsSystem && spellRepertoire.spellCastingClass != Warlock) @@ -73,7 +73,7 @@ public static void Postfix( { var component = __instance.table.GetChild(index).GetComponent(); - SpellPointsContext.AddCostTextToSpellLevels(__instance, component, spellLevel, spells.Count); + SpellPointsContext.DisplayCostOnSpellLevelBlocks(__instance, component, spellLevel, spells.Count); } } From feb1e5e27387e98ee9f2e4da6cbcc0115e4a4459 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 07:46:49 -0700 Subject: [PATCH 58/91] fix battlemaster warfare repay use logic --- .../Subclasses/MartialTactician.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs b/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs index d2023cbb7f..d91ba1407f 100644 --- a/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs +++ b/SolastaUnfinishedBusiness/Subclasses/MartialTactician.cs @@ -324,9 +324,19 @@ public void OnCharacterTurnStarted(GameLocationCharacter character) { var rulesetCharacter = character.RulesetCharacter; var usablePower = PowerProvider.Get(GambitsBuilders.GambitPool, rulesetCharacter); + var maxUses = rulesetCharacter.GetMaxUsesOfPower(usablePower); - usablePower.RepayUse(); - rulesetCharacter.LogCharacterUsedFeature(featureDefinition); + // cannot call RepayUse() here as a dynamic pool + usablePower.remainingUses++; + + if (usablePower.remainingUses > maxUses) + { + usablePower.remainingUses = maxUses; + } + else + { + rulesetCharacter.LogCharacterUsedFeature(featureDefinition); + } } } } From c38af6ba8d9222798ac8dbb68f0bece8610a9174 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 08:04:36 -0700 Subject: [PATCH 59/91] fix spell points interaction with MC Warlock --- .../Models/SpellPointsContext.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index 387982e84d..fc89572817 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -210,6 +210,8 @@ internal static void ConsumeSlotsAtLevelsPointsCannotCastAnymore( ? SharedSpellsContext.GetSharedSpellLevel(hero) : repertoire.MaxSpellLevelOfSpellCastingLevel; + var warlockLevel = SharedSpellsContext.GetWarlockSpellLevel(hero); + for (var i = level; i > 0; i--) { if (usablePower.RemainingUses >= SpellCostByLevel[i] && @@ -219,10 +221,18 @@ internal static void ConsumeSlotsAtLevelsPointsCannotCastAnymore( continue; } + var usedWarlockSlots = 0; + + if (level == warlockLevel && + repertoire.usedSpellsSlots.TryGetValue(SharedSpellsContext.PactMagicSlotsTab, out var usedSlots)) + { + usedWarlockSlots = usedSlots; + } + var usedSpellsSlots = repertoire.usedSpellsSlots; usedSpellsSlots.TryAdd(i, 0); - usedSpellsSlots[i] = repertoire.spellsSlotCapacities[i]; + usedSpellsSlots[i] = usedWarlockSlots + 1; } repertoire.RepertoireRefreshed?.Invoke(repertoire); From efb6d3ea6cb1f6b0fc9d10a4909b00823df4cbd5 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 16:41:19 -0700 Subject: [PATCH 60/91] review RemoveCondition scenarios in subclasses to ensure source guid is validated whenever appropriate --- .../Subclasses/Builders/GambitsBuilders.cs | 1 + .../Subclasses/CircleOfTheCosmos.cs | 3 +++ .../Subclasses/CollegeOfValiance.cs | 9 +++------ .../Subclasses/MartialForceKnight.cs | 1 + .../Subclasses/PatronMoonlitScion.cs | 1 + .../Subclasses/RangerHellWalker.cs | 20 +++++++++---------- .../Subclasses/RangerLightBearer.cs | 14 +++++-------- .../Subclasses/RangerSkyWarrior.cs | 1 + .../Subclasses/RangerWildMaster.cs | 15 +++++++++----- .../Subclasses/RoguishDuelist.cs | 4 +++- .../Subclasses/WizardBladeDancer.cs | 15 +++++++------- 11 files changed, 45 insertions(+), 39 deletions(-) diff --git a/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs b/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs index ddd2a31552..606c7b591e 100644 --- a/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs +++ b/SolastaUnfinishedBusiness/Subclasses/Builders/GambitsBuilders.cs @@ -1866,6 +1866,7 @@ public IEnumerator OnPhysicalAttackFinishedByMe( { var rulesetAttacker = attacker.RulesetCharacter; + // no need to check for source here as these are all self conditions if (rollOutcome is not (RollOutcome.Success or RollOutcome.CriticalSuccess) || !rulesetAttacker.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, conditionReaction.Name, out var activeCondition)) diff --git a/SolastaUnfinishedBusiness/Subclasses/CircleOfTheCosmos.cs b/SolastaUnfinishedBusiness/Subclasses/CircleOfTheCosmos.cs index 60f74f94e6..f38537224a 100644 --- a/SolastaUnfinishedBusiness/Subclasses/CircleOfTheCosmos.cs +++ b/SolastaUnfinishedBusiness/Subclasses/CircleOfTheCosmos.cs @@ -712,6 +712,7 @@ public IEnumerator OnPowerOrSpellFinishedByMe(CharacterActionMagicEffect action, { var rulesetCharacter = action.ActingCharacter.RulesetCharacter; + // no need to check for source here as these are all self conditions if (rulesetCharacter.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, conditionArcherNoCost.Name, out var activeCondition)) { @@ -740,6 +741,7 @@ public IEnumerator OnMagicEffectFinishedByMe( var rulesetAttacker = attacker.RulesetCharacter; var rulesetEffect = action.ActionParams.RulesetEffect; + // no need to check for source here as these are all self conditions if (rulesetEffect.SourceDefinition == powerChalice && rulesetAttacker.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, conditionChaliceHealing.Name, out var activeCondition)) @@ -1287,6 +1289,7 @@ public IEnumerator OnPowerOrSpellFinishedByMe(CharacterActionMagicEffect action, var remainingRounds = activeCondition.RemainingRounds; + // no need to check for source here as these are all self conditions rulesetCharacter.RemoveCondition(activeCondition); var implementationManager = ServiceRepository.GetService() diff --git a/SolastaUnfinishedBusiness/Subclasses/CollegeOfValiance.cs b/SolastaUnfinishedBusiness/Subclasses/CollegeOfValiance.cs index 3e1cb83f9a..aeba036a80 100644 --- a/SolastaUnfinishedBusiness/Subclasses/CollegeOfValiance.cs +++ b/SolastaUnfinishedBusiness/Subclasses/CollegeOfValiance.cs @@ -188,12 +188,9 @@ public void OnSavingThrowFinished( return; } - defender.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, - conditionDishearteningPerformance.Name, - out var activeCondition); - - if (activeCondition == null) + // no need to check for source guid here + if (!defender.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionDishearteningPerformance.Name, out var activeCondition)) { return; } diff --git a/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs b/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs index 59b644c0cb..410db09eea 100644 --- a/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs +++ b/SolastaUnfinishedBusiness/Subclasses/MartialForceKnight.cs @@ -997,6 +997,7 @@ public void OnConditionRemoved(RulesetCharacter target, RulesetCondition ruleset .Select(y => y.RulesetCharacter) .Where(x => x is { IsDeadOrDyingOrUnconscious: false })) { + // should only check the condition from the same source if (ally.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, conditionForceBulwark.Name, out var activeCondition) && activeCondition.SourceGuid == target.Guid) diff --git a/SolastaUnfinishedBusiness/Subclasses/PatronMoonlitScion.cs b/SolastaUnfinishedBusiness/Subclasses/PatronMoonlitScion.cs index bf841c61b8..4309d0e2de 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PatronMoonlitScion.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PatronMoonlitScion.cs @@ -420,6 +420,7 @@ public IEnumerator OnPowerOrSpellFinishedByMe(CharacterActionMagicEffect action, { var rulesetCharacter = action.ActingCharacter.RulesetCharacter; + // no need to check for source here as these are all self conditions if (rulesetCharacter.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, conditionFree.Name, out var activeCondition)) { diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs b/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs index 35e99c537a..a8093451a3 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerHellWalker.cs @@ -82,7 +82,6 @@ public RangerHellWalker() .Create(ConditionDefinitions.ConditionOnFire, $"Condition{Name}DammingStrike") .SetParentCondition(ConditionDefinitions.ConditionOnFire) .SetFeatures() - .SetSpecialInterruptions(Array.Empty()) .AddToDB(); var additionalDamageDammingStrike = FeatureDefinitionAdditionalDamageBuilder @@ -255,19 +254,19 @@ public RangerHellWalker() // private sealed class OnConditionAddedOrRemovedDammingStrike( - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - ConditionDefinition conditionDefinition) - : IOnConditionAddedOrRemoved + ConditionDefinition conditionMarkOfTheDammed) : IOnConditionAddedOrRemoved { public void OnConditionAdded(RulesetCharacter target, RulesetCondition rulesetCondition) { // empty } + // should only remove the condition from the same source public void OnConditionRemoved(RulesetCharacter target, RulesetCondition rulesetCondition) { - if (target.TryGetConditionOfCategoryAndType(AttributeDefinitions.TagEffect, conditionDefinition.Name, - out var activeCondition)) + if (target.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionMarkOfTheDammed.Name, out var activeCondition) && + activeCondition.SourceGuid == rulesetCondition.SourceGuid) { target.RemoveCondition(activeCondition); } @@ -330,12 +329,13 @@ public IEnumerator OnPowerOrSpellFinishedByMe(CharacterActionMagicEffect action, .GetContenders(gameLocationDefender, isOppositeSide: false)) { var rulesetDefender = gameLocationCharacter.RulesetCharacter; - var rulesetCondition = rulesetDefender.AllConditions - .FirstOrDefault(x => x.ConditionDefinition == conditionDefinition); - if (rulesetCondition != null) + // should only check the condition from the same source + if (rulesetDefender.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionDefinition.Name, out var activeCondition) && + activeCondition.SourceGuid == action.ActingCharacter.Guid) { - rulesetDefender.RemoveCondition(rulesetCondition); + rulesetDefender.RemoveCondition(activeCondition); } } } diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerLightBearer.cs b/SolastaUnfinishedBusiness/Subclasses/RangerLightBearer.cs index ea1f90efda..7e4a46489c 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerLightBearer.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerLightBearer.cs @@ -365,9 +365,11 @@ public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( var rulesetDefender = defender.RulesetActor; + // should only check the condition from the same source if (rulesetDefender is not { IsDeadOrDyingOrUnconscious: false } || - !rulesetDefender.HasConditionOfCategoryAndType(AttributeDefinitions.TagEffect, - conditionDefinition.Name)) + !rulesetDefender.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionDefinition.Name, out var activeCondition) || + activeCondition.SourceGuid != attacker.Guid) { yield break; } @@ -390,13 +392,7 @@ public IEnumerator OnPhysicalAttackBeforeHitConfirmedOnEnemy( EffectFormBuilder.DamageForm(DamageTypeRadiant, diceNumber, DieType.D8)); } - if (rulesetDefender.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, - conditionDefinition.Name, - out var activeCondition)) - { - rulesetDefender.RemoveCondition(activeCondition); - } + rulesetDefender.RemoveCondition(activeCondition); } } diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerSkyWarrior.cs b/SolastaUnfinishedBusiness/Subclasses/RangerSkyWarrior.cs index f33670beb9..6b86c271f3 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerSkyWarrior.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerSkyWarrior.cs @@ -266,6 +266,7 @@ private sealed class ItemEquippedCheckHeroStillHasShield( { public void OnItemEquipped(RulesetCharacterHero hero) { + // no need to check for source here as these are all self conditions if (!ValidatorsCharacter.HasShield(hero) && hero.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, condition.Name, out var activeCondition)) diff --git a/SolastaUnfinishedBusiness/Subclasses/RangerWildMaster.cs b/SolastaUnfinishedBusiness/Subclasses/RangerWildMaster.cs index b249a87020..3c21b05bf3 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RangerWildMaster.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RangerWildMaster.cs @@ -417,14 +417,19 @@ public void OnConditionAdded(RulesetCharacter target, RulesetCondition rulesetCo return; } - foreach (var enemy in Gui.Battle.GetMyContenders(target.Side) - .Where(x => x.RulesetActor is { IsDeadOrDyingOrUnconscious: false } && + foreach (var ally in Gui.Battle.GetMyContenders(target.Side) + .Where(x => + x.RulesetActor is { IsDeadOrDyingOrUnconscious: false } && x.RulesetActor != target)) { - if (enemy.RulesetActor.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionKillCommand.Name, out var activeCondition)) + var rulesetAlly = ally.RulesetActor; + + // should only remove the conditions from the same source + if (rulesetAlly.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, conditionKillCommand.Name, out var activeCondition) && + activeCondition.SourceGuid == rulesetCondition.SourceGuid) { - enemy.RulesetActor.RemoveCondition(activeCondition); + rulesetAlly.RemoveCondition(activeCondition); } } } diff --git a/SolastaUnfinishedBusiness/Subclasses/RoguishDuelist.cs b/SolastaUnfinishedBusiness/Subclasses/RoguishDuelist.cs index 31f45d5193..f3ecf1cea9 100644 --- a/SolastaUnfinishedBusiness/Subclasses/RoguishDuelist.cs +++ b/SolastaUnfinishedBusiness/Subclasses/RoguishDuelist.cs @@ -229,8 +229,10 @@ public IEnumerator OnPhysicalAttackFinishedByMe( yield break; } + // should only check the condition from the same source if (!rulesetDefender.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionDaringDuel.Name, out var activeCondition)) + AttributeDefinitions.TagEffect, conditionDaringDuel.Name, out var activeCondition) && + activeCondition.SourceGuid != attacker.Guid) { yield break; } diff --git a/SolastaUnfinishedBusiness/Subclasses/WizardBladeDancer.cs b/SolastaUnfinishedBusiness/Subclasses/WizardBladeDancer.cs index 5d53d2e603..64099c8fba 100644 --- a/SolastaUnfinishedBusiness/Subclasses/WizardBladeDancer.cs +++ b/SolastaUnfinishedBusiness/Subclasses/WizardBladeDancer.cs @@ -222,14 +222,13 @@ public void OnItemEquipped(RulesetCharacterHero hero) return; } - foreach (var rulesetCondition in hero.allConditions - .Where(x => x.ConditionDefinition == ConditionBladeDancerBladeDance || - x.ConditionDefinition == ConditionBladeDancerDanceOfDefense || - x.ConditionDefinition == ConditionBladeDancerDanceOfVictory) - .ToList()) - { - hero.RemoveCondition(rulesetCondition); - } + // no need to check for source here as these are all self conditions + hero.RemoveAllConditionsOfCategoryAndType( + AttributeDefinitions.TagEffect, ConditionBladeDancerBladeDance.Name); + hero.RemoveAllConditionsOfCategoryAndType( + AttributeDefinitions.TagEffect, ConditionBladeDancerDanceOfDefense.Name); + hero.RemoveAllConditionsOfCategoryAndType( + AttributeDefinitions.TagEffect, ConditionBladeDancerDanceOfVictory.Name); } } } From 7968ab6a18b831118a7b670aaae5ba1c79cfb6b9 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 16:58:27 -0700 Subject: [PATCH 61/91] review remaining RemoveCondition scenarios across the mod --- .../Api/DatabaseHelper-RELEASE.cs | 3 +++ SolastaUnfinishedBusiness/Feats/ClassFeats.cs | 4 +++- .../Models/FixesContext.cs | 3 ++- .../Models/Level20SubclassesContext.cs | 8 +++---- .../Spells/SpellBuildersLevel02.cs | 1 + .../Spells/SpellBuildersLevel04.cs | 23 ++++++++++++------- .../Spells/SpellBuildersLevel07.cs | 2 +- 7 files changed, 29 insertions(+), 15 deletions(-) diff --git a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs index 46da214677..f5b1342116 100644 --- a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs +++ b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs @@ -1725,6 +1725,9 @@ internal static class FeatureDefinitionPointPools internal static class FeatureDefinitionPowers { + internal static FeatureDefinitionPower PowerSymbolOfHopelessness { get; } = + GetDefinition("PowerSymbolOfHopelessness"); + internal static FeatureDefinitionPower PowerBulette_Snow_Leap { get; } = GetDefinition("PowerBulette_Snow_Leap"); diff --git a/SolastaUnfinishedBusiness/Feats/ClassFeats.cs b/SolastaUnfinishedBusiness/Feats/ClassFeats.cs index 24da9ce455..acecc28534 100644 --- a/SolastaUnfinishedBusiness/Feats/ClassFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/ClassFeats.cs @@ -505,8 +505,10 @@ internal sealed class ActionFinishedByMeFeatAwakenTheBeastWithin : IActionFinish public IEnumerator OnActionFinishedByMe(CharacterAction action) { + var actingCharacter = action.ActingCharacter; + if (action is not CharacterActionRevertShape || - action.ActingCharacter.RulesetCharacter is not RulesetCharacterMonster rulesetCharacterMonster) + actingCharacter.RulesetCharacter is not RulesetCharacterMonster rulesetCharacterMonster) { yield break; } diff --git a/SolastaUnfinishedBusiness/Models/FixesContext.cs b/SolastaUnfinishedBusiness/Models/FixesContext.cs index 2c4a764379..2f96b8374b 100644 --- a/SolastaUnfinishedBusiness/Models/FixesContext.cs +++ b/SolastaUnfinishedBusiness/Models/FixesContext.cs @@ -826,7 +826,8 @@ public void ModifyAdditionalDamage( if (rulesetAttacker.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, RoguishSlayer.ConditionChainOfExecutionBeneficialName, - out activeCondition)) + out activeCondition) && + activeCondition.SourceGuid == rulesetAttacker.Guid) { var newDiceNumber = damageForm.DiceNumber + slayerLevels switch { diff --git a/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs b/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs index 4b4212392a..3e6ad3cbf6 100644 --- a/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs +++ b/SolastaUnfinishedBusiness/Models/Level20SubclassesContext.cs @@ -2038,20 +2038,20 @@ public IEnumerator OnPowerOrSpellFinishedByMe(CharacterActionMagicEffect action, yield break; } + var attacker = action.ActingCharacter; + var rulesetAttacker = attacker.RulesetCharacter; var target = action.ActionParams.TargetCharacters[0]; var rulesetTarget = target.RulesetCharacter; if (!rulesetTarget.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionDefinition.Name, out var activeCondition)) + AttributeDefinitions.TagEffect, conditionDefinition.Name, out var activeCondition) && + activeCondition.SourceGuid != attacker.Guid) { yield break; } rulesetTarget.RemoveCondition(activeCondition); - var attacker = action.ActingCharacter; - var rulesetAttacker = attacker.RulesetCharacter; - // takes 10d10 Necrotic if (action.SaveOutcome is RollOutcome.Success or RollOutcome.CriticalSuccess) { diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel02.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel02.cs index a2a4d5fa6c..8232fdc15c 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel02.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel02.cs @@ -714,6 +714,7 @@ public IEnumerator OnPowerOrSpellFinishedByMe(CharacterActionMagicEffect action, if (rulesetCharacter.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, conditionName, out var activeCondition) && + activeCondition.SourceGuid == actingCharacter.Guid && !selectedPower.Name.Contains(skill.Name)) { rulesetCharacter.RemoveCondition(activeCondition); diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs index d5d4ac27c9..001ad42b72 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel04.cs @@ -503,7 +503,7 @@ internal static SpellDefinition BuildSickeningRadiance() EffectFormBuilder.ConditionForm(conditionMark, ConditionForm.ConditionOperation.Add, true, true)) .SetCasterEffectParameters(GuardianOfFaith) - .SetEffectEffectParameters(Sunburst) + .SetImpactEffectParameters(PowerSymbolOfHopelessness) .Build()) .AddToDB(); @@ -531,7 +531,8 @@ public void OnConditionRemoved(RulesetCharacter target, RulesetCondition ruleset var rulesetContender = contender.RulesetActor; if (contender.RulesetCharacter.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionSickenedRadiance.Name, out var activeCondition)) + AttributeDefinitions.TagEffect, conditionSickenedRadiance.Name, out var activeCondition) && + activeCondition.SourceGuid == rulesetCondition.SourceGuid) { rulesetContender.RemoveCondition(activeCondition); } @@ -539,7 +540,8 @@ public void OnConditionRemoved(RulesetCharacter target, RulesetCondition ruleset foreach (var conditionExhausted in conditionsExhausted) { if (contender.RulesetCharacter.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionExhausted.Name, out var exhaustedCondition)) + AttributeDefinitions.TagEffect, conditionExhausted.Name, out var exhaustedCondition) && + exhaustedCondition.SourceGuid == rulesetCondition.SourceGuid) { rulesetContender.RemoveCondition(exhaustedCondition); } @@ -618,19 +620,22 @@ private void HandleExhaustedCondition( var conditionName = string.Empty; if (rulesetTarget.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionsExhausted[4].Name, out _)) + AttributeDefinitions.TagEffect, conditionsExhausted[4].Name, out var exhaustedCondition5) && + exhaustedCondition5.SourceGuid == rulesetCaster.Guid) { rulesetTarget.SustainDamage(1000, "DamagePure", false, rulesetCaster.Guid, null, out _); } else if (rulesetTarget.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionsExhausted[3].Name, out var exhaustedCondition4)) + AttributeDefinitions.TagEffect, conditionsExhausted[3].Name, out var exhaustedCondition4) && + exhaustedCondition4.SourceGuid == rulesetCaster.Guid) { conditionName = conditionsExhausted[4].Name; rulesetTarget.RemoveCondition(exhaustedCondition4); } else if (rulesetTarget.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionsExhausted[2].Name, out var exhaustedCondition3)) + AttributeDefinitions.TagEffect, conditionsExhausted[2].Name, out var exhaustedCondition3) && + exhaustedCondition3.SourceGuid == rulesetCaster.Guid) { amount = -rulesetTarget.GetAttribute(AttributeDefinitions.HitPoints).BaseValue / 2; conditionName = conditionsExhausted[3].Name; @@ -638,14 +643,16 @@ private void HandleExhaustedCondition( rulesetTarget.RemoveCondition(exhaustedCondition3); } else if (rulesetTarget.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionsExhausted[1].Name, out var exhaustedCondition2)) + AttributeDefinitions.TagEffect, conditionsExhausted[1].Name, out var exhaustedCondition2) && + exhaustedCondition2.SourceGuid == rulesetCaster.Guid) { conditionName = conditionsExhausted[2].Name; rulesetTarget.RemoveCondition(exhaustedCondition2); } else if (rulesetTarget.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, conditionsExhausted[0].Name, out var exhaustedCondition1)) + AttributeDefinitions.TagEffect, conditionsExhausted[0].Name, out var exhaustedCondition1) && + exhaustedCondition1.SourceGuid == rulesetCaster.Guid) { conditionName = conditionsExhausted[1].Name; diff --git a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel07.cs b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel07.cs index aa03090bc0..c4f98330a3 100644 --- a/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel07.cs +++ b/SolastaUnfinishedBusiness/Spells/SpellBuildersLevel07.cs @@ -451,7 +451,7 @@ public IEnumerator OnPowerOrSpellFinishedByMe(CharacterActionMagicEffect action, // ReSharper disable once ConvertIfStatementToSwitchStatement if (remainingUses == 0 && - action.ActingCharacter.RulesetCharacter.TryGetConditionOfCategoryAndType( + rulesetCharacter.TryGetConditionOfCategoryAndType( AttributeDefinitions.TagEffect, conditionCrownOfStars.Name, out var activeCondition)) { rulesetCharacter.RemoveCondition(activeCondition); From d66da8c5aa4b7b76f90181aabb33340fa1b80bee Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Mon, 15 Jul 2024 17:11:02 -0700 Subject: [PATCH 62/91] add sample portraits --- .../Displays/CreditsDisplay.cs | 5 ++++- .../Portraits/DrowFemale.png | Bin 0 -> 62280 bytes .../Portraits/Halfling.png | Bin 0 -> 57472 bytes .../Portraits/OrcFemale.png | Bin 0 -> 65191 bytes .../Portraits/Thieflings.png | Bin 0 -> 52485 bytes 5 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 SolastaUnfinishedBusiness/Portraits/DrowFemale.png create mode 100644 SolastaUnfinishedBusiness/Portraits/Halfling.png create mode 100644 SolastaUnfinishedBusiness/Portraits/OrcFemale.png create mode 100644 SolastaUnfinishedBusiness/Portraits/Thieflings.png diff --git a/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs b/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs index 899ed6cd51..5e833c1e68 100644 --- a/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs +++ b/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs @@ -34,7 +34,7 @@ internal static class CreditsDisplay "Sorcerous Field Manipulator, Sorcerous Forceblade, Sorcerous Scion, Sorcerous Sorr-Akkath, Sorcerous Spellblade, " + "Way of Discordance, Way of Shadow, Way of Storm Soul, Way of Weal and Woe, Way of Zen Archery, " + "Wizard Bladesinger, Wizard Deadmaster, Wizard War Magic, " + - "Lighting and Obscurement, Level 20, Multiclass"), + "Lighting and Obscurement, Variant Spell Rules, Level 20, Multiclass"), ("HiddenHax", "quality assurance, SFX, sprites, homebrew design [" + @@ -54,6 +54,7 @@ internal static class CreditsDisplay "Innovation Armor, Innovation Grenadier, Innovation Weapon, Martial Tactician, Patron Elementalist, Patron Soulblade, Artificer"), ("ImpPhil", "api, builders, infrastructure, gameplay, quality of life, rules"), + ("ChrisJohnDigital", "feats, fighting styles, items & crafting, Martial Eldritch Knight, Wizard Arcane Fighter, Wizard Spellmaster"), @@ -86,11 +87,13 @@ internal static class CreditsDisplay ("Vess", "homebrew design [Innovation Vitriolist]"), ("Narria", "modKit, Party Editor"), + ("Artyoan", "pre-gen heroes portraits, sample portraits"), ("Thaladar", "QA, monster portraits, sample portraits"), ("Zeke", "sample portraits"), ("Digital Primus", "sample portraits"), ("sunny_d", "sample portraits"), + ("nat", "sample portraits"), ("team-waldo", "korean translations"), ("Dovel", "russian translations"), diff --git a/SolastaUnfinishedBusiness/Portraits/DrowFemale.png b/SolastaUnfinishedBusiness/Portraits/DrowFemale.png new file mode 100644 index 0000000000000000000000000000000000000000..d0547f9fa5b711a18672010f1e9595d23039a0fc GIT binary patch literal 62280 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⛋g*oO!cAG{0b87VB3bBx(eYcdO>X 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 U>c|$+i~s-t07*qoM6N<$f@kUr5C8xG literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Portraits/Sohrden.png b/SolastaUnfinishedBusiness/Portraits/Sohrden.png new file mode 100644 index 0000000000000000000000000000000000000000..fadd9a3d603f9e5a91ac127657aa7790e4884506 GIT binary patch literal 53149 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 LNkvXXu0mjfafJk^ literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Portraits/Thaelen.png b/SolastaUnfinishedBusiness/Portraits/Thaelen.png new file mode 100644 index 0000000000000000000000000000000000000000..3da85201555bf703b13abb4bfaba24b86f2ef836 GIT binary patch literal 57013 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 KMNUMnLSTZ#T0zwS literal 0 HcmV?d00001 diff --git a/SolastaUnfinishedBusiness/Portraits/Tijiriu.png b/SolastaUnfinishedBusiness/Portraits/Tijiriu.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc741e4e9aa1d89a8a2d9dacb14036af318967c GIT binary patch literal 40315 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Ξ}a_i>LQF;^bWxQPq3(_zTLPJAoFnBG= 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 literal 0 HcmV?d00001 From ad7c653a9da455a3241201ce9329b2a0f8159e5c Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Fri, 12 Jul 2024 21:01:00 -0700 Subject: [PATCH 26/91] improve spells point system --- .../UnfinishedBusinessBlueprints/Assets.txt | 4 - .../ConditionUsedSpellLevel6.json | 155 ------------------ .../ConditionUsedSpellLevel7.json | 155 ------------------ .../ConditionUsedSpellLevel8.json | 155 ------------------ .../ConditionUsedSpellLevel9.json | 155 ------------------ .../PowerSpellPoints.json | 2 +- .../Api/DatabaseHelper-RELEASE.cs | 2 + .../FeatureDefinitionCastSpellBuilder.cs | 6 +- .../ChangelogHistory.txt | 1 - .../Displays/RulesDisplay.cs | 1 + .../Models/MulticlassGameUiContext.cs | 11 +- .../Models/SpellPointsContext.cs | 62 ++++--- .../Patches/CharacterActionItemFormPatcher.cs | 29 ++++ .../Patches/RulesetCharacterPatcher.cs | 28 +++- .../Patches/RulesetSpellRepertoirePatcher.cs | 117 ++++++++----- .../Patches/SlotStatusTablePatcher.cs | 14 ++ .../Translations/de/Others-de.txt | 1 + .../Translations/en/Others-en.txt | 1 + .../Translations/es/Others-es.txt | 1 + .../Translations/fr/Others-fr.txt | 1 + .../Translations/it/Others-it.txt | 1 + .../Translations/ja/Others-ja.txt | 1 + .../Translations/ko/Others-ko.txt | 1 + .../Translations/pt-BR/Others-pt-BR.txt | 1 + .../Translations/ru/Others-ru.txt | 1 + .../Translations/zh-CN/Others-zh-CN.txt | 1 + 26 files changed, 215 insertions(+), 692 deletions(-) delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel6.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel7.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel8.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel9.json diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index 332e0f5097..f040aea16b 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -1172,10 +1172,6 @@ ConditionTimeStop ConditionDefinition ConditionDefinition e1d29b24-2799-5edd-a86 ConditionTraditionOpenHandQuiveringPalm ConditionDefinition ConditionDefinition fd7fb9c8-b520-585a-afe2-7617cbf3f3b5 ConditionTraditionSurvivalPhysicalPerfection ConditionDefinition ConditionDefinition 8ea61016-4655-5566-8ab4-0091c411dac3 ConditionTreeForestGuardian ConditionDefinition ConditionDefinition 345a53aa-1f78-5f27-b286-8dd263210fda -ConditionUsedSpellLevel6 ConditionDefinition ConditionDefinition 504049b9-3fac-5b27-9050-6b1901278053 -ConditionUsedSpellLevel7 ConditionDefinition ConditionDefinition 8e4e94aa-b248-55e3-a352-93b3a79d2c0a -ConditionUsedSpellLevel8 ConditionDefinition ConditionDefinition be4d2aa5-835e-5009-9545-dfb16948ec6f -ConditionUsedSpellLevel9 ConditionDefinition ConditionDefinition bb77334d-9b67-5221-930a-6b8780d62f73 ConditionVileBrew ConditionDefinition ConditionDefinition 7c519d9b-1391-5b0e-b4ed-bb0f66a14851 ConditionVitriolicSphere ConditionDefinition ConditionDefinition 91941437-a832-54c5-b0b5-b1ee0e9716dd ConditionVoidGrasp ConditionDefinition ConditionDefinition 3a29e018-ae36-546b-95a1-112dcd7a8e7a diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel6.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel6.json deleted file mode 100644 index 1ac7d39044..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel6.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "$type": "ConditionDefinition, Assembly-CSharp", - "inDungeonEditor": false, - "parentCondition": null, - "conditionType": "Beneficial", - "features": [], - "allowMultipleInstances": false, - "silentWhenAdded": true, - "silentWhenRemoved": true, - "silentWhenRefreshed": false, - "terminateWhenRemoved": false, - "specialDuration": false, - "durationType": "Hour", - "durationParameterDie": "D4", - "durationParameter": 1, - "forceTurnOccurence": false, - "turnOccurence": "EndOfTurn", - "specialInterruptions": [], - "interruptionRequiresSavingThrow": false, - "interruptionSavingThrowComputationMethod": "SaveOverride", - "interruptionSavingThrowAbility": "", - "interruptionDamageThreshold": 0, - "keepConditionIfSavingThrowSucceeds": false, - "interruptionSavingThrowAffinity": "None", - "conditionTags": [], - "recurrentEffectForms": [], - "cancellingConditions": [], - "additionalDamageWhenHit": false, - "additionalDamageTypeDetermination": "Specific", - "additionalDamageType": "", - "additionalDamageQuantity": "AbilityBonus", - "additionalDamageDieType": "D1", - "additionalDamageDieNumber": 1, - "additionalConditionWhenHit": false, - "additionalCondition": null, - "additionalConditionDurationType": "Round", - "additionalConditionDurationParameter": 1, - "additionalConditionTurnOccurenceType": "StartOfTurn", - "conditionStartParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionEndParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "recurrentEffectParticleReference": null, - "characterShaderReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "particlesBasedOnAncestryDamageType": false, - "ancestryType": "Sorcerer", - "acidParticleParameters": null, - "coldParticleParameters": null, - "fireParticleParameters": null, - "lightningParticleParameters": null, - "poisonParticleParameters": null, - "overrideCharacterShaderColors": false, - "firstCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "secondCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "timeToWaitBeforeApplyingShader": 0.5, - "timeToWaitBeforeRemovingShader": 0.5, - "possessive": false, - "amountOrigin": "None", - "baseAmount": 0, - "additiveAmount": false, - "sourceAbilityBonusMinValue": 1, - "subsequentOnRemoval": null, - "subsequentHasSavingThrow": false, - "subsequentSavingThrowAbilityScore": "Constitution", - "subsequentVariableForDC": "FrenzyExhaustionDC", - "subsequentDCIncrease": 5, - "effectFormsOnRemoved": [], - "forceBehavior": false, - "addBehavior": false, - "fearSource": false, - "battlePackage": null, - "explorationPackage": null, - "removedFromTheGame": false, - "permanentlyRemovedIfExtraPlanar": false, - "refundReceivedDamageWhenRemoved": false, - "followSourcePosition": false, - "disolveCharacterOnDeath": false, - "disolveParameters": { - "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "colorWidth": 0.0, - "noiseScale": 5.0, - "hueScale": 0.0, - "vertexOffset": 0.0, - "curve": { - "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" - }, - "startAfterDeathAnimation": false, - "duration": 0.0 - }, - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "504049b9-3fac-5b27-9050-6b1901278053", - "contentPack": 9999, - "name": "ConditionUsedSpellLevel6" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel7.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel7.json deleted file mode 100644 index 3bef8e22b9..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel7.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "$type": "ConditionDefinition, Assembly-CSharp", - "inDungeonEditor": false, - "parentCondition": null, - "conditionType": "Beneficial", - "features": [], - "allowMultipleInstances": false, - "silentWhenAdded": true, - "silentWhenRemoved": true, - "silentWhenRefreshed": false, - "terminateWhenRemoved": false, - "specialDuration": false, - "durationType": "Hour", - "durationParameterDie": "D4", - "durationParameter": 1, - "forceTurnOccurence": false, - "turnOccurence": "EndOfTurn", - "specialInterruptions": [], - "interruptionRequiresSavingThrow": false, - "interruptionSavingThrowComputationMethod": "SaveOverride", - "interruptionSavingThrowAbility": "", - "interruptionDamageThreshold": 0, - "keepConditionIfSavingThrowSucceeds": false, - "interruptionSavingThrowAffinity": "None", - "conditionTags": [], - "recurrentEffectForms": [], - "cancellingConditions": [], - "additionalDamageWhenHit": false, - "additionalDamageTypeDetermination": "Specific", - "additionalDamageType": "", - "additionalDamageQuantity": "AbilityBonus", - "additionalDamageDieType": "D1", - "additionalDamageDieNumber": 1, - "additionalConditionWhenHit": false, - "additionalCondition": null, - "additionalConditionDurationType": "Round", - "additionalConditionDurationParameter": 1, - "additionalConditionTurnOccurenceType": "StartOfTurn", - "conditionStartParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionEndParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "recurrentEffectParticleReference": null, - "characterShaderReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "particlesBasedOnAncestryDamageType": false, - "ancestryType": "Sorcerer", - "acidParticleParameters": null, - "coldParticleParameters": null, - "fireParticleParameters": null, - "lightningParticleParameters": null, - "poisonParticleParameters": null, - "overrideCharacterShaderColors": false, - "firstCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "secondCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "timeToWaitBeforeApplyingShader": 0.5, - "timeToWaitBeforeRemovingShader": 0.5, - "possessive": false, - "amountOrigin": "None", - "baseAmount": 0, - "additiveAmount": false, - "sourceAbilityBonusMinValue": 1, - "subsequentOnRemoval": null, - "subsequentHasSavingThrow": false, - "subsequentSavingThrowAbilityScore": "Constitution", - "subsequentVariableForDC": "FrenzyExhaustionDC", - "subsequentDCIncrease": 5, - "effectFormsOnRemoved": [], - "forceBehavior": false, - "addBehavior": false, - "fearSource": false, - "battlePackage": null, - "explorationPackage": null, - "removedFromTheGame": false, - "permanentlyRemovedIfExtraPlanar": false, - "refundReceivedDamageWhenRemoved": false, - "followSourcePosition": false, - "disolveCharacterOnDeath": false, - "disolveParameters": { - "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "colorWidth": 0.0, - "noiseScale": 5.0, - "hueScale": 0.0, - "vertexOffset": 0.0, - "curve": { - "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" - }, - "startAfterDeathAnimation": false, - "duration": 0.0 - }, - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "8e4e94aa-b248-55e3-a352-93b3a79d2c0a", - "contentPack": 9999, - "name": "ConditionUsedSpellLevel7" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel8.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel8.json deleted file mode 100644 index 2be8567d99..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel8.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "$type": "ConditionDefinition, Assembly-CSharp", - "inDungeonEditor": false, - "parentCondition": null, - "conditionType": "Beneficial", - "features": [], - "allowMultipleInstances": false, - "silentWhenAdded": true, - "silentWhenRemoved": true, - "silentWhenRefreshed": false, - "terminateWhenRemoved": false, - "specialDuration": false, - "durationType": "Hour", - "durationParameterDie": "D4", - "durationParameter": 1, - "forceTurnOccurence": false, - "turnOccurence": "EndOfTurn", - "specialInterruptions": [], - "interruptionRequiresSavingThrow": false, - "interruptionSavingThrowComputationMethod": "SaveOverride", - "interruptionSavingThrowAbility": "", - "interruptionDamageThreshold": 0, - "keepConditionIfSavingThrowSucceeds": false, - "interruptionSavingThrowAffinity": "None", - "conditionTags": [], - "recurrentEffectForms": [], - "cancellingConditions": [], - "additionalDamageWhenHit": false, - "additionalDamageTypeDetermination": "Specific", - "additionalDamageType": "", - "additionalDamageQuantity": "AbilityBonus", - "additionalDamageDieType": "D1", - "additionalDamageDieNumber": 1, - "additionalConditionWhenHit": false, - "additionalCondition": null, - "additionalConditionDurationType": "Round", - "additionalConditionDurationParameter": 1, - "additionalConditionTurnOccurenceType": "StartOfTurn", - "conditionStartParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionEndParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "recurrentEffectParticleReference": null, - "characterShaderReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "particlesBasedOnAncestryDamageType": false, - "ancestryType": "Sorcerer", - "acidParticleParameters": null, - "coldParticleParameters": null, - "fireParticleParameters": null, - "lightningParticleParameters": null, - "poisonParticleParameters": null, - "overrideCharacterShaderColors": false, - "firstCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "secondCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "timeToWaitBeforeApplyingShader": 0.5, - "timeToWaitBeforeRemovingShader": 0.5, - "possessive": false, - "amountOrigin": "None", - "baseAmount": 0, - "additiveAmount": false, - "sourceAbilityBonusMinValue": 1, - "subsequentOnRemoval": null, - "subsequentHasSavingThrow": false, - "subsequentSavingThrowAbilityScore": "Constitution", - "subsequentVariableForDC": "FrenzyExhaustionDC", - "subsequentDCIncrease": 5, - "effectFormsOnRemoved": [], - "forceBehavior": false, - "addBehavior": false, - "fearSource": false, - "battlePackage": null, - "explorationPackage": null, - "removedFromTheGame": false, - "permanentlyRemovedIfExtraPlanar": false, - "refundReceivedDamageWhenRemoved": false, - "followSourcePosition": false, - "disolveCharacterOnDeath": false, - "disolveParameters": { - "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "colorWidth": 0.0, - "noiseScale": 5.0, - "hueScale": 0.0, - "vertexOffset": 0.0, - "curve": { - "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" - }, - "startAfterDeathAnimation": false, - "duration": 0.0 - }, - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "be4d2aa5-835e-5009-9545-dfb16948ec6f", - "contentPack": 9999, - "name": "ConditionUsedSpellLevel8" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel9.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel9.json deleted file mode 100644 index f60308c6f8..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionUsedSpellLevel9.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "$type": "ConditionDefinition, Assembly-CSharp", - "inDungeonEditor": false, - "parentCondition": null, - "conditionType": "Beneficial", - "features": [], - "allowMultipleInstances": false, - "silentWhenAdded": true, - "silentWhenRemoved": true, - "silentWhenRefreshed": false, - "terminateWhenRemoved": false, - "specialDuration": false, - "durationType": "Hour", - "durationParameterDie": "D4", - "durationParameter": 1, - "forceTurnOccurence": false, - "turnOccurence": "EndOfTurn", - "specialInterruptions": [], - "interruptionRequiresSavingThrow": false, - "interruptionSavingThrowComputationMethod": "SaveOverride", - "interruptionSavingThrowAbility": "", - "interruptionDamageThreshold": 0, - "keepConditionIfSavingThrowSucceeds": false, - "interruptionSavingThrowAffinity": "None", - "conditionTags": [], - "recurrentEffectForms": [], - "cancellingConditions": [], - "additionalDamageWhenHit": false, - "additionalDamageTypeDetermination": "Specific", - "additionalDamageType": "", - "additionalDamageQuantity": "AbilityBonus", - "additionalDamageDieType": "D1", - "additionalDamageDieNumber": 1, - "additionalConditionWhenHit": false, - "additionalCondition": null, - "additionalConditionDurationType": "Round", - "additionalConditionDurationParameter": 1, - "additionalConditionTurnOccurenceType": "StartOfTurn", - "conditionStartParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionEndParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "recurrentEffectParticleReference": null, - "characterShaderReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "particlesBasedOnAncestryDamageType": false, - "ancestryType": "Sorcerer", - "acidParticleParameters": null, - "coldParticleParameters": null, - "fireParticleParameters": null, - "lightningParticleParameters": null, - "poisonParticleParameters": null, - "overrideCharacterShaderColors": false, - "firstCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "secondCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "timeToWaitBeforeApplyingShader": 0.5, - "timeToWaitBeforeRemovingShader": 0.5, - "possessive": false, - "amountOrigin": "None", - "baseAmount": 0, - "additiveAmount": false, - "sourceAbilityBonusMinValue": 1, - "subsequentOnRemoval": null, - "subsequentHasSavingThrow": false, - "subsequentSavingThrowAbilityScore": "Constitution", - "subsequentVariableForDC": "FrenzyExhaustionDC", - "subsequentDCIncrease": 5, - "effectFormsOnRemoved": [], - "forceBehavior": false, - "addBehavior": false, - "fearSource": false, - "battlePackage": null, - "explorationPackage": null, - "removedFromTheGame": false, - "permanentlyRemovedIfExtraPlanar": false, - "refundReceivedDamageWhenRemoved": false, - "followSourcePosition": false, - "disolveCharacterOnDeath": false, - "disolveParameters": { - "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "colorWidth": 0.0, - "noiseScale": 5.0, - "hueScale": 0.0, - "vertexOffset": 0.0, - "curve": { - "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" - }, - "startAfterDeathAnimation": false, - "duration": 0.0 - }, - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "bb77334d-9b67-5221-930a-6b8780d62f73", - "contentPack": 9999, - "name": "ConditionUsedSpellLevel9" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json index 5df1bee1da..f0c08f53ee 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionPower/PowerSpellPoints.json @@ -155,7 +155,7 @@ "canUseInDialog": false, "disableIfConditionIsOwned": null, "disableIfTargetConditionIsOwned": null, - "rechargeRate": "AtWill", + "rechargeRate": "LongRest", "costPerUse": 1, "spellcastingFeature": null, "usesDetermination": "Fixed", diff --git a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs index 1a5dda7ef7..5439d1c65b 100644 --- a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs +++ b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs @@ -27,6 +27,8 @@ internal static class FeatureDefinitionPerceptionAffinitys internal static class ActionDefinitions { internal static ActionDefinition ActionSurge { get; } = GetDefinition("ActionSurge"); + internal static ActionDefinition CastMain { get; } = GetDefinition("CastMain"); + internal static ActionDefinition CastBonus { get; } = GetDefinition("CastBonus"); internal static ActionDefinition CastInvocation { get; } = GetDefinition("CastInvocation"); internal static ActionDefinition DashBonus { get; } = GetDefinition("DashBonus"); internal static ActionDefinition SpiritRage { get; } = GetDefinition("SpiritRage"); diff --git a/SolastaUnfinishedBusiness/Builders/Features/FeatureDefinitionCastSpellBuilder.cs b/SolastaUnfinishedBusiness/Builders/Features/FeatureDefinitionCastSpellBuilder.cs index 6a71e22299..bda9964585 100644 --- a/SolastaUnfinishedBusiness/Builders/Features/FeatureDefinitionCastSpellBuilder.cs +++ b/SolastaUnfinishedBusiness/Builders/Features/FeatureDefinitionCastSpellBuilder.cs @@ -130,7 +130,7 @@ internal static void EnumerateSlotsPerLevel( { Level = level, Slots = SlotsByCasterLevel[level - startingLevel + 1] - .Select(x => forceOnes ? 1 : x) + .Select(x => x == 0 ? 0 : forceOnes ? 1 : x) .ToList() }; @@ -146,7 +146,7 @@ internal static void EnumerateSlotsPerLevel( { Level = level, Slots = SlotsByCasterLevel[((level - startingLevel + 1) / 2) + 1] - .Select(x => forceOnes ? 1 : x) + .Select(x => x == 0 ? 0 : forceOnes ? 1 : x) .ToList() }; @@ -161,7 +161,7 @@ internal static void EnumerateSlotsPerLevel( { Level = level, Slots = SlotsByCasterLevel[((level - startingLevel + 2) / 3) + 1] - .Select(x => forceOnes ? 1 : x) + .Select(x => x == 0 ? 0 : forceOnes ? 1 : x) .ToList() }; diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index f258320cc4..82f1d03e2c 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,6 +1,5 @@ 1.5.97.20: -- added subclasses unique sprites [by otearaisu] - added variant spell points system - fixed 'Export Hero' and RESPEC effects termination [auras, infusions, etc.] - fixed Martial Arcane Archer arcane shot to trigger just after attack hits diff --git a/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs b/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs index 36eb4be21f..4a8b1cf5d6 100644 --- a/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs +++ b/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs @@ -17,6 +17,7 @@ internal static void DisplayRules() var toggle = Main.Settings.UseAlternateSpellPointsSystem; if (UI.Toggle(Gui.Localize("ModUi/&UseAlternateSpellPointsSystem"), ref toggle, UI.AutoWidth())) { + Main.Settings.UseAlternateSpellPointsSystem = toggle; SpellPointsContext.SwitchFeatureDefinitionCastSpellSlots(); } diff --git a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs index 69af752dcb..a6ca9e5108 100644 --- a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs +++ b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs @@ -193,7 +193,16 @@ internal static void PaintPactSlots( // paint spell slots white if (index >= pactSlotsCount || slotLevel > warlockSpellLevel) { - SetRegularSlotImage(component.Available.GetComponent()); + //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) + if (Main.Settings.UseAlternateSpellPointsSystem) + { + component.Used.gameObject.SetActive(false); + component.Available.gameObject.SetActive(false); + } + else + { + SetRegularSlotImage(component.Available.GetComponent()); + } } else { diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index b2ef493227..3bf03efcc4 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -15,12 +15,6 @@ namespace SolastaUnfinishedBusiness.Models; internal static class SpellPointsContext { - private const string ConditionUsedSpellLevel = "ConditionUsedSpellLevel"; - internal const string ConditionUsedSpellLevel6 = $"{ConditionUsedSpellLevel}6"; - internal const string ConditionUsedSpellLevel7 = $"{ConditionUsedSpellLevel}7"; - internal const string ConditionUsedSpellLevel8 = $"{ConditionUsedSpellLevel}8"; - internal const string ConditionUsedSpellLevel9 = $"{ConditionUsedSpellLevel}9"; - private static readonly List SpellCostByLevel = [0, 2, 3, 5, 6, 7, 9, 10, 11, 13]; private static readonly List FullCastingSlots = []; private static readonly List HalfCastingSlots = []; @@ -57,10 +51,10 @@ internal static class SpellPointsContext (MartialSpellShield.CastSpellName, OneThirdCastingSlots, SpellPointsOneThirdCastingSlots) ]; - private static readonly FeatureDefinitionPower PowerSpellPoints = FeatureDefinitionPowerBuilder + internal static readonly FeatureDefinitionPower PowerSpellPoints = FeatureDefinitionPowerBuilder .Create("PowerSpellPoints") .SetGuiPresentationNoContent(true) - .SetUsesFixed(RuleDefinitions.ActivationTime.NoCost) + .SetUsesFixed(RuleDefinitions.ActivationTime.NoCost, RuleDefinitions.RechargeRate.LongRest) .AddCustomSubFeatures( HasModifiedUses.Marker, new ModifyPowerPoolAmountPowerSpellPoints()) @@ -68,16 +62,6 @@ internal static class SpellPointsContext internal static void LateLoad() { - // create conditions used to ensure only one spell per level above level 6 can be cast - for (var i = 6; i <= 9; i++) - { - _ = ConditionDefinitionBuilder - .Create($"{ConditionUsedSpellLevel}{i}") - .SetGuiPresentationNoContent(true) - .SetSilent(Silent.WhenAddedOrRemoved) - .AddToDB(); - } - EnumerateSlotsPerLevel(CasterProgression.Full, FullCastingSlots); EnumerateSlotsPerLevel(CasterProgression.Half, HalfCastingSlots); EnumerateSlotsPerLevel(CasterProgression.HalfRoundUp, HalfRoundUpCastingSlots); @@ -86,10 +70,50 @@ internal static void LateLoad() EnumerateSlotsPerLevel(CasterProgression.Half, SpellPointsHalfCastingSlots, true); EnumerateSlotsPerLevel(CasterProgression.HalfRoundUp, SpellPointsHalfRoundUpCastingSlots, true); EnumerateSlotsPerLevel(CasterProgression.OneThird, SpellPointsOneThirdCastingSlots, true); - SwitchFeatureDefinitionCastSpellSlots(); } + internal static void ConsumeSpellPoints(RulesetCharacterHero hero, RulesetSpellRepertoire repertoire, int slotLevel) + { + var usablePower = PowerProvider.Get(PowerSpellPoints, hero); + var cost = SpellCostByLevel[slotLevel]; + + usablePower.remainingUses -= cost; + + if (slotLevel <= 5) + { + return; + } + + var usedSpellsSlots = repertoire.usedSpellsSlots; + + usedSpellsSlots.TryAdd(slotLevel, 0); + usedSpellsSlots[slotLevel] = 1; + + // no need to RepertoireRefreshed here as ConsumeSlots will end up doing it + } + + internal static void ConsumeSlots(RulesetCharacterHero hero, RulesetSpellRepertoire repertoire) + { + var usablePower = PowerProvider.Get(PowerSpellPoints, hero); + var level = repertoire.MaxSpellLevelOfSpellCastingLevel; + + for (var i = level; i > 0; i--) + { + if (usablePower.RemainingUses >= SpellCostByLevel[i]) + { + continue; + } + + var usedSpellsSlots = repertoire.usedSpellsSlots; + + usedSpellsSlots.TryAdd(i, 0); + usedSpellsSlots[i] = 1; + } + + repertoire.RepertoireRefreshed?.Invoke(repertoire); + } + internal static void SwitchFeatureDefinitionCastSpellSlots() { var db = DatabaseRepository.GetDatabase(); diff --git a/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs index f27a67f698..c41730f244 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs @@ -1,8 +1,11 @@ using System.Diagnostics.CodeAnalysis; +using System.Linq; using HarmonyLib; using JetBrains.Annotations; +using SolastaUnfinishedBusiness.Api; using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Interfaces; +using SolastaUnfinishedBusiness.Models; using TA.AddressableAssets; using UnityEngine; @@ -36,9 +39,35 @@ public static void Postfix(CharacterActionItemForm __instance) [UsedImplicitly] public static class Refresh_Patch { + private static void SetupUseSlots( + GuiCharacterAction __instance, + RectTransform useSlotsTable, + GuiLabel highSlotNumber) + { + var activatedPower = SpellPointsContext.PowerSpellPoints; + var rulesetCharacter = __instance.actingCharacter.RulesetCharacter; + var usablePower = rulesetCharacter.UsablePowers.FirstOrDefault(x => x.PowerDefinition == activatedPower); + var remainingUsesOfPower = rulesetCharacter.GetRemainingUsesOfPower(usablePower); + + highSlotNumber.gameObject.SetActive(true); + useSlotsTable.gameObject.SetActive(false); + highSlotNumber.Text = remainingUsesOfPower.ToString(); + highSlotNumber.GuiTooltip.Content = "Screen/&SpellAlternatePointsTooltip"; + } + [UsedImplicitly] public static void Postfix(CharacterActionItemForm __instance) { + //PATCH: support display remaining spell points usage (SPELL_POINTS) + if (Main.Settings.UseAlternateSpellPointsSystem && + (__instance.GuiCharacterAction.ActionDefinition == DatabaseHelper.ActionDefinitions.CastMain || + __instance.GuiCharacterAction.ActionDefinition == DatabaseHelper.ActionDefinitions.CastBonus)) + { + SetupUseSlots(__instance.GuiCharacterAction, __instance.useSlotsTable, __instance.highSlotNumber); + + return; + } + //PATCH: support for `IActionItemDiceBox` showing custom dice number/size var action = __instance.guiCharacterAction.ActionDefinition; var provider = action.GetFirstSubFeatureOfType(); diff --git a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs index 410e8604bc..0fccd1ff67 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs @@ -1820,7 +1820,6 @@ public static bool Prefix(RulesetCharacter __instance) } } - //PATCH: support adding required action affinities to classes that can use toggles [HarmonyPatch(typeof(RulesetCharacter), nameof(RulesetCharacter.PostLoad))] [SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Patch")] [UsedImplicitly] @@ -1834,6 +1833,32 @@ public static void Postfix(RulesetCharacter __instance) return; } + //PATCH: support adding required power to keep a tab on spell points (SPELL_POINTS) + switch (Main.Settings.UseAlternateSpellPointsSystem) + { + case true when + !hero.HasAnyFeature(SpellPointsContext.PowerSpellPoints): + { + hero.ActiveFeatures[AttributeDefinitions.TagRace].Add(SpellPointsContext.PowerSpellPoints); + var usablePower = PowerProvider.Get(SpellPointsContext.PowerSpellPoints, hero); + var poolSize = hero.GetMaxUsesOfPower(usablePower); + + usablePower.remainingUses = poolSize; + hero.UsablePowers.Add(usablePower); + break; + } + case false when + hero.HasAnyFeature(SpellPointsContext.PowerSpellPoints): + { + var usablePower = PowerProvider.Get(SpellPointsContext.PowerSpellPoints, hero); + + hero.UsablePowers.Remove(usablePower); + hero.ActiveFeatures[AttributeDefinitions.TagRace].Remove(SpellPointsContext.PowerSpellPoints); + break; + } + } + + //PATCH: support adding required action affinities to classes that can use toggles if (hero.ClassesHistory.Contains(Paladin)) { var tag = AttributeDefinitions.GetClassTag(Paladin, 1); @@ -1859,6 +1884,7 @@ public static void Postfix(RulesetCharacter __instance) } } + //PATCH: fix scenarios where hero doesn't have an instance of a usable power if (hero.ActiveFeatures .SelectMany(k => k.Value) .OfType() diff --git a/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs index 38110e407b..34f1ef6c95 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetSpellRepertoirePatcher.cs @@ -73,56 +73,92 @@ public static class SpendSpellSlot_Patch [UsedImplicitly] public static bool Prefix(RulesetSpellRepertoire __instance, int slotLevel) { - if (__instance.SpellCastingFeature.SpellCastingOrigin is FeatureDefinitionCastSpell.CastingOrigin.Race - or FeatureDefinitionCastSpell.CastingOrigin.Monster) + SpendSpellSlot(__instance, slotLevel); + + return false; + } + + private static void ConsumeSlot(RulesetSpellRepertoire repertoire, int slotLevel) + { + var usedSpellsSlots = repertoire.usedSpellsSlots; + + usedSpellsSlots.TryAdd(slotLevel, 0); + usedSpellsSlots[slotLevel]++; + repertoire.RepertoireRefreshed?.Invoke(repertoire); + } + + private static void SpendSpellSlot(RulesetSpellRepertoire __instance, int slotLevel) + { + // cantrips don't have usage + if (slotLevel == 0) { - return true; + return; } - if (slotLevel == 0) + var hero = __instance.GetCasterHero(); + + // vanilla behavior if a race or monster origin + if (__instance.SpellCastingFeature.SpellCastingOrigin + is FeatureDefinitionCastSpell.CastingOrigin.Race + or FeatureDefinitionCastSpell.CastingOrigin.Monster) { - return true; + ConsumeSlot(__instance, slotLevel); + + return; } - var heroWithSpellRepertoire = __instance.GetCasterHero(); + // consume points if alternate system is on + if (Main.Settings.UseAlternateSpellPointsSystem) + { + SpellPointsContext.ConsumeSpellPoints(hero, __instance, slotLevel); + } - if (!SharedSpellsContext.IsMulticaster(heroWithSpellRepertoire)) + // handle single caster scenarios both alternate system and vanilla + if (!SharedSpellsContext.IsMulticaster(hero)) { - return true; + if (Main.Settings.UseAlternateSpellPointsSystem) + { + SpellPointsContext.ConsumeSlots(hero, __instance); + } + else + { + ConsumeSlot(__instance, slotLevel); + } + + return; } - var warlockSpellRepertoire = SharedSpellsContext.GetWarlockSpellRepertoire(heroWithSpellRepertoire); + var warlockSpellRepertoire = SharedSpellsContext.GetWarlockSpellRepertoire(hero); // handles MC non-Warlock if (warlockSpellRepertoire == null) { - foreach (var spellRepertoire in heroWithSpellRepertoire.SpellRepertoires + foreach (var spellRepertoire in hero.SpellRepertoires .Where(x => x.SpellCastingFeature.SpellCastingOrigin != FeatureDefinitionCastSpell.CastingOrigin.Race)) { - var usedSpellsSlots = spellRepertoire.usedSpellsSlots; - - usedSpellsSlots.TryAdd(slotLevel, 0); - usedSpellsSlots[slotLevel]++; - spellRepertoire.RepertoireRefreshed?.Invoke(spellRepertoire); + if (Main.Settings.UseAlternateSpellPointsSystem) + { + SpellPointsContext.ConsumeSlots(hero, spellRepertoire); + } + else + { + ConsumeSlot(spellRepertoire, slotLevel); + } } } - // handles MC Warlock else { - SpendMulticasterWarlockSlots(__instance, heroWithSpellRepertoire, slotLevel); + SpendMulticasterWarlockSlots(__instance, hero, slotLevel); } - - return false; } - private static void SpendWarlockSlots(RulesetSpellRepertoire rulesetSpellRepertoire, - RulesetCharacterHero heroWithSpellRepertoire) + private static void SpendWarlockSlots( + RulesetSpellRepertoire rulesetSpellRepertoire, RulesetCharacterHero heroWithSpellRepertoire) { var warlockSpellLevel = SharedSpellsContext.GetWarlockSpellLevel(heroWithSpellRepertoire); - var usedSpellsSlots = - rulesetSpellRepertoire.usedSpellsSlots; + var usedSpellsSlots = rulesetSpellRepertoire.usedSpellsSlots; for (var i = SharedSpellsContext.PactMagicSlotsTab; i <= warlockSpellLevel; i++) { @@ -140,14 +176,12 @@ private static void SpendWarlockSlots(RulesetSpellRepertoire rulesetSpellReperto } private static void SpendMulticasterWarlockSlots( - RulesetSpellRepertoire __instance, - RulesetCharacterHero heroWithSpellRepertoire, - int slotLevel) + RulesetSpellRepertoire __instance, RulesetCharacterHero hero, int slotLevel) { - var pactMaxSlots = SharedSpellsContext.GetWarlockMaxSlots(heroWithSpellRepertoire); - var pactUsedSlots = SharedSpellsContext.GetWarlockUsedSlots(heroWithSpellRepertoire); + var pactMaxSlots = SharedSpellsContext.GetWarlockMaxSlots(hero); + var pactUsedSlots = SharedSpellsContext.GetWarlockUsedSlots(hero); - var warlockSpellLevel = SharedSpellsContext.GetWarlockSpellLevel(heroWithSpellRepertoire); + var warlockSpellLevel = SharedSpellsContext.GetWarlockSpellLevel(hero); var canConsumePactSlot = pactMaxSlots - pactUsedSlots > 0 && slotLevel <= warlockSpellLevel; __instance.GetSlotsNumber(slotLevel, out var totalRemainingSlots, out var totalMaxSlots); @@ -158,11 +192,7 @@ private static void SpendMulticasterWarlockSlots( var isShiftPressed = !Global.IsMultiplayer && (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)); -#if false - var isShiftPressed = (Global.CurrentAction is CharacterActionCastSpell or CharacterActionSpendSpellSlot - && Global.CurrentAction.actionParams.BoolParameter5) || - (Global.CurrentAction is null && isShiftPressedForSlotsPointsConversion); -#endif + var forceConsumePactSlot = sharedUsedSlots == sharedMaxSlots || (__instance.SpellCastingClass != DatabaseHelper.CharacterClassDefinitions.Warlock && isShiftPressed) || @@ -172,26 +202,29 @@ private static void SpendMulticasterWarlockSlots( // uses short rest slots across all non race repertoires if (canConsumePactSlot && forceConsumePactSlot) { - foreach (var spellRepertoire in heroWithSpellRepertoire.SpellRepertoires + foreach (var spellRepertoire in hero.SpellRepertoires .Where(x => x.SpellCastingFeature.SpellCastingOrigin != FeatureDefinitionCastSpell.CastingOrigin.Race)) { - SpendWarlockSlots(spellRepertoire, heroWithSpellRepertoire); + SpendWarlockSlots(spellRepertoire, hero); } } // otherwise uses long rest slots across all non race repertoires else { - foreach (var spellRepertoire in heroWithSpellRepertoire.SpellRepertoires + foreach (var spellRepertoire in hero.SpellRepertoires .Where(x => x.SpellCastingFeature.SpellCastingOrigin != FeatureDefinitionCastSpell.CastingOrigin.Race)) { - var usedSpellsSlots = spellRepertoire.usedSpellsSlots; - - usedSpellsSlots.TryAdd(slotLevel, 0); - usedSpellsSlots[slotLevel]++; - spellRepertoire.RepertoireRefreshed?.Invoke(spellRepertoire); + if (Main.Settings.UseAlternateSpellPointsSystem) + { + SpellPointsContext.ConsumeSlots(hero, spellRepertoire); + } + else + { + ConsumeSlot(spellRepertoire, slotLevel); + } } } } diff --git a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs index 7709d63372..614b9860d3 100644 --- a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs @@ -54,6 +54,20 @@ public static void Postfix( if (heroWithSpellRepertoire == null || spellLevel == 0 || !SharedSpellsContext.IsMulticaster(heroWithSpellRepertoire) || spellRepertoire.SpellCastingRace) { + if (!Main.Settings.UseAlternateSpellPointsSystem || spellRepertoire?.spellCastingClass == Warlock) + { + return; + } + + //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) + for (var index = 0; index < __instance.table.childCount; ++index) + { + var component = __instance.table.GetChild(index).GetComponent(); + + component.Used.gameObject.SetActive(false); + component.Available.gameObject.SetActive(false); + } + return; } diff --git a/SolastaUnfinishedBusiness/Translations/de/Others-de.txt b/SolastaUnfinishedBusiness/Translations/de/Others-de.txt index a418af27f4..2d689186b3 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Others-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Others-de.txt @@ -281,6 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Dieser Zauber wurde von Ihrem Schurken-Archetyp verliehen und gilt als Ihnen bekannt. Screen/&RoguishSpellTitle=Schalkhaft +Screen/&SpellAlternatePointsTooltip=Deine Kosten für das Wirken von Zaubersprüchen betragen:\n1. – 2 Punkte\n2. – 3 Punkte\n3. – 5 Punkte\n4. – 6 Punkte\n5. – 7 Punkte\n6. – 9 Punkte\n7yh – 10 Punkte\n8yh – 11 Punkte\n9. – 13 Punkte Screen/&SpellSlotsUsedLongDescription=Du hast auf dieser Stufe {0} Zauberslot(s) verbraucht. Screen/&SpellSlotsUsedShortDescription=Du hast {0} Paktmagieplätze verbraucht. Screen/&SpellSlotsUsedShortLongDescription=Du hast auf dieser Stufe {0} Paktmagie-Slot(s) und {1} Zauberslot(s) verbraucht. diff --git a/SolastaUnfinishedBusiness/Translations/en/Others-en.txt b/SolastaUnfinishedBusiness/Translations/en/Others-en.txt index 81d5112cd1..77c1632294 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Others-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Others-en.txt @@ -281,6 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=This spell has been granted by your Roguish archetype and is considered known to you. Screen/&RoguishSpellTitle=Roguish +Screen/&SpellAlternatePointsTooltip=Your cost to cast spells is:\n1st - 2 points\n2nd - 3 points\n3rd - 5 points\n4th - 6 points\n5th - 7 points\n6th - 9 points\n7yh - 10 points\n8yh - 11 points\n9th - 13 points Screen/&SpellSlotsUsedLongDescription=You have expended {0} spell slot(s) at this level. Screen/&SpellSlotsUsedShortDescription=You have expended {0} pact magic slot(s). Screen/&SpellSlotsUsedShortLongDescription=You have expended {0} pact magic slot(s) and {1} spell slot(s) at this level. diff --git a/SolastaUnfinishedBusiness/Translations/es/Others-es.txt b/SolastaUnfinishedBusiness/Translations/es/Others-es.txt index c0069b827a..c9fa7aa5c6 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Others-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Others-es.txt @@ -281,6 +281,7 @@ Screen/&RangerSpellTitle=Guardabosque Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Este hechizo ha sido otorgado por tu arquetipo de Pícaro y lo consideras conocido. Screen/&RoguishSpellTitle=Picaresco +Screen/&SpellAlternatePointsTooltip=Tu coste para lanzar hechizos es:\n1º - 2 puntos\n2º - 3 puntos\n3º - 5 puntos\n4º - 6 puntos\n5º - 7 puntos\n6º - 9 puntos{ 99}7 años - 10 puntos\n8 años - 11 puntos\n9.º - 13 puntos Screen/&SpellSlotsUsedLongDescription=Has gastado {0} espacios para hechizos en este nivel. Screen/&SpellSlotsUsedShortDescription=Has gastado {0} espacios mágicos del pacto. Screen/&SpellSlotsUsedShortLongDescription=Has gastado {0} espacios de magia de pacto y {1} espacios de hechizo en este nivel. diff --git a/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt index 7a85890d21..1ca236d4ce 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt @@ -281,6 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Ce sort a été accordé par votre archétype Roguish et est considéré comme connu de vous. Screen/&RoguishSpellTitle=Coquin +Screen/&SpellAlternatePointsTooltip=Votre coût pour lancer des sorts est :\n1er - 2 points\n2e - 3 points\n3e - 5 points\n4e - 6 points\n5e - 7 points\n6e - 9 points{ 99}7 ans - 10 points\n8 ans - 11 points\n9e - 13 points Screen/&SpellSlotsUsedLongDescription=Vous avez dépensé {0} emplacement(s) de sort à ce niveau. Screen/&SpellSlotsUsedShortDescription=Vous avez dépensé {0} emplacement(s) magique(s) de pacte. Screen/&SpellSlotsUsedShortLongDescription=Vous avez dépensé {0} emplacement(s) de magie de pacte et {1} emplacement(s) de sort à ce niveau. diff --git a/SolastaUnfinishedBusiness/Translations/it/Others-it.txt b/SolastaUnfinishedBusiness/Translations/it/Others-it.txt index a67d2fd39a..af1455d1a1 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Others-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Others-it.txt @@ -281,6 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Questo incantesimo ti è stato concesso dal tuo archetipo Ladro ed è considerato noto a te. Screen/&RoguishSpellTitle=Furfante +Screen/&SpellAlternatePointsTooltip=Il tuo costo per lanciare incantesimi è:\n1° - 2 punti\n2° - 3 punti\n3° - 5 punti\n4° - 6 punti\n5° - 7 punti\n6° - 9 punti{ 99}7yh - 10 punti\n8yh - 11 punti\n9° - 13 punti Screen/&SpellSlotsUsedLongDescription=Hai speso {0} slot incantesimo a questo livello. Screen/&SpellSlotsUsedShortDescription=Hai speso {0} slot magico del patto. Screen/&SpellSlotsUsedShortLongDescription=Hai speso {0} slot magico del patto e {1} slot incantesimo a questo livello. diff --git a/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt index ace8c9750e..602f2466d4 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt @@ -281,6 +281,7 @@ Screen/&RangerSpellTitle=部隊 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=この呪文はあなたのローギッシュの原型によって与えられており、あなたは知っていると考えられています。 Screen/&RoguishSpellTitle=ローギッシュ +Screen/&SpellAlternatePointsTooltip=呪文を唱えるコストは次のとおりです:\n1 番目 - 2 ポイント\n2 番目 - 3 ポイント\n3 番目 - 5 ポイント\n4 番目 - 6 ポイント\n5 番目 - 7 ポイント\n6 番目 - 9 ポイント\n7 番目 - 10 ポイント\n8 番目 - 11 ポイント\n9 番目 - 13 ポイント Screen/&SpellSlotsUsedLongDescription=このレベルで {0} 個の呪文スロットを消費しました。 Screen/&SpellSlotsUsedShortDescription={0} 個の契約魔法スロットを消費しました。 Screen/&SpellSlotsUsedShortLongDescription=このレベルで、{0} 個の契約魔法スロットと {1} 個の呪文スロットを消費しました。 diff --git a/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt index daf2c2e644..d720a268e6 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt @@ -281,6 +281,7 @@ Screen/&RangerSpellTitle=레인저 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=이 주문은 귀하의 Roguish 원형에 의해 부여되었으며 귀하에게 알려진 것으로 간주됩니다. Screen/&RoguishSpellTitle=불량한 +Screen/&SpellAlternatePointsTooltip=주문 시전 비용은 다음과 같습니다.\n1위 - 2포인트\n2위 - 3포인트\n3위 - 5포인트\n4위 - 6포인트\n5위 - 7포인트\n6위 - 9포인트{ 99}7yh - 10포인트\n8yh - 11포인트\n9위 - 13포인트 Screen/&SpellSlotsUsedLongDescription=이 레벨에서 {0}개의 주문 슬롯을 사용했습니다. Screen/&SpellSlotsUsedShortDescription={0}개의 협정 매직 슬롯을 사용했습니다. Screen/&SpellSlotsUsedShortLongDescription=이 레벨에서 조약 마법 슬롯 {0}개와 주문 슬롯 {1}개를 사용했습니다. diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt index ff9cae5afe..f98301b312 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt @@ -281,6 +281,7 @@ Screen/&RangerSpellTitle=Guarda-florestal Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Este feitiço foi concedido pelo seu arquétipo Ladino e é considerado conhecido por você. Screen/&RoguishSpellTitle=Malandro +Screen/&SpellAlternatePointsTooltip=Seu custo para lançar feitiços é:\n1º - 2 pontos\n2º - 3 pontos\n3º - 5 pontos\n4º - 6 pontos\n5º - 7 pontos\n6º - 9 pontos{ 99}7º ano - 10 pontos\n8º ano - 11 pontos\n9º ano - 13 pontos Screen/&SpellSlotsUsedLongDescription=Você gastou {0} espaços de magia neste nível. Screen/&SpellSlotsUsedShortDescription=Você gastou {0} espaço(s) mágico(s) do pacto. Screen/&SpellSlotsUsedShortLongDescription=Você gastou {0} espaço(s) de magia de pacto e {1} espaço(s) de feitiço neste nível. diff --git a/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt index f88c3bba03..8e1752ae97 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt @@ -281,6 +281,7 @@ Screen/&RangerSpellTitle=Следопыт Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Это заклинание досталось вам из архетипа Плута и считается известным вам. Screen/&RoguishSpellTitle=Плут +Screen/&SpellAlternatePointsTooltip=Ваша стоимость разыгрывания заклинаний составляет:\n1 – 2 очка\n2 – 3 очка\n3 – 5 очков\n4 – 6 очков\n5 – 7 очков\n6 – 9 очков{ 99}7yh - 10 очков\n8yh - 11 очков\n9th - 13 очков Screen/&SpellSlotsUsedLongDescription=Вы потратили {0} ячеек заклинаний этого уровня. Screen/&SpellSlotsUsedShortDescription=Вы потратили {0} ячеек заклинаний колдуна. Screen/&SpellSlotsUsedShortLongDescription=Вы потратили {0} ячеек заклинаний колдуна и {1} обычных ячеек заклинаний этого уровня. diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt index b7ca7e5bd2..4b7c01d12e 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt @@ -281,6 +281,7 @@ Screen/&RangerSpellTitle=游侠 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=此法术已被你的游荡者职业授予,并被视为你已知。 Screen/&RoguishSpellTitle=游荡者 +Screen/&SpellAlternatePointsTooltip=你施放法术所需的成本为:\n第 1 次 - 2 分\n第 2 次 - 3 分\n第 3 次 - 5 分\n第 4 次 - 6 分\n第 5 次 - 7 分\n第 6 次 - 9 分\n第 7 岁 - 10 分\n第 8 岁 - 11 分\n第 9 次 - 13 分 Screen/&SpellSlotsUsedLongDescription=你已在该等级扩展了 {0} 个法术位。 Screen/&SpellSlotsUsedShortDescription=你已经扩展了 {0} 个契约魔法法术位。 Screen/&SpellSlotsUsedShortLongDescription=你在这个等级已经扩展了 {0} 个契约魔法法术位和 {1} 个法术位。 From ff1ac4ab287f250d8232eb7c1c7c029e98908508 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Fri, 12 Jul 2024 21:48:58 -0700 Subject: [PATCH 27/91] improve spell points system --- .../Models/MulticlassGameUiContext.cs | 11 +++++- .../Models/SpellPointsContext.cs | 38 ++++++++++++++++++- .../Patches/RulesetCharacterPatcher.cs | 17 ++++++++- .../Translations/de/Others-de.txt | 2 +- .../Translations/en/Others-en.txt | 2 +- .../Translations/es/Others-es.txt | 2 +- .../Translations/fr/Others-fr.txt | 2 +- .../Translations/it/Others-it.txt | 2 +- .../Translations/ja/Others-ja.txt | 2 +- .../Translations/ko/Others-ko.txt | 2 +- .../Translations/pt-BR/Others-pt-BR.txt | 2 +- .../Translations/ru/Others-ru.txt | 2 +- .../Translations/zh-CN/Others-zh-CN.txt | 2 +- 13 files changed, 73 insertions(+), 13 deletions(-) diff --git a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs index a6ca9e5108..aca558e0e6 100644 --- a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs +++ b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs @@ -294,7 +294,16 @@ internal static void PaintPactSlotsAlternate( } else { - SetRegularSlotImage(component.Available.GetComponent()); + //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) + if (Main.Settings.UseAlternateSpellPointsSystem) + { + component.Used.gameObject.SetActive(false); + component.Available.gameObject.SetActive(false); + } + else + { + SetRegularSlotImage(component.Available.GetComponent()); + } } } } diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index 3bf03efcc4..554519b73c 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -9,6 +9,7 @@ using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Subclasses; using static SolastaUnfinishedBusiness.Builders.Features.FeatureDefinitionCastSpellBuilder; +using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionMagicAffinitys; using static FeatureDefinitionCastSpell; namespace SolastaUnfinishedBusiness.Models; @@ -114,6 +115,24 @@ internal static void ConsumeSlots(RulesetCharacterHero hero, RulesetSpellReperto repertoire.RepertoireRefreshed?.Invoke(repertoire); } + internal static void RefreshSpellRepertoire(RulesetCharacterHero hero) + { + foreach (var spellRepertoire in hero.SpellRepertoires + .Where(x => + x.SpellCastingFeature.SpellCastingOrigin is CastingOrigin.Class or CastingOrigin.Subclass)) + { + if (spellRepertoire.spellsSlotCapacities.ContainsKey(1)) + { + spellRepertoire.spellsSlotCapacities[1] = 1; + } + + for (var i = 2; i <= 9; i++) + { + spellRepertoire.spellsSlotCapacities.Remove(i); + } + } + } + internal static void SwitchFeatureDefinitionCastSpellSlots() { var db = DatabaseRepository.GetDatabase(); @@ -147,9 +166,26 @@ private sealed class ModifyPowerPoolAmountPowerSpellPoints : IModifyPowerPoolAmo public int PoolChangeAmount(RulesetCharacter character) { var hero = character.GetOriginalHero(); + + if (hero == null) + { + return 0; + } + + var bonusPoints = 0; var casterLevel = GetCasterLevel(hero); - return SpellPointsByLevel[casterLevel]; + foreach (var additionalSlot in hero.FeaturesToBrowse + .OfType() + // special Warlock case so we should discard it here + .Where(x => x != MagicAffinityChitinousBoonAdditionalSpellSlot) + .OfType() + .SelectMany(x => x.AdditionalSlots)) + { + bonusPoints += SpellPointsByLevel[additionalSlot.SlotLevel]; + } + + return SpellPointsByLevel[casterLevel] + bonusPoints; } private static int GetCasterLevel(RulesetCharacterHero hero) diff --git a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs index 0fccd1ff67..d969f4c39a 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs @@ -1248,11 +1248,21 @@ public static IEnumerable Transpiler([NotNull] IEnumerable(); // adds features slots @@ -1294,6 +1304,11 @@ is FeatureDefinitionCastSpell.CastingOrigin.Class spellRepertoire.spellsSlotCapacities = slots.DeepCopy(); spellRepertoire.RepertoireRefreshed?.Invoke(spellRepertoire); } + + if (Main.Settings.UseAlternateSpellPointsSystem) + { + SpellPointsContext.RefreshSpellRepertoire(hero); + } } } diff --git a/SolastaUnfinishedBusiness/Translations/de/Others-de.txt b/SolastaUnfinishedBusiness/Translations/de/Others-de.txt index 2d689186b3..aa33630464 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Others-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Others-de.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Dieser Zauber wurde von Ihrem Schurken-Archetyp verliehen und gilt als Ihnen bekannt. Screen/&RoguishSpellTitle=Schalkhaft -Screen/&SpellAlternatePointsTooltip=Deine Kosten für das Wirken von Zaubersprüchen betragen:\n1. – 2 Punkte\n2. – 3 Punkte\n3. – 5 Punkte\n4. – 6 Punkte\n5. – 7 Punkte\n6. – 9 Punkte\n7yh – 10 Punkte\n8yh – 11 Punkte\n9. – 13 Punkte +Screen/&SpellAlternatePointsTooltip1=Ihre Kosten zum Wirken von Zaubersprüchen betragen:\n1. - 2 Punkte\n2. - 3 Punkte\n3. - 5 Punkte\n4. - 6 Punkte\n5. - 7 Punkte\n6. - 9 Punkte\n7. - 10 Punkte\n8. - 11 Punkte\n9. - 13 Punkte Screen/&SpellSlotsUsedLongDescription=Du hast auf dieser Stufe {0} Zauberslot(s) verbraucht. Screen/&SpellSlotsUsedShortDescription=Du hast {0} Paktmagieplätze verbraucht. Screen/&SpellSlotsUsedShortLongDescription=Du hast auf dieser Stufe {0} Paktmagie-Slot(s) und {1} Zauberslot(s) verbraucht. diff --git a/SolastaUnfinishedBusiness/Translations/en/Others-en.txt b/SolastaUnfinishedBusiness/Translations/en/Others-en.txt index 77c1632294..7d0e80e246 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Others-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Others-en.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=This spell has been granted by your Roguish archetype and is considered known to you. Screen/&RoguishSpellTitle=Roguish -Screen/&SpellAlternatePointsTooltip=Your cost to cast spells is:\n1st - 2 points\n2nd - 3 points\n3rd - 5 points\n4th - 6 points\n5th - 7 points\n6th - 9 points\n7yh - 10 points\n8yh - 11 points\n9th - 13 points +Screen/&SpellAlternatePointsTooltip1=Your cost to cast spells is:\n1st - 2 points\n2nd - 3 points\n3rd - 5 points\n4th - 6 points\n5th - 7 points\n6th - 9 points\n7th - 10 points\n8th - 11 points\n9th - 13 points Screen/&SpellSlotsUsedLongDescription=You have expended {0} spell slot(s) at this level. Screen/&SpellSlotsUsedShortDescription=You have expended {0} pact magic slot(s). Screen/&SpellSlotsUsedShortLongDescription=You have expended {0} pact magic slot(s) and {1} spell slot(s) at this level. diff --git a/SolastaUnfinishedBusiness/Translations/es/Others-es.txt b/SolastaUnfinishedBusiness/Translations/es/Others-es.txt index c9fa7aa5c6..f7d12f7e65 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Others-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Others-es.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Guardabosque Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Este hechizo ha sido otorgado por tu arquetipo de Pícaro y lo consideras conocido. Screen/&RoguishSpellTitle=Picaresco -Screen/&SpellAlternatePointsTooltip=Tu coste para lanzar hechizos es:\n1º - 2 puntos\n2º - 3 puntos\n3º - 5 puntos\n4º - 6 puntos\n5º - 7 puntos\n6º - 9 puntos{ 99}7 años - 10 puntos\n8 años - 11 puntos\n9.º - 13 puntos +Screen/&SpellAlternatePointsTooltip1=Tu coste para lanzar hechizos es:\n1º - 2 puntos\n2º - 3 puntos\n3º - 5 puntos\n4º - 6 puntos\n5º - 7 puntos\n6º - 9 puntos{ 99}7º - 10 puntos\n8º - 11 puntos\n9º - 13 puntos Screen/&SpellSlotsUsedLongDescription=Has gastado {0} espacios para hechizos en este nivel. Screen/&SpellSlotsUsedShortDescription=Has gastado {0} espacios mágicos del pacto. Screen/&SpellSlotsUsedShortLongDescription=Has gastado {0} espacios de magia de pacto y {1} espacios de hechizo en este nivel. diff --git a/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt index 1ca236d4ce..cdf892c842 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Ce sort a été accordé par votre archétype Roguish et est considéré comme connu de vous. Screen/&RoguishSpellTitle=Coquin -Screen/&SpellAlternatePointsTooltip=Votre coût pour lancer des sorts est :\n1er - 2 points\n2e - 3 points\n3e - 5 points\n4e - 6 points\n5e - 7 points\n6e - 9 points{ 99}7 ans - 10 points\n8 ans - 11 points\n9e - 13 points +Screen/&SpellAlternatePointsTooltip1=Votre coût pour lancer des sorts est :\n1er - 2 points\n2e - 3 points\n3e - 5 points\n4e - 6 points\n5e - 7 points\n6e - 9 points{ 99}7e - 10 points\n8e - 11 points\n9e - 13 points Screen/&SpellSlotsUsedLongDescription=Vous avez dépensé {0} emplacement(s) de sort à ce niveau. Screen/&SpellSlotsUsedShortDescription=Vous avez dépensé {0} emplacement(s) magique(s) de pacte. Screen/&SpellSlotsUsedShortLongDescription=Vous avez dépensé {0} emplacement(s) de magie de pacte et {1} emplacement(s) de sort à ce niveau. diff --git a/SolastaUnfinishedBusiness/Translations/it/Others-it.txt b/SolastaUnfinishedBusiness/Translations/it/Others-it.txt index af1455d1a1..a4d6c67333 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Others-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Others-it.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Questo incantesimo ti è stato concesso dal tuo archetipo Ladro ed è considerato noto a te. Screen/&RoguishSpellTitle=Furfante -Screen/&SpellAlternatePointsTooltip=Il tuo costo per lanciare incantesimi è:\n1° - 2 punti\n2° - 3 punti\n3° - 5 punti\n4° - 6 punti\n5° - 7 punti\n6° - 9 punti{ 99}7yh - 10 punti\n8yh - 11 punti\n9° - 13 punti +Screen/&SpellAlternatePointsTooltip1=Il tuo costo per lanciare incantesimi è:\n1° - 2 punti\n2° - 3 punti\n3° - 5 punti\n4° - 6 punti\n5° - 7 punti\n6° - 9 punti{ 99}7° - 10 punti\n8° - 11 punti\n9° - 13 punti Screen/&SpellSlotsUsedLongDescription=Hai speso {0} slot incantesimo a questo livello. Screen/&SpellSlotsUsedShortDescription=Hai speso {0} slot magico del patto. Screen/&SpellSlotsUsedShortLongDescription=Hai speso {0} slot magico del patto e {1} slot incantesimo a questo livello. diff --git a/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt index 602f2466d4..adeea4ab3a 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=部隊 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=この呪文はあなたのローギッシュの原型によって与えられており、あなたは知っていると考えられています。 Screen/&RoguishSpellTitle=ローギッシュ -Screen/&SpellAlternatePointsTooltip=呪文を唱えるコストは次のとおりです:\n1 番目 - 2 ポイント\n2 番目 - 3 ポイント\n3 番目 - 5 ポイント\n4 番目 - 6 ポイント\n5 番目 - 7 ポイント\n6 番目 - 9 ポイント\n7 番目 - 10 ポイント\n8 番目 - 11 ポイント\n9 番目 - 13 ポイント +Screen/&SpellAlternatePointsTooltip1=呪文を唱えるコストは次のとおりです:\n1 番目 - 2 ポイント\n2 番目 - 3 ポイント\n3 番目 - 5 ポイント\n4 番目 - 6 ポイント\n5 番目 - 7 ポイント\n6 番目 - 9 ポイント\n7 番目 - 10 ポイント\n8 番目 - 11 ポイント\n9 番目 - 13 ポイント Screen/&SpellSlotsUsedLongDescription=このレベルで {0} 個の呪文スロットを消費しました。 Screen/&SpellSlotsUsedShortDescription={0} 個の契約魔法スロットを消費しました。 Screen/&SpellSlotsUsedShortLongDescription=このレベルで、{0} 個の契約魔法スロットと {1} 個の呪文スロットを消費しました。 diff --git a/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt index d720a268e6..1c9654b7d6 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=레인저 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=이 주문은 귀하의 Roguish 원형에 의해 부여되었으며 귀하에게 알려진 것으로 간주됩니다. Screen/&RoguishSpellTitle=불량한 -Screen/&SpellAlternatePointsTooltip=주문 시전 비용은 다음과 같습니다.\n1위 - 2포인트\n2위 - 3포인트\n3위 - 5포인트\n4위 - 6포인트\n5위 - 7포인트\n6위 - 9포인트{ 99}7yh - 10포인트\n8yh - 11포인트\n9위 - 13포인트 +Screen/&SpellAlternatePointsTooltip1=주문 시전 비용은 다음과 같습니다.\n1위 - 2포인트\n2위 - 3포인트\n3위 - 5포인트\n4위 - 6포인트\n5위 - 7포인트\n6위 - 9포인트{ 99}7위 - 10점\n8위 - 11점\n9위 - 13점 Screen/&SpellSlotsUsedLongDescription=이 레벨에서 {0}개의 주문 슬롯을 사용했습니다. Screen/&SpellSlotsUsedShortDescription={0}개의 협정 매직 슬롯을 사용했습니다. Screen/&SpellSlotsUsedShortLongDescription=이 레벨에서 조약 마법 슬롯 {0}개와 주문 슬롯 {1}개를 사용했습니다. diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt index f98301b312..3bb1553ef0 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Guarda-florestal Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Este feitiço foi concedido pelo seu arquétipo Ladino e é considerado conhecido por você. Screen/&RoguishSpellTitle=Malandro -Screen/&SpellAlternatePointsTooltip=Seu custo para lançar feitiços é:\n1º - 2 pontos\n2º - 3 pontos\n3º - 5 pontos\n4º - 6 pontos\n5º - 7 pontos\n6º - 9 pontos{ 99}7º ano - 10 pontos\n8º ano - 11 pontos\n9º ano - 13 pontos +Screen/&SpellAlternatePointsTooltip1=Seu custo para lançar feitiços é:\n1º - 2 pontos\n2º - 3 pontos\n3º - 5 pontos\n4º - 6 pontos\n5º - 7 pontos\n6º - 9 pontos{ 99}7º - 10 pontos\n8º - 11 pontos\n9º - 13 pontos Screen/&SpellSlotsUsedLongDescription=Você gastou {0} espaços de magia neste nível. Screen/&SpellSlotsUsedShortDescription=Você gastou {0} espaço(s) mágico(s) do pacto. Screen/&SpellSlotsUsedShortLongDescription=Você gastou {0} espaço(s) de magia de pacto e {1} espaço(s) de feitiço neste nível. diff --git a/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt index 8e1752ae97..bac5b54a49 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Следопыт Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Это заклинание досталось вам из архетипа Плута и считается известным вам. Screen/&RoguishSpellTitle=Плут -Screen/&SpellAlternatePointsTooltip=Ваша стоимость разыгрывания заклинаний составляет:\n1 – 2 очка\n2 – 3 очка\n3 – 5 очков\n4 – 6 очков\n5 – 7 очков\n6 – 9 очков{ 99}7yh - 10 очков\n8yh - 11 очков\n9th - 13 очков +Screen/&SpellAlternatePointsTooltip1=Ваша стоимость разыгрывания заклинаний составляет:\n1 – 2 очка\n2 – 3 очка\n3 – 5 очков\n4 – 6 очков\n5 – 7 очков\n6 – 9 очков{ 99}7 место — 10 очков\n8 место — 11 очков\n9 место — 13 очков Screen/&SpellSlotsUsedLongDescription=Вы потратили {0} ячеек заклинаний этого уровня. Screen/&SpellSlotsUsedShortDescription=Вы потратили {0} ячеек заклинаний колдуна. Screen/&SpellSlotsUsedShortLongDescription=Вы потратили {0} ячеек заклинаний колдуна и {1} обычных ячеек заклинаний этого уровня. diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt index 4b7c01d12e..d223bb5511 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=游侠 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=此法术已被你的游荡者职业授予,并被视为你已知。 Screen/&RoguishSpellTitle=游荡者 -Screen/&SpellAlternatePointsTooltip=你施放法术所需的成本为:\n第 1 次 - 2 分\n第 2 次 - 3 分\n第 3 次 - 5 分\n第 4 次 - 6 分\n第 5 次 - 7 分\n第 6 次 - 9 分\n第 7 岁 - 10 分\n第 8 岁 - 11 分\n第 9 次 - 13 分 +Screen/&SpellAlternatePointsTooltip1=你施放法术所需的费用为:\n第 1 次 - 2 分\n第 2 次 - 3 分\n第 3 次 - 5 分\n第 4 次 - 6 分\n第 5 次 - 7 分\n第 6 次 - 9 分\n第 7 次 - 10 分\n第 8 次 - 11 分\n第 9 次 - 13 分 Screen/&SpellSlotsUsedLongDescription=你已在该等级扩展了 {0} 个法术位。 Screen/&SpellSlotsUsedShortDescription=你已经扩展了 {0} 个契约魔法法术位。 Screen/&SpellSlotsUsedShortLongDescription=你在这个等级已经扩展了 {0} 个契约魔法法术位和 {1} 个法术位。 From 9e38be7b2c5ab4f5c5e97ca623665a872e56e523 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Fri, 12 Jul 2024 22:09:29 -0700 Subject: [PATCH 28/91] minor fixes --- .../Models/SpellPointsContext.cs | 39 +++++++------------ .../Translations/de/Others-de.txt | 2 +- .../Translations/en/Others-en.txt | 2 +- .../Translations/es/Others-es.txt | 2 +- .../Translations/fr/Others-fr.txt | 2 +- .../Translations/it/Others-it.txt | 2 +- .../Translations/ja/Others-ja.txt | 2 +- .../Translations/ko/Others-ko.txt | 2 +- .../Translations/pt-BR/Others-pt-BR.txt | 2 +- .../Translations/ru/Others-ru.txt | 2 +- .../Translations/zh-CN/Others-zh-CN.txt | 2 +- 11 files changed, 24 insertions(+), 35 deletions(-) diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index 554519b73c..4606bc07cc 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -117,18 +117,24 @@ internal static void ConsumeSlots(RulesetCharacterHero hero, RulesetSpellReperto internal static void RefreshSpellRepertoire(RulesetCharacterHero hero) { + var usablePower = PowerProvider.Get(PowerSpellPoints, hero); + foreach (var spellRepertoire in hero.SpellRepertoires .Where(x => x.SpellCastingFeature.SpellCastingOrigin is CastingOrigin.Class or CastingOrigin.Subclass)) { - if (spellRepertoire.spellsSlotCapacities.ContainsKey(1)) - { - spellRepertoire.spellsSlotCapacities[1] = 1; - } - - for (var i = 2; i <= 9; i++) + for (var i = 1; i <= 9; i++) { - spellRepertoire.spellsSlotCapacities.Remove(i); + if (!spellRepertoire.spellsSlotCapacities.ContainsKey(i)) + { + continue; + } + + while (spellRepertoire.spellsSlotCapacities[i] > 1) + { + spellRepertoire.spellsSlotCapacities[i] -= 1; + usablePower.remainingUses++; + } } } } @@ -166,26 +172,9 @@ private sealed class ModifyPowerPoolAmountPowerSpellPoints : IModifyPowerPoolAmo public int PoolChangeAmount(RulesetCharacter character) { var hero = character.GetOriginalHero(); - - if (hero == null) - { - return 0; - } - - var bonusPoints = 0; var casterLevel = GetCasterLevel(hero); - foreach (var additionalSlot in hero.FeaturesToBrowse - .OfType() - // special Warlock case so we should discard it here - .Where(x => x != MagicAffinityChitinousBoonAdditionalSpellSlot) - .OfType() - .SelectMany(x => x.AdditionalSlots)) - { - bonusPoints += SpellPointsByLevel[additionalSlot.SlotLevel]; - } - - return SpellPointsByLevel[casterLevel] + bonusPoints; + return SpellPointsByLevel[casterLevel]; } private static int GetCasterLevel(RulesetCharacterHero hero) diff --git a/SolastaUnfinishedBusiness/Translations/de/Others-de.txt b/SolastaUnfinishedBusiness/Translations/de/Others-de.txt index aa33630464..773479cf54 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Others-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Others-de.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Dieser Zauber wurde von Ihrem Schurken-Archetyp verliehen und gilt als Ihnen bekannt. Screen/&RoguishSpellTitle=Schalkhaft -Screen/&SpellAlternatePointsTooltip1=Ihre Kosten zum Wirken von Zaubersprüchen betragen:\n1. - 2 Punkte\n2. - 3 Punkte\n3. - 5 Punkte\n4. - 6 Punkte\n5. - 7 Punkte\n6. - 9 Punkte\n7. - 10 Punkte\n8. - 11 Punkte\n9. - 13 Punkte +Screen/&SpellAlternatePointsTooltip=Ihre Kosten zum Wirken von Zaubersprüchen betragen:\n1. - 2 Punkte\n2. - 3 Punkte\n3. - 5 Punkte\n4. - 6 Punkte\n5. - 7 Punkte\n6. - 9 Punkte\n7. - 10 Punkte\n8. - 11 Punkte\n9. - 13 Punkte Screen/&SpellSlotsUsedLongDescription=Du hast auf dieser Stufe {0} Zauberslot(s) verbraucht. Screen/&SpellSlotsUsedShortDescription=Du hast {0} Paktmagieplätze verbraucht. Screen/&SpellSlotsUsedShortLongDescription=Du hast auf dieser Stufe {0} Paktmagie-Slot(s) und {1} Zauberslot(s) verbraucht. diff --git a/SolastaUnfinishedBusiness/Translations/en/Others-en.txt b/SolastaUnfinishedBusiness/Translations/en/Others-en.txt index 7d0e80e246..04cc820168 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Others-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Others-en.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=This spell has been granted by your Roguish archetype and is considered known to you. Screen/&RoguishSpellTitle=Roguish -Screen/&SpellAlternatePointsTooltip1=Your cost to cast spells is:\n1st - 2 points\n2nd - 3 points\n3rd - 5 points\n4th - 6 points\n5th - 7 points\n6th - 9 points\n7th - 10 points\n8th - 11 points\n9th - 13 points +Screen/&SpellAlternatePointsTooltip=Your cost to cast spells is:\n1st - 2 points\n2nd - 3 points\n3rd - 5 points\n4th - 6 points\n5th - 7 points\n6th - 9 points\n7th - 10 points\n8th - 11 points\n9th - 13 points Screen/&SpellSlotsUsedLongDescription=You have expended {0} spell slot(s) at this level. Screen/&SpellSlotsUsedShortDescription=You have expended {0} pact magic slot(s). Screen/&SpellSlotsUsedShortLongDescription=You have expended {0} pact magic slot(s) and {1} spell slot(s) at this level. diff --git a/SolastaUnfinishedBusiness/Translations/es/Others-es.txt b/SolastaUnfinishedBusiness/Translations/es/Others-es.txt index f7d12f7e65..743e7abc47 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Others-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Others-es.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Guardabosque Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Este hechizo ha sido otorgado por tu arquetipo de Pícaro y lo consideras conocido. Screen/&RoguishSpellTitle=Picaresco -Screen/&SpellAlternatePointsTooltip1=Tu coste para lanzar hechizos es:\n1º - 2 puntos\n2º - 3 puntos\n3º - 5 puntos\n4º - 6 puntos\n5º - 7 puntos\n6º - 9 puntos{ 99}7º - 10 puntos\n8º - 11 puntos\n9º - 13 puntos +Screen/&SpellAlternatePointsTooltip=Tu coste para lanzar hechizos es:\n1º - 2 puntos\n2º - 3 puntos\n3º - 5 puntos\n4º - 6 puntos\n5º - 7 puntos\n6º - 9 puntos{ 99}7º - 10 puntos\n8º - 11 puntos\n9º - 13 puntos Screen/&SpellSlotsUsedLongDescription=Has gastado {0} espacios para hechizos en este nivel. Screen/&SpellSlotsUsedShortDescription=Has gastado {0} espacios mágicos del pacto. Screen/&SpellSlotsUsedShortLongDescription=Has gastado {0} espacios de magia de pacto y {1} espacios de hechizo en este nivel. diff --git a/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt index cdf892c842..bfa7605c62 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Ce sort a été accordé par votre archétype Roguish et est considéré comme connu de vous. Screen/&RoguishSpellTitle=Coquin -Screen/&SpellAlternatePointsTooltip1=Votre coût pour lancer des sorts est :\n1er - 2 points\n2e - 3 points\n3e - 5 points\n4e - 6 points\n5e - 7 points\n6e - 9 points{ 99}7e - 10 points\n8e - 11 points\n9e - 13 points +Screen/&SpellAlternatePointsTooltip=Votre coût pour lancer des sorts est :\n1er - 2 points\n2e - 3 points\n3e - 5 points\n4e - 6 points\n5e - 7 points\n6e - 9 points{ 99}7e - 10 points\n8e - 11 points\n9e - 13 points Screen/&SpellSlotsUsedLongDescription=Vous avez dépensé {0} emplacement(s) de sort à ce niveau. Screen/&SpellSlotsUsedShortDescription=Vous avez dépensé {0} emplacement(s) magique(s) de pacte. Screen/&SpellSlotsUsedShortLongDescription=Vous avez dépensé {0} emplacement(s) de magie de pacte et {1} emplacement(s) de sort à ce niveau. diff --git a/SolastaUnfinishedBusiness/Translations/it/Others-it.txt b/SolastaUnfinishedBusiness/Translations/it/Others-it.txt index a4d6c67333..99cbf52274 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Others-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Others-it.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Questo incantesimo ti è stato concesso dal tuo archetipo Ladro ed è considerato noto a te. Screen/&RoguishSpellTitle=Furfante -Screen/&SpellAlternatePointsTooltip1=Il tuo costo per lanciare incantesimi è:\n1° - 2 punti\n2° - 3 punti\n3° - 5 punti\n4° - 6 punti\n5° - 7 punti\n6° - 9 punti{ 99}7° - 10 punti\n8° - 11 punti\n9° - 13 punti +Screen/&SpellAlternatePointsTooltip=Il tuo costo per lanciare incantesimi è:\n1° - 2 punti\n2° - 3 punti\n3° - 5 punti\n4° - 6 punti\n5° - 7 punti\n6° - 9 punti{ 99}7° - 10 punti\n8° - 11 punti\n9° - 13 punti Screen/&SpellSlotsUsedLongDescription=Hai speso {0} slot incantesimo a questo livello. Screen/&SpellSlotsUsedShortDescription=Hai speso {0} slot magico del patto. Screen/&SpellSlotsUsedShortLongDescription=Hai speso {0} slot magico del patto e {1} slot incantesimo a questo livello. diff --git a/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt index adeea4ab3a..602f2466d4 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=部隊 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=この呪文はあなたのローギッシュの原型によって与えられており、あなたは知っていると考えられています。 Screen/&RoguishSpellTitle=ローギッシュ -Screen/&SpellAlternatePointsTooltip1=呪文を唱えるコストは次のとおりです:\n1 番目 - 2 ポイント\n2 番目 - 3 ポイント\n3 番目 - 5 ポイント\n4 番目 - 6 ポイント\n5 番目 - 7 ポイント\n6 番目 - 9 ポイント\n7 番目 - 10 ポイント\n8 番目 - 11 ポイント\n9 番目 - 13 ポイント +Screen/&SpellAlternatePointsTooltip=呪文を唱えるコストは次のとおりです:\n1 番目 - 2 ポイント\n2 番目 - 3 ポイント\n3 番目 - 5 ポイント\n4 番目 - 6 ポイント\n5 番目 - 7 ポイント\n6 番目 - 9 ポイント\n7 番目 - 10 ポイント\n8 番目 - 11 ポイント\n9 番目 - 13 ポイント Screen/&SpellSlotsUsedLongDescription=このレベルで {0} 個の呪文スロットを消費しました。 Screen/&SpellSlotsUsedShortDescription={0} 個の契約魔法スロットを消費しました。 Screen/&SpellSlotsUsedShortLongDescription=このレベルで、{0} 個の契約魔法スロットと {1} 個の呪文スロットを消費しました。 diff --git a/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt index 1c9654b7d6..a5fbcffd6d 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=레인저 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=이 주문은 귀하의 Roguish 원형에 의해 부여되었으며 귀하에게 알려진 것으로 간주됩니다. Screen/&RoguishSpellTitle=불량한 -Screen/&SpellAlternatePointsTooltip1=주문 시전 비용은 다음과 같습니다.\n1위 - 2포인트\n2위 - 3포인트\n3위 - 5포인트\n4위 - 6포인트\n5위 - 7포인트\n6위 - 9포인트{ 99}7위 - 10점\n8위 - 11점\n9위 - 13점 +Screen/&SpellAlternatePointsTooltip=주문 시전 비용은 다음과 같습니다.\n1위 - 2포인트\n2위 - 3포인트\n3위 - 5포인트\n4위 - 6포인트\n5위 - 7포인트\n6위 - 9포인트{ 99}7위 - 10점\n8위 - 11점\n9위 - 13점 Screen/&SpellSlotsUsedLongDescription=이 레벨에서 {0}개의 주문 슬롯을 사용했습니다. Screen/&SpellSlotsUsedShortDescription={0}개의 협정 매직 슬롯을 사용했습니다. Screen/&SpellSlotsUsedShortLongDescription=이 레벨에서 조약 마법 슬롯 {0}개와 주문 슬롯 {1}개를 사용했습니다. diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt index 3bb1553ef0..097e7e1d6e 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Guarda-florestal Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Este feitiço foi concedido pelo seu arquétipo Ladino e é considerado conhecido por você. Screen/&RoguishSpellTitle=Malandro -Screen/&SpellAlternatePointsTooltip1=Seu custo para lançar feitiços é:\n1º - 2 pontos\n2º - 3 pontos\n3º - 5 pontos\n4º - 6 pontos\n5º - 7 pontos\n6º - 9 pontos{ 99}7º - 10 pontos\n8º - 11 pontos\n9º - 13 pontos +Screen/&SpellAlternatePointsTooltip=Seu custo para lançar feitiços é:\n1º - 2 pontos\n2º - 3 pontos\n3º - 5 pontos\n4º - 6 pontos\n5º - 7 pontos\n6º - 9 pontos{ 99}7º - 10 pontos\n8º - 11 pontos\n9º - 13 pontos Screen/&SpellSlotsUsedLongDescription=Você gastou {0} espaços de magia neste nível. Screen/&SpellSlotsUsedShortDescription=Você gastou {0} espaço(s) mágico(s) do pacto. Screen/&SpellSlotsUsedShortLongDescription=Você gastou {0} espaço(s) de magia de pacto e {1} espaço(s) de feitiço neste nível. diff --git a/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt index bac5b54a49..7d274addd2 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=Следопыт Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Это заклинание досталось вам из архетипа Плута и считается известным вам. Screen/&RoguishSpellTitle=Плут -Screen/&SpellAlternatePointsTooltip1=Ваша стоимость разыгрывания заклинаний составляет:\n1 – 2 очка\n2 – 3 очка\n3 – 5 очков\n4 – 6 очков\n5 – 7 очков\n6 – 9 очков{ 99}7 место — 10 очков\n8 место — 11 очков\n9 место — 13 очков +Screen/&SpellAlternatePointsTooltip=Ваша стоимость разыгрывания заклинаний составляет:\n1 – 2 очка\n2 – 3 очка\n3 – 5 очков\n4 – 6 очков\n5 – 7 очков\n6 – 9 очков{ 99}7 место — 10 очков\n8 место — 11 очков\n9 место — 13 очков Screen/&SpellSlotsUsedLongDescription=Вы потратили {0} ячеек заклинаний этого уровня. Screen/&SpellSlotsUsedShortDescription=Вы потратили {0} ячеек заклинаний колдуна. Screen/&SpellSlotsUsedShortLongDescription=Вы потратили {0} ячеек заклинаний колдуна и {1} обычных ячеек заклинаний этого уровня. diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt index d223bb5511..0472f38a7d 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt @@ -281,7 +281,7 @@ Screen/&RangerSpellTitle=游侠 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=此法术已被你的游荡者职业授予,并被视为你已知。 Screen/&RoguishSpellTitle=游荡者 -Screen/&SpellAlternatePointsTooltip1=你施放法术所需的费用为:\n第 1 次 - 2 分\n第 2 次 - 3 分\n第 3 次 - 5 分\n第 4 次 - 6 分\n第 5 次 - 7 分\n第 6 次 - 9 分\n第 7 次 - 10 分\n第 8 次 - 11 分\n第 9 次 - 13 分 +Screen/&SpellAlternatePointsTooltip=你施放法术所需的费用为:\n第 1 次 - 2 分\n第 2 次 - 3 分\n第 3 次 - 5 分\n第 4 次 - 6 分\n第 5 次 - 7 分\n第 6 次 - 9 分\n第 7 次 - 10 分\n第 8 次 - 11 分\n第 9 次 - 13 分 Screen/&SpellSlotsUsedLongDescription=你已在该等级扩展了 {0} 个法术位。 Screen/&SpellSlotsUsedShortDescription=你已经扩展了 {0} 个契约魔法法术位。 Screen/&SpellSlotsUsedShortLongDescription=你在这个等级已经扩展了 {0} 个契约魔法法术位和 {1} 个法术位。 From 2f58f02983fff9f55f89f7b5b68961bc4bfddc55 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 07:35:47 -0700 Subject: [PATCH 29/91] improve spell points system --- .../Models/SpellPointsContext.cs | 1 - .../CharacterReactionSubitemPatcher.cs | 32 ++++++++++++++++--- .../Patches/FlexibleCastingItemPatcher.cs | 23 +++++++++++-- .../Patches/RulesetCharacterPatcher.cs | 9 ------ .../Patches/SlotStatusTablePatcher.cs | 17 +++++++--- 5 files changed, 61 insertions(+), 21 deletions(-) diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index 4606bc07cc..d681d9cd63 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -9,7 +9,6 @@ using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Subclasses; using static SolastaUnfinishedBusiness.Builders.Features.FeatureDefinitionCastSpellBuilder; -using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionMagicAffinitys; using static FeatureDefinitionCastSpell; namespace SolastaUnfinishedBusiness.Models; diff --git a/SolastaUnfinishedBusiness/Patches/CharacterReactionSubitemPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterReactionSubitemPatcher.cs index a2ea29a090..89d95d85b1 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterReactionSubitemPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterReactionSubitemPatcher.cs @@ -4,6 +4,7 @@ using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Models; using UnityEngine; +using static SolastaUnfinishedBusiness.Api.DatabaseHelper.CharacterClassDefinitions; namespace SolastaUnfinishedBusiness.Patches; @@ -22,18 +23,41 @@ public static void Postfix( RulesetSpellRepertoire spellRepertoire, int slotLevel) { - var heroWithSpellRepertoire = spellRepertoire?.GetCasterHero(); + var hero = spellRepertoire?.GetCasterHero(); - if (heroWithSpellRepertoire == null || - !SharedSpellsContext.IsMulticaster(heroWithSpellRepertoire) || spellRepertoire.SpellCastingRace) + if (hero == null) { return; } + if (spellRepertoire.SpellCastingRace) + { + return; + } + + if (!SharedSpellsContext.IsMulticaster(hero)) + { + if (!Main.Settings.UseAlternateSpellPointsSystem || spellRepertoire?.spellCastingClass == Warlock) + { + return; + } + + //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) + for (var index = 0; index < __instance.slotStatusTable.childCount; ++index) + { + var component = __instance.slotStatusTable.GetChild(index).GetComponent(); + + component.Used.gameObject.SetActive(false); + component.Available.gameObject.SetActive(false); + } + + return; + } + spellRepertoire.GetSlotsNumber(slotLevel, out var totalSlotsRemainingCount, out var totalSlotsCount); MulticlassGameUiContext.PaintPactSlotsAlternate( - heroWithSpellRepertoire, totalSlotsCount, totalSlotsRemainingCount, slotLevel, + hero, totalSlotsCount, totalSlotsRemainingCount, slotLevel, __instance.slotStatusTable); } } diff --git a/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs b/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs index 934f212f6d..5c4b7794ee 100644 --- a/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs @@ -1,6 +1,7 @@ using System.Diagnostics.CodeAnalysis; using HarmonyLib; using JetBrains.Annotations; +using SolastaUnfinishedBusiness.Api.GameExtensions; using SolastaUnfinishedBusiness.Models; namespace SolastaUnfinishedBusiness.Patches; @@ -22,19 +23,35 @@ public static void Postfix( { //PATCH: creates different slots colors and pop up messages depending on slot types (MULTICLASS) var flexibleCastingModal = __instance.GetComponentInParent(); + var hero = flexibleCastingModal.caster.GetOriginalHero(); - if (flexibleCastingModal.caster is not RulesetCharacterHero caster) + if (hero == null) { return; } - if (!SharedSpellsContext.IsMulticaster(caster)) + if (!SharedSpellsContext.IsMulticaster(hero)) { + // no way a Warlock would get here so no need to check for Warlock + if (!Main.Settings.UseAlternateSpellPointsSystem) + { + return; + } + + //PATCH: support alternate spell system to avoid displaying spell slots on selection (SPELL_POINTS) + for (var index = 0; index < __instance.slotStatusTable.childCount; ++index) + { + var component = __instance.slotStatusTable.GetChild(index).GetComponent(); + + component.Used.gameObject.SetActive(false); + component.Available.gameObject.SetActive(false); + } + return; } MulticlassGameUiContext.PaintPactSlotsAlternate( - caster, maxSlots, remainingSlots, slotLevel, __instance.slotStatusTable); + hero, maxSlots, remainingSlots, slotLevel, __instance.slotStatusTable); } } diff --git a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs index d969f4c39a..5f108cefbb 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs @@ -1862,15 +1862,6 @@ public static void Postfix(RulesetCharacter __instance) hero.UsablePowers.Add(usablePower); break; } - case false when - hero.HasAnyFeature(SpellPointsContext.PowerSpellPoints): - { - var usablePower = PowerProvider.Get(SpellPointsContext.PowerSpellPoints, hero); - - hero.UsablePowers.Remove(usablePower); - hero.ActiveFeatures[AttributeDefinitions.TagRace].Remove(SpellPointsContext.PowerSpellPoints); - break; - } } //PATCH: support adding required action affinities to classes that can use toggles diff --git a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs index 614b9860d3..b8b58aafa7 100644 --- a/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/SlotStatusTablePatcher.cs @@ -48,11 +48,20 @@ public static void Postfix( RulesetSpellRepertoire spellRepertoire, int spellLevel) { - var heroWithSpellRepertoire = spellRepertoire?.GetCasterHero(); + var hero = spellRepertoire?.GetCasterHero(); // spellRepertoire is null during level up... - if (heroWithSpellRepertoire == null || spellLevel == 0 || - !SharedSpellsContext.IsMulticaster(heroWithSpellRepertoire) || spellRepertoire.SpellCastingRace) + if (spellLevel == 0 || hero == null) + { + return; + } + + if (spellRepertoire.SpellCastingRace) + { + return; + } + + if (!SharedSpellsContext.IsMulticaster(hero)) { if (!Main.Settings.UseAlternateSpellPointsSystem || spellRepertoire?.spellCastingClass == Warlock) { @@ -74,7 +83,7 @@ public static void Postfix( spellRepertoire.GetSlotsNumber(spellLevel, out var totalSlotsRemainingCount, out var totalSlotsCount); MulticlassGameUiContext.PaintPactSlots( - heroWithSpellRepertoire, + hero, totalSlotsCount, totalSlotsRemainingCount, spellLevel, From a0f41da5858f7d27950bc880f1898989e8eb1606 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 08:31:37 -0700 Subject: [PATCH 30/91] fix integration between spell points and sorcery powers that convert slots to sorcery points --- .../Models/SpellPointsContext.cs | 38 +++++++++++++------ .../Patches/RulesetCharacterPatcher.cs | 19 +++++----- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index d681d9cd63..0d9daf1906 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -116,25 +116,39 @@ internal static void ConsumeSlots(RulesetCharacterHero hero, RulesetSpellReperto internal static void RefreshSpellRepertoire(RulesetCharacterHero hero) { + if (hero == null) + { + return; + } + var usablePower = PowerProvider.Get(PowerSpellPoints, hero); - - foreach (var spellRepertoire in hero.SpellRepertoires - .Where(x => - x.SpellCastingFeature.SpellCastingOrigin is CastingOrigin.Class or CastingOrigin.Subclass)) + var activeConditions = hero.AllConditions.ToList(); + + foreach (var activeCondition in activeConditions) { - for (var i = 1; i <= 9; i++) + var removeCondition = false; + + foreach (var magicAffinity in activeCondition.ConditionDefinition.Features + .OfType() + .Where(x => x.AdditionalSlots.Count > 0)) { - if (!spellRepertoire.spellsSlotCapacities.ContainsKey(i)) + // ReSharper disable once ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator + foreach (var additionalSlot in magicAffinity.AdditionalSlots) { - continue; - } + var slotCount = additionalSlot.SlotsNumber; + var slotLevel = additionalSlot.SlotLevel; + var totalPoints = slotCount * SpellCostByLevel[slotLevel]; - while (spellRepertoire.spellsSlotCapacities[i] > 1) - { - spellRepertoire.spellsSlotCapacities[i] -= 1; - usablePower.remainingUses++; + usablePower.remainingUses += totalPoints; + + removeCondition = true; } } + + if (removeCondition) + { + hero.RemoveCondition(activeCondition); + } } } diff --git a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs index 5f108cefbb..91b05e01ce 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs @@ -1245,6 +1245,15 @@ public static IEnumerable Transpiler([NotNull] IEnumerable); } + [UsedImplicitly] + public static void Prefix(RulesetCharacter __instance) + { + if (Main.Settings.UseAlternateSpellPointsSystem) + { + SpellPointsContext.RefreshSpellRepertoire(__instance.GetOriginalHero()); + } + } + [UsedImplicitly] public static void Postfix(RulesetCharacter __instance) { @@ -1255,11 +1264,6 @@ public static void Postfix(RulesetCharacter __instance) if (!SharedSpellsContext.IsMulticaster(hero)) { - if (Main.Settings.UseAlternateSpellPointsSystem) - { - SpellPointsContext.RefreshSpellRepertoire(hero); - } - return; } @@ -1304,11 +1308,6 @@ is FeatureDefinitionCastSpell.CastingOrigin.Class spellRepertoire.spellsSlotCapacities = slots.DeepCopy(); spellRepertoire.RepertoireRefreshed?.Invoke(spellRepertoire); } - - if (Main.Settings.UseAlternateSpellPointsSystem) - { - SpellPointsContext.RefreshSpellRepertoire(hero); - } } } From 509ade324d5d4b8bc2666affaa3c2cea56ea5367 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 10:20:22 -0700 Subject: [PATCH 31/91] update translations --- SolastaUnfinishedBusiness/Translations/de/Others-de.txt | 3 ++- SolastaUnfinishedBusiness/Translations/en/Others-en.txt | 3 ++- SolastaUnfinishedBusiness/Translations/es/Others-es.txt | 3 ++- SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt | 3 ++- SolastaUnfinishedBusiness/Translations/it/Others-it.txt | 3 ++- SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt | 3 ++- SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt | 3 ++- SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt | 3 ++- SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt | 3 ++- SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt | 3 ++- 10 files changed, 20 insertions(+), 10 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/de/Others-de.txt b/SolastaUnfinishedBusiness/Translations/de/Others-de.txt index 773479cf54..872dd7bb9c 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Others-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Others-de.txt @@ -281,7 +281,8 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Dieser Zauber wurde von Ihrem Schurken-Archetyp verliehen und gilt als Ihnen bekannt. Screen/&RoguishSpellTitle=Schalkhaft -Screen/&SpellAlternatePointsTooltip=Ihre Kosten zum Wirken von Zaubersprüchen betragen:\n1. - 2 Punkte\n2. - 3 Punkte\n3. - 5 Punkte\n4. - 6 Punkte\n5. - 7 Punkte\n6. - 9 Punkte\n7. - 10 Punkte\n8. - 11 Punkte\n9. - 13 Punkte +Screen/&SpellAlternatePointsCostTooltip={0} Punkte +Screen/&SpellAlternatePointsTooltip=Dir verbleiben {0} Zauberpunkte. Screen/&SpellSlotsUsedLongDescription=Du hast auf dieser Stufe {0} Zauberslot(s) verbraucht. Screen/&SpellSlotsUsedShortDescription=Du hast {0} Paktmagieplätze verbraucht. Screen/&SpellSlotsUsedShortLongDescription=Du hast auf dieser Stufe {0} Paktmagie-Slot(s) und {1} Zauberslot(s) verbraucht. diff --git a/SolastaUnfinishedBusiness/Translations/en/Others-en.txt b/SolastaUnfinishedBusiness/Translations/en/Others-en.txt index 04cc820168..6faf05dff9 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Others-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Others-en.txt @@ -281,7 +281,8 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=This spell has been granted by your Roguish archetype and is considered known to you. Screen/&RoguishSpellTitle=Roguish -Screen/&SpellAlternatePointsTooltip=Your cost to cast spells is:\n1st - 2 points\n2nd - 3 points\n3rd - 5 points\n4th - 6 points\n5th - 7 points\n6th - 9 points\n7th - 10 points\n8th - 11 points\n9th - 13 points +Screen/&SpellAlternatePointsCostTooltip={0} points +Screen/&SpellAlternatePointsTooltip=You have {0} spell points remaining. Screen/&SpellSlotsUsedLongDescription=You have expended {0} spell slot(s) at this level. Screen/&SpellSlotsUsedShortDescription=You have expended {0} pact magic slot(s). Screen/&SpellSlotsUsedShortLongDescription=You have expended {0} pact magic slot(s) and {1} spell slot(s) at this level. diff --git a/SolastaUnfinishedBusiness/Translations/es/Others-es.txt b/SolastaUnfinishedBusiness/Translations/es/Others-es.txt index 743e7abc47..717c4fa682 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Others-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Others-es.txt @@ -281,7 +281,8 @@ Screen/&RangerSpellTitle=Guardabosque Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Este hechizo ha sido otorgado por tu arquetipo de Pícaro y lo consideras conocido. Screen/&RoguishSpellTitle=Picaresco -Screen/&SpellAlternatePointsTooltip=Tu coste para lanzar hechizos es:\n1º - 2 puntos\n2º - 3 puntos\n3º - 5 puntos\n4º - 6 puntos\n5º - 7 puntos\n6º - 9 puntos{ 99}7º - 10 puntos\n8º - 11 puntos\n9º - 13 puntos +Screen/&SpellAlternatePointsCostTooltip={0} puntos +Screen/&SpellAlternatePointsTooltip=Te quedan {0} puntos de hechizo. Screen/&SpellSlotsUsedLongDescription=Has gastado {0} espacios para hechizos en este nivel. Screen/&SpellSlotsUsedShortDescription=Has gastado {0} espacios mágicos del pacto. Screen/&SpellSlotsUsedShortLongDescription=Has gastado {0} espacios de magia de pacto y {1} espacios de hechizo en este nivel. diff --git a/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt index bfa7605c62..829934e2c0 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Others-fr.txt @@ -281,7 +281,8 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Ce sort a été accordé par votre archétype Roguish et est considéré comme connu de vous. Screen/&RoguishSpellTitle=Coquin -Screen/&SpellAlternatePointsTooltip=Votre coût pour lancer des sorts est :\n1er - 2 points\n2e - 3 points\n3e - 5 points\n4e - 6 points\n5e - 7 points\n6e - 9 points{ 99}7e - 10 points\n8e - 11 points\n9e - 13 points +Screen/&SpellAlternatePointsCostTooltip={0} points +Screen/&SpellAlternatePointsTooltip=Il vous reste {0} points de sort. Screen/&SpellSlotsUsedLongDescription=Vous avez dépensé {0} emplacement(s) de sort à ce niveau. Screen/&SpellSlotsUsedShortDescription=Vous avez dépensé {0} emplacement(s) magique(s) de pacte. Screen/&SpellSlotsUsedShortLongDescription=Vous avez dépensé {0} emplacement(s) de magie de pacte et {1} emplacement(s) de sort à ce niveau. diff --git a/SolastaUnfinishedBusiness/Translations/it/Others-it.txt b/SolastaUnfinishedBusiness/Translations/it/Others-it.txt index 99cbf52274..4a2e4f39a9 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Others-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Others-it.txt @@ -281,7 +281,8 @@ Screen/&RangerSpellTitle=Ranger Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Questo incantesimo ti è stato concesso dal tuo archetipo Ladro ed è considerato noto a te. Screen/&RoguishSpellTitle=Furfante -Screen/&SpellAlternatePointsTooltip=Il tuo costo per lanciare incantesimi è:\n1° - 2 punti\n2° - 3 punti\n3° - 5 punti\n4° - 6 punti\n5° - 7 punti\n6° - 9 punti{ 99}7° - 10 punti\n8° - 11 punti\n9° - 13 punti +Screen/&SpellAlternatePointsCostTooltip={0} punti +Screen/&SpellAlternatePointsTooltip=Ti restano {0} punti incantesimo. Screen/&SpellSlotsUsedLongDescription=Hai speso {0} slot incantesimo a questo livello. Screen/&SpellSlotsUsedShortDescription=Hai speso {0} slot magico del patto. Screen/&SpellSlotsUsedShortLongDescription=Hai speso {0} slot magico del patto e {1} slot incantesimo a questo livello. diff --git a/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt index 602f2466d4..6e99333f98 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Others-ja.txt @@ -281,7 +281,8 @@ Screen/&RangerSpellTitle=部隊 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=この呪文はあなたのローギッシュの原型によって与えられており、あなたは知っていると考えられています。 Screen/&RoguishSpellTitle=ローギッシュ -Screen/&SpellAlternatePointsTooltip=呪文を唱えるコストは次のとおりです:\n1 番目 - 2 ポイント\n2 番目 - 3 ポイント\n3 番目 - 5 ポイント\n4 番目 - 6 ポイント\n5 番目 - 7 ポイント\n6 番目 - 9 ポイント\n7 番目 - 10 ポイント\n8 番目 - 11 ポイント\n9 番目 - 13 ポイント +Screen/&SpellAlternatePointsCostTooltip={0} ポイント +Screen/&SpellAlternatePointsTooltip=残りのスペルポイントは {0} です。 Screen/&SpellSlotsUsedLongDescription=このレベルで {0} 個の呪文スロットを消費しました。 Screen/&SpellSlotsUsedShortDescription={0} 個の契約魔法スロットを消費しました。 Screen/&SpellSlotsUsedShortLongDescription=このレベルで、{0} 個の契約魔法スロットと {1} 個の呪文スロットを消費しました。 diff --git a/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt index a5fbcffd6d..177e8e3a40 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Others-ko.txt @@ -281,7 +281,8 @@ Screen/&RangerSpellTitle=레인저 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=이 주문은 귀하의 Roguish 원형에 의해 부여되었으며 귀하에게 알려진 것으로 간주됩니다. Screen/&RoguishSpellTitle=불량한 -Screen/&SpellAlternatePointsTooltip=주문 시전 비용은 다음과 같습니다.\n1위 - 2포인트\n2위 - 3포인트\n3위 - 5포인트\n4위 - 6포인트\n5위 - 7포인트\n6위 - 9포인트{ 99}7위 - 10점\n8위 - 11점\n9위 - 13점 +Screen/&SpellAlternatePointsCostTooltip={0}포인트 +Screen/&SpellAlternatePointsTooltip=주문 포인트가 {0}개 남았습니다. Screen/&SpellSlotsUsedLongDescription=이 레벨에서 {0}개의 주문 슬롯을 사용했습니다. Screen/&SpellSlotsUsedShortDescription={0}개의 협정 매직 슬롯을 사용했습니다. Screen/&SpellSlotsUsedShortLongDescription=이 레벨에서 조약 마법 슬롯 {0}개와 주문 슬롯 {1}개를 사용했습니다. diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt index 097e7e1d6e..014e368107 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Others-pt-BR.txt @@ -281,7 +281,8 @@ Screen/&RangerSpellTitle=Guarda-florestal Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Este feitiço foi concedido pelo seu arquétipo Ladino e é considerado conhecido por você. Screen/&RoguishSpellTitle=Malandro -Screen/&SpellAlternatePointsTooltip=Seu custo para lançar feitiços é:\n1º - 2 pontos\n2º - 3 pontos\n3º - 5 pontos\n4º - 6 pontos\n5º - 7 pontos\n6º - 9 pontos{ 99}7º - 10 pontos\n8º - 11 pontos\n9º - 13 pontos +Screen/&SpellAlternatePointsCostTooltip={0} pontos +Screen/&SpellAlternatePointsTooltip=Você tem {0} pontos de magia restantes. Screen/&SpellSlotsUsedLongDescription=Você gastou {0} espaços de magia neste nível. Screen/&SpellSlotsUsedShortDescription=Você gastou {0} espaço(s) mágico(s) do pacto. Screen/&SpellSlotsUsedShortLongDescription=Você gastou {0} espaço(s) de magia de pacto e {1} espaço(s) de feitiço neste nível. diff --git a/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt index 7d274addd2..8eeb608600 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Others-ru.txt @@ -281,7 +281,8 @@ Screen/&RangerSpellTitle=Следопыт Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=Это заклинание досталось вам из архетипа Плута и считается известным вам. Screen/&RoguishSpellTitle=Плут -Screen/&SpellAlternatePointsTooltip=Ваша стоимость разыгрывания заклинаний составляет:\n1 – 2 очка\n2 – 3 очка\n3 – 5 очков\n4 – 6 очков\n5 – 7 очков\n6 – 9 очков{ 99}7 место — 10 очков\n8 место — 11 очков\n9 место — 13 очков +Screen/&SpellAlternatePointsCostTooltip={0} баллов +Screen/&SpellAlternatePointsTooltip=У вас осталось {0} очков заклинаний. Screen/&SpellSlotsUsedLongDescription=Вы потратили {0} ячеек заклинаний этого уровня. Screen/&SpellSlotsUsedShortDescription=Вы потратили {0} ячеек заклинаний колдуна. Screen/&SpellSlotsUsedShortLongDescription=Вы потратили {0} ячеек заклинаний колдуна и {1} обычных ячеек заклинаний этого уровня. diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt index 0472f38a7d..77faefbe3e 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Others-zh-CN.txt @@ -281,7 +281,8 @@ Screen/&RangerSpellTitle=游侠 Screen/&RepertoireHeaderFormat={0} Screen/&RoguishSpellDescription=此法术已被你的游荡者职业授予,并被视为你已知。 Screen/&RoguishSpellTitle=游荡者 -Screen/&SpellAlternatePointsTooltip=你施放法术所需的费用为:\n第 1 次 - 2 分\n第 2 次 - 3 分\n第 3 次 - 5 分\n第 4 次 - 6 分\n第 5 次 - 7 分\n第 6 次 - 9 分\n第 7 次 - 10 分\n第 8 次 - 11 分\n第 9 次 - 13 分 +Screen/&SpellAlternatePointsCostTooltip={0} 分 +Screen/&SpellAlternatePointsTooltip=您剩余 {0} 点法术值。 Screen/&SpellSlotsUsedLongDescription=你已在该等级扩展了 {0} 个法术位。 Screen/&SpellSlotsUsedShortDescription=你已经扩展了 {0} 个契约魔法法术位。 Screen/&SpellSlotsUsedShortLongDescription=你在这个等级已经扩展了 {0} 个契约魔法法术位和 {1} 个法术位。 From 3da9a4ecac372ddafaf1626c9e2c96ba84d066b8 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 10:28:50 -0700 Subject: [PATCH 32/91] update translations --- SolastaUnfinishedBusiness/Translations/de/Settings-de.txt | 2 +- SolastaUnfinishedBusiness/Translations/en/Settings-en.txt | 2 +- SolastaUnfinishedBusiness/Translations/es/Settings-es.txt | 2 +- SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt | 2 +- SolastaUnfinishedBusiness/Translations/it/Settings-it.txt | 2 +- SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt | 2 +- SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt | 2 +- SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt | 2 +- SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt | 2 +- SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt index 5cd5a293dc..c62f5ab854 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Fügen Sie leuchtende Augenfarben hinzu ModUi/&UnlockMarkAndTattoosForAllCharacters=Schalte Zauberer-Ursprungsmarkierungen und Tätowierungen für alle Charaktere frei ModUi/&UnlockSkinColors=Schalte Hautfarben frei ModUi/&Update=Aktualisieren -ModUi/&UseAlternateSpellPointsSystem=Verwenden Sie das alternative Zauberpunkte-System [http://dnd5e.wikidot.com/spell-points] +ModUi/&UseAlternateSpellPointsSystem=Benutze das System mit den Zauberpunkten\n[Du hast einen Pool an Zauberpunkten, der mit der Stufe des Zauberers steigt\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nDie Kosten zum Wirken von Zaubern mit diesem Pool betragen L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nDie Wiederherstellungsfunktionen für kurze Ruhezeiten werden unter diesem System nicht ausgelöst] ModUi/&UseElfFaceModelsOnTieflings=Verwenden Sie Elfen-Gesichtsmodelle für Tieflings ModUi/&UseHeightOneCylinderEffect=Verwenden Sie einen Zylindereffekt der Höhe 1, wenn Sie Black Tentacles, Entangle, Grease [square] oder Spike Growth [round] ModUi/&UseMathFlankingRules=+ Verwenden Sie präzise Mathematik, um flankierende [kann sich auf langsamen Maschinen auf die Leistung auswirken] zu bestimmen diff --git a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt index 271cbab5d5..97a5079876 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Add glowing eye colors ModUi/&UnlockMarkAndTattoosForAllCharacters=Unlock Sorcerer origin markings and tattoos for all characters ModUi/&UnlockSkinColors=Unlock skin colors ModUi/&Update=Update -ModUi/&UseAlternateSpellPointsSystem=Use variant Spell Points system [http://dnd5e.wikidot.com/spell-points] +ModUi/&UseAlternateSpellPointsSystem=Use variant Spell Points system\n[You have a pool of spell points that increases with caster level\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nCost to cast spells using this pool is L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nShort rest slots recovery features won't be triggered under this system] ModUi/&UseElfFaceModelsOnTieflings=Use Elf face models on Tieflings ModUi/&UseHeightOneCylinderEffect=Use a height 1 cylinder effect when casting Black Tentacles, Entangle, Grease [square] or Spike Growth [round] ModUi/&UseMathFlankingRules=+ Use precise math to determine flanking [may have a performance impact on slow machines] diff --git a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt index 89a3a591e7..587ecab151 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Añade colores de ojos brillantes ModUi/&UnlockMarkAndTattoosForAllCharacters=Desbloquea marcas de origen y tatuajes de Hechicero para todos los personajes. ModUi/&UnlockSkinColors=Desbloquear colores de piel ModUi/&Update=Actualizar -ModUi/&UseAlternateSpellPointsSystem=Utilice la variante Spell Points del sistema [http://dnd5e.wikidot.com/spell-points] +ModUi/&UseAlternateSpellPointsSystem=Usa la variante del sistema Puntos de hechizo\n[Tienes una reserva de puntos de hechizo que aumenta con el nivel del lanzador\nL01: 04, L02: 06 , L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83 , L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nEl coste de lanzar hechizos usando este grupo es L1: 2, L2: 3, L3: 5, L4: 6 , L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nLas funciones de recuperación de espacios de descanso breves no se activarán en este sistema] ModUi/&UseElfFaceModelsOnTieflings=Utilice modelos de cara de Elfo en Teflings ModUi/&UseHeightOneCylinderEffect=Utilice un efecto de cilindro de altura 1 al lanzar Tentáculos negros, Enredar, Grasa [cuadrado] o Crecimiento máximo [ronda] ModUi/&UseMathFlankingRules=+ Utilice matemáticas precisas para determinar el flanqueo [puede tener un impacto en el rendimiento en máquinas lentas] diff --git a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt index e56f7e1d5f..d60c16cc62 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Ajoutez des couleurs d'yeux éclatantes ModUi/&UnlockMarkAndTattoosForAllCharacters=Débloquez les marques et tatouages d'origine Sorcier pour tous les personnages. ModUi/&UnlockSkinColors=Débloquez les couleurs de peau ModUi/&Update=Mise à jour -ModUi/&UseAlternateSpellPointsSystem=Utilisez la variante du système Spell Points [http://dnd5e.wikidot.com/spell-points] +ModUi/&UseAlternateSpellPointsSystem=Utilisez la variante du système Points de sort\n[Vous disposez d'un pool de points de sort qui augmente avec le niveau de lanceur de sorts\nL01 : 04, L02 : 06 , L03 : 14, L04 : 17, L05 : 27, L06 : 32, L07 : 38, L08 : 44, L09 : 57, L10 : 64\nL11 : 73, L12 : 73, L13 : 83, L14 : 83 , L15 : 94, L16 : 94, L17 : 107, L18 : 114, L19 : 123, L20 : 133\nLe coût pour lancer des sorts en utilisant ce pool est L1 : 2, L2 : 3, L3 : 5, L4 : 6 , L5 : 7, L6 : 9, L7 : 10, L8 : 11, L9 : 13\nLes fonctionnalités de récupération des créneaux de repos courts ne seront pas déclenchées sous ce système] ModUi/&UseElfFaceModelsOnTieflings=Utilisez des modèles de visage Elfe sur les Tieflings ModUi/&UseHeightOneCylinderEffect=Utilisez un effet de cylindre de hauteur 1 lors du lancement de Tentacules noires, enchevêtrement, graisse [carré] ou Pic de croissance [rond] ModUi/&UseMathFlankingRules=+ Utilisez des calculs précis pour déterminer le contournement [peut avoir un impact sur les performances sur les machines lentes] diff --git a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt index 9fb889d99e..c8dd5cfc46 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Aggiungi colori luminosi per gli occhi ModUi/&UnlockMarkAndTattoosForAllCharacters=Sblocca i segni di origine e i tatuaggi Stregone per tutti i personaggi ModUi/&UnlockSkinColors=Sblocca i colori della pelle ModUi/&Update=Aggiorna -ModUi/&UseAlternateSpellPointsSystem=Utilizza la variante Punti incantesimo del sistema [http://dnd5e.wikidot.com/spell-points] +ModUi/&UseAlternateSpellPointsSystem=Usa la variante Punti incantesimo del sistema\n[Hai una riserva di punti incantesimo che aumenta con il livello dell'incantatore\nL01: 04, L02: 06 , L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83 , L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nIl costo per lanciare incantesimi usando questa riserva è L1: 2, L2: 3, L3: 5, L4: 6 , L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nLe funzionalità di recupero degli slot di riposo brevi non verranno attivate con questo sistema] ModUi/&UseElfFaceModelsOnTieflings=Usa i modelli del volto di Elfo su Tiefling ModUi/&UseHeightOneCylinderEffect=Usa un effetto del cilindro di altezza 1 quando lanci Tentacoli neri, Intralciare, Ungere [quadrato] o Picco di crescita [turno] ModUi/&UseMathFlankingRules=+ Utilizza calcoli precisi per determinare il fiancheggiamento [potrebbe avere un impatto sulle prestazioni sulle macchine lente] diff --git a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt index c2abf15436..017c4c756a 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=輝く目の色を追加する ModUi/&UnlockMarkAndTattoosForAllCharacters=すべてのキャラクターのソーサラーのオリジンマークとタトゥーをロック解除する ModUi/&UnlockSkinColors=肌の色のロックを解除する ModUi/&Update=更新 -ModUi/&UseAlternateSpellPointsSystem=バリアント スペルポイント システム [http://dnd5e.wikidot.com/spell-points] を使用します。 +ModUi/&UseAlternateSpellPointsSystem=バリアント スペル ポイント システムを使用します{99>[呪文ポイントのプールがあり、術者レベルに応じて増加します\nL01: 04、L02: 06、L03: 14、L04: 17、L05: 27、L06: 32、L07: 38、L08: 44、L09: 57、L10: 64\nL11: 73、L12: 73、L13: 83、L14: 83、L15: 94、L16: 94、L17: 107、L18: 114、L19: 123、L20: 133\nこのプールを使用して呪文を唱えるコストは、L1: 2、L2: 3、L3: 5、L4: 6、L5: 7、L6: 9、L7: 10、L8: 11、L9: 13\nこのシステムでは、短い休憩スロットの回復機能はトリガーされません] ModUi/&UseElfFaceModelsOnTieflings=ティーフリングでエルフの顔モデルを使用する ModUi/&UseHeightOneCylinderEffect=黒い触手、絡まり、グリース [square] または スパイク成長 [ラウンド] ModUi/&UseMathFlankingRules=+ 正確な計算を使用して側面攻撃を決定します[遅いマシンではパフォーマンスに影響を与える可能性があります] diff --git a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt index c4b3ae6420..5804aad2e8 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=빛나는 눈 색깔 추가 ModUi/&UnlockMarkAndTattoosForAllCharacters=모든 캐릭터의 소서러 원산지 표시와 문신을 잠금 해제하세요. ModUi/&UnlockSkinColors=피부색 잠금 해제 ModUi/&Update=업데이트 -ModUi/&UseAlternateSpellPointsSystem=변형 주문 포인트 시스템 사용 [http://dnd5e.wikidot.com/spell-points] +ModUi/&UseAlternateSpellPointsSystem=변형 주문 포인트 시스템 사용\n[시전자 레벨에 따라 증가하는 주문 포인트 풀이 있습니다.\nL01: 04, L02: 06 , L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83 , L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\n이 풀을 사용하여 주문을 시전하는 데 드는 비용은 L1: 2, L2: 3, L3: 5, L4: 6입니다. , L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\n이 시스템에서는 짧은 휴식 슬롯 복구 기능이 실행되지 않습니다.] ModUi/&UseElfFaceModelsOnTieflings=티플링에서 엘프 얼굴 모델을 사용하세요. ModUi/&UseHeightOneCylinderEffect=Black Tentacles, Entangle, Grease [square] 또는 를 시전할 때 높이 1 원통 효과를 사용하세요. 급상승 [round] ModUi/&UseMathFlankingRules=+ 정확한 수학을 사용하여 측면 공격 결정 [느린 시스템에서는 성능에 영향을 미칠 수 있음] diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt index f37e5ec8c2..92a79c233e 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Adicione cores de olhos brilhantes ModUi/&UnlockMarkAndTattoosForAllCharacters=Desbloqueie marcas de origem e tatuagens do Feiticeiro para todos os personagens ModUi/&UnlockSkinColors=Desbloquear cores de pele ModUi/&Update=Atualização -ModUi/&UseAlternateSpellPointsSystem=Use o sistema variante de pontos de feitiço [http://dnd5e.wikidot.com/spell-points] +ModUi/&UseAlternateSpellPointsSystem=Use a variante do sistema Pontos de Feitiço\n[Você tem um conjunto de pontos de feitiço que aumenta com o nível do lançador\nL01: 04, L02: 06 , L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83 , L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nO custo para lançar feitiços usando este conjunto é L1: 2, L2: 3, L3: 5, L4: 6 , L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nOs recursos de recuperação de espaços de descanso curtos não serão acionados neste sistema] ModUi/&UseElfFaceModelsOnTieflings=Use modelos de rosto de Elfo em Tieflings ModUi/&UseHeightOneCylinderEffect=Use um efeito de cilindro de altura 1 ao lançar Black Tentacles, Entangle, Grease [square] ou Pico de crescimento [rodada] ModUi/&UseMathFlankingRules=+ Use matemática precisa para determinar o flanqueamento [pode ter um impacto no desempenho em máquinas lentas] diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index 5ae77ec78a..20cc216482 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=Добавить светящиеся цвета ModUi/&UnlockMarkAndTattoosForAllCharacters=Разблокировать родовые отметины и татуировки Чародея для всех персонажей ModUi/&UnlockSkinColors=Разблокировать цвета кожи ModUi/&Update=Обновить -ModUi/&UseAlternateSpellPointsSystem=Использовать вариант системы Очков заклинаний [http://dnd5e.wikidot.com/spell-points] +ModUi/&UseAlternateSpellPointsSystem=Используйте вариант системы Очки заклинаний\n[У вас есть запас очков заклинаний, который увеличивается с уровнем заклинателя.\nL01: 04, L02: 06 , Л03: 14, Л04: 17, Л05: 27, Л06: 32, Л07: 38, Л08: 44, Л09: 57, Л10: 64\nЛ11: 73, Л12: 73, Л13: 83, Л14: 83 , L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nСтоимость произнесения заклинаний с использованием этого пула составляет L1: 2, L2: 3, L3: 5, L4: 6. , L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nФункции восстановления слотов для короткого отдыха не будут активироваться в этой системе] ModUi/&UseElfFaceModelsOnTieflings=Использовать Эльфийские лица на Тифлингах ModUi/&UseHeightOneCylinderEffect=Ограничить высоту эффекта одним уровнем при накладывании Чёрных щупалец, Опутывания, Смазки [квадрат] или Шипов [круг] ModUi/&UseMathFlankingRules=+ Использовать точную математику для определения окружения [может повлиять на производительность на медленных компьютерах] diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt index fce2ab0cee..5d912ce364 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt @@ -317,7 +317,7 @@ ModUi/&UnlockGlowingEyeColors=添加亮色的眼睛 ModUi/&UnlockMarkAndTattoosForAllCharacters=解锁所有角色的术士起源标记和纹身 ModUi/&UnlockSkinColors=解锁肤色 ModUi/&Update=更新 -ModUi/&UseAlternateSpellPointsSystem=使用变体法术点数系统[http://dnd5e.wikidot.com/spell-points] +ModUi/&UseAlternateSpellPointsSystem=使用变体法术点系统{99>[你拥有一个随施法者等级增加的法术点池\nL01:04、L02:06、L03:14、L04:17、L05:27、L06:32、L07:38、L08:44、L09:57、L10:64\nL11:73、L12:73、L13:83、L14:83、L15:94、L16:94、L17:107、L18:114、L19:123、L20:133\n使用此池施放法术所需的成本为 L1:2、L2:3, L3:5、L4:6、L5:7、L6:9、L7:10、L8:11、L9:13\n在此系统下不会触发短暂休息时段恢复功能] ModUi/&UseElfFaceModelsOnTieflings=在提夫林上使用精灵的面部模型 ModUi/&UseHeightOneCylinderEffect=施放黑色触手、纠缠、油腻[方形]荆棘丛生[圆形]时使用高度为1的立体效果 ModUi/&UseMathFlankingRules=+ 使用精确的数学来确定侧翼 [可能会对慢速机器产生性能影响] From 99d7239e6d4509fe78bb253b7a2a995f8811e0e6 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 10:45:34 -0700 Subject: [PATCH 33/91] feature complete spell points system --- .../Api/DatabaseHelper-RELEASE.cs | 3 -- .../Displays/RulesDisplay.cs | 5 ++ .../Models/MulticlassGameUiContext.cs | 8 ++- .../Models/SpellPointsContext.cs | 51 ++++++++++++++++--- .../Patches/CharacterActionItemFormPatcher.cs | 3 +- .../Patches/FlexibleCastingItemPatcher.cs | 6 +++ .../Patches/RulesetCharacterPatcher.cs | 5 +- .../Patches/SlotStatusTablePatcher.cs | 9 +++- 8 files changed, 76 insertions(+), 14 deletions(-) diff --git a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs index 5439d1c65b..7b205b4326 100644 --- a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs +++ b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs @@ -289,9 +289,6 @@ internal static class CharacterSubclassDefinitions internal static CharacterSubclassDefinition TraditionFreedom { get; } = GetDefinition("TraditionFreedom"); - internal static CharacterSubclassDefinition TraditionGreenmage { get; } = - GetDefinition("TraditionGreenmage"); - internal static CharacterSubclassDefinition TraditionShockArcanist { get; } = GetDefinition("TraditionShockArcanist"); diff --git a/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs b/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs index 4a8b1cf5d6..832b4e1114 100644 --- a/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs +++ b/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs @@ -21,6 +21,11 @@ internal static void DisplayRules() SpellPointsContext.SwitchFeatureDefinitionCastSpellSlots(); } + UI.Label(); + UI.Label(); + UI.Label(); + UI.Label(); + toggle = Main.Settings.UseOfficialAdvantageDisadvantageRules; if (UI.Toggle(Gui.Localize("ModUi/&UseOfficialAdvantageDisadvantageRules"), ref toggle, UI.AutoWidth())) { diff --git a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs index aca558e0e6..f3244b6057 100644 --- a/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs +++ b/SolastaUnfinishedBusiness/Models/MulticlassGameUiContext.cs @@ -139,9 +139,10 @@ internal static void PaintPactSlots( int totalSlotsCount, int totalSlotsRemainingCount, int slotLevel, - [NotNull] RectTransform rectTransform, + SlotStatusTable slotStatusTable, bool ignorePactSlots = false) { + var rectTransform = slotStatusTable.table; var warlockSpellRepertoire = SharedSpellsContext.GetWarlockSpellRepertoire(hero); var warlockSpellLevel = SharedSpellsContext.GetWarlockSpellLevel(hero); @@ -198,6 +199,11 @@ internal static void PaintPactSlots( { component.Used.gameObject.SetActive(false); component.Available.gameObject.SetActive(false); + + var cost = SpellPointsContext.SpellCostByLevel[slotLevel].ToString(); + + slotStatusTable.slotsText.gameObject.SetActive(true); + slotStatusTable.slotsText.Text = Gui.Format("Screen/&SpellAlternatePointsCostTooltip", cost); } else { diff --git a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs index 0d9daf1906..b3ad2bb078 100644 --- a/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellPointsContext.cs @@ -15,7 +15,7 @@ namespace SolastaUnfinishedBusiness.Models; internal static class SpellPointsContext { - private static readonly List SpellCostByLevel = [0, 2, 3, 5, 6, 7, 9, 10, 11, 13]; + internal static readonly List SpellCostByLevel = [0, 2, 3, 5, 6, 7, 9, 10, 11, 13]; private static readonly List FullCastingSlots = []; private static readonly List HalfCastingSlots = []; private static readonly List HalfRoundUpCastingSlots = []; @@ -116,11 +116,6 @@ internal static void ConsumeSlots(RulesetCharacterHero hero, RulesetSpellReperto internal static void RefreshSpellRepertoire(RulesetCharacterHero hero) { - if (hero == null) - { - return; - } - var usablePower = PowerProvider.Get(PowerSpellPoints, hero); var activeConditions = hero.AllConditions.ToList(); @@ -152,6 +147,50 @@ internal static void RefreshSpellRepertoire(RulesetCharacterHero hero) } } + internal static void RefreshActionPanel() + { + var gameLocationScreenExploration = Gui.GuiService.GetScreen(); + + if (gameLocationScreenExploration.Visible) + { + // ReSharper disable once ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator + foreach (var panel in gameLocationScreenExploration.CharacterControlPanel.ActionPanels) + { + foreach (var characterActionItem in + panel.actionItems.Where(x => + x.CurrentItemForm.GuiCharacterAction.ActionDefinition == + DatabaseHelper.ActionDefinitions.CastMain || + x.CurrentItemForm.GuiCharacterAction.ActionDefinition == + DatabaseHelper.ActionDefinitions.CastBonus)) + { + characterActionItem.CurrentItemForm.Refresh(); + } + } + + return; + } + + var gameLocationScreenBattle = Gui.GuiService.GetScreen(); + + // ReSharper disable once InvertIf + if (gameLocationScreenBattle.Visible) + { + // ReSharper disable once ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator + foreach (var panel in gameLocationScreenBattle.CharacterControlPanel.ActionPanels) + { + foreach (var characterActionItem in + panel.actionItems.Where(x => + x.CurrentItemForm.GuiCharacterAction.ActionDefinition == + DatabaseHelper.ActionDefinitions.CastMain || + x.CurrentItemForm.GuiCharacterAction.ActionDefinition == + DatabaseHelper.ActionDefinitions.CastBonus)) + { + characterActionItem.CurrentItemForm.Refresh(); + } + } + } + } + internal static void SwitchFeatureDefinitionCastSpellSlots() { var db = DatabaseRepository.GetDatabase(); diff --git a/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs b/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs index c41730f244..536a23fa31 100644 --- a/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/CharacterActionItemFormPatcher.cs @@ -52,7 +52,8 @@ private static void SetupUseSlots( highSlotNumber.gameObject.SetActive(true); useSlotsTable.gameObject.SetActive(false); highSlotNumber.Text = remainingUsesOfPower.ToString(); - highSlotNumber.GuiTooltip.Content = "Screen/&SpellAlternatePointsTooltip"; + highSlotNumber.GuiTooltip.Content = + Gui.Format("Screen/&SpellAlternatePointsTooltip", remainingUsesOfPower.ToString()); } [UsedImplicitly] diff --git a/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs b/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs index 5c4b7794ee..7bd6f45854 100644 --- a/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/FlexibleCastingItemPatcher.cs @@ -62,6 +62,12 @@ public static class Unbind_Patch [UsedImplicitly] public static void Prefix(FlexibleCastingItem __instance) { + //PATCH: support alternate spell system to ensure points display is refreshed (SPELL_POINTS) + if (Main.Settings.UseAlternateSpellPointsSystem) + { + SpellPointsContext.RefreshActionPanel(); + } + //PATCH: ensures slot colors are white before getting back to pool (MULTICLASS) MulticlassGameUiContext.PaintSlotsWhite(__instance.slotStatusTable); } diff --git a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs index 91b05e01ce..b6322a2e85 100644 --- a/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs +++ b/SolastaUnfinishedBusiness/Patches/RulesetCharacterPatcher.cs @@ -1248,7 +1248,10 @@ public static IEnumerable Transpiler([NotNull] IEnumerable Date: Sat, 13 Jul 2024 11:40:00 -0700 Subject: [PATCH 34/91] tweak mod UI --- .../ChangelogHistory.txt | 6 +-- .../Displays/CreditsDisplay.cs | 1 + .../Displays/RulesDisplay.cs | 48 ++++++++++--------- .../Translations/de/Settings-de.txt | 9 ++-- .../Translations/en/Settings-en.txt | 9 ++-- .../Translations/es/Settings-es.txt | 9 ++-- .../Translations/fr/Settings-fr.txt | 9 ++-- .../Translations/it/Settings-it.txt | 9 ++-- .../Translations/ja/Settings-ja.txt | 9 ++-- .../Translations/ko/Settings-ko.txt | 9 ++-- .../Translations/pt-BR/Settings-pt-BR.txt | 9 ++-- .../Translations/ru/Settings-ru.txt | 9 ++-- .../Translations/zh-CN/Settings-zh-CN.txt | 9 ++-- 13 files changed, 90 insertions(+), 55 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 82f1d03e2c..b9b90bda45 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,8 +1,8 @@ 1.5.97.20: -- added variant spell points system -- fixed 'Export Hero' and RESPEC effects termination [auras, infusions, etc.] -- fixed Martial Arcane Archer arcane shot to trigger just after attack hits +- added official variant spell points rules +- fixed Export Hero and RESPEC auras, infusions, etc. effects termination +- fixed Martial Arcane Archer arcane shot causing a soft lock if enemy dead - fixed Martial Battle Master initial pool set to 3 instead of 4 - fixed Ring of Knifes spell missing to-hit modifiers on power - fixed Scatter spell not allowing enemies selection diff --git a/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs b/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs index 916447f5f0..899ed6cd51 100644 --- a/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs +++ b/SolastaUnfinishedBusiness/Displays/CreditsDisplay.cs @@ -90,6 +90,7 @@ internal static class CreditsDisplay ("Thaladar", "QA, monster portraits, sample portraits"), ("Zeke", "sample portraits"), ("Digital Primus", "sample portraits"), + ("sunny_d", "sample portraits"), ("team-waldo", "korean translations"), ("Dovel", "russian translations"), diff --git a/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs b/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs index 832b4e1114..4846693491 100644 --- a/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs +++ b/SolastaUnfinishedBusiness/Displays/RulesDisplay.cs @@ -14,19 +14,7 @@ internal static void DisplayRules() UI.Label(Gui.Localize("ModUi/&SRD")); UI.Label(); - var toggle = Main.Settings.UseAlternateSpellPointsSystem; - if (UI.Toggle(Gui.Localize("ModUi/&UseAlternateSpellPointsSystem"), ref toggle, UI.AutoWidth())) - { - Main.Settings.UseAlternateSpellPointsSystem = toggle; - SpellPointsContext.SwitchFeatureDefinitionCastSpellSlots(); - } - - UI.Label(); - UI.Label(); - UI.Label(); - UI.Label(); - - toggle = Main.Settings.UseOfficialAdvantageDisadvantageRules; + var toggle = Main.Settings.UseOfficialAdvantageDisadvantageRules; if (UI.Toggle(Gui.Localize("ModUi/&UseOfficialAdvantageDisadvantageRules"), ref toggle, UI.AutoWidth())) { Main.Settings.UseOfficialAdvantageDisadvantageRules = toggle; @@ -90,12 +78,6 @@ internal static void DisplayRules() SrdAndHouseRulesContext.SwitchOfficialFoodRationsWeight(); } - toggle = Main.Settings.UseOfficialSmallRacesDisWithHeavyWeapons; - if (UI.Toggle(Gui.Localize("ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons"), ref toggle, UI.AutoWidth())) - { - Main.Settings.UseOfficialSmallRacesDisWithHeavyWeapons = toggle; - } - toggle = Main.Settings.UseOfficialLightingObscurementAndVisionRules; if (UI.Toggle(Gui.Localize("ModUi/&UseOfficialObscurementRules"), ref toggle, UI.AutoWidth())) { @@ -108,11 +90,10 @@ internal static void DisplayRules() LightingAndObscurementContext.SwitchOfficialObscurementRules(); } - UI.Label(); - UI.Label(); - if (Main.Settings.UseOfficialLightingObscurementAndVisionRules) { + UI.Label(Gui.Localize("ModUi/&UseOfficialObscurementRulesHelp")); + toggle = Main.Settings.OfficialObscurementRulesInvisibleCreaturesCanBeTarget; if (UI.Toggle(Gui.Localize("ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget"), ref toggle, UI.AutoWidth())) @@ -149,6 +130,29 @@ internal static void DisplayRules() Main.Settings.OfficialObscurementRulesTweakMonsters = toggle; LightingAndObscurementContext.SwitchMonstersOnObscurementRules(); } + + if (Main.Settings.OfficialObscurementRulesTweakMonsters) + { + UI.Label(Gui.Localize("ModUi/&OfficialObscurementRulesTweakMonstersHelp")); + } + } + + toggle = Main.Settings.UseOfficialSmallRacesDisWithHeavyWeapons; + if (UI.Toggle(Gui.Localize("ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons"), ref toggle, UI.AutoWidth())) + { + Main.Settings.UseOfficialSmallRacesDisWithHeavyWeapons = toggle; + } + + toggle = Main.Settings.UseAlternateSpellPointsSystem; + if (UI.Toggle(Gui.Localize("ModUi/&UseAlternateSpellPointsSystem"), ref toggle, UI.AutoWidth())) + { + Main.Settings.UseAlternateSpellPointsSystem = toggle; + SpellPointsContext.SwitchFeatureDefinitionCastSpellSlots(); + } + + if (Main.Settings.UseAlternateSpellPointsSystem) + { + UI.Label(Gui.Localize("ModUi/&UseAlternateSpellPointsSystemHelp")); } UI.Label(); diff --git a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt index c62f5ab854..cafb35d7c0 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Settings-de.txt @@ -239,7 +239,8 @@ ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Abbrechen V ModUi/&OfficialObscurementRulesHeavilyObscuredAsProjectileBlocker=+ Ändern Sie stark verdeckte Bereiche in Projektilblocker [Cloud Kill, Nebelwolke , Brandwolke, Blütenblattsturm, Graupelsturm, Stinkende Wolke] ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget=+ Unsichtbare Kreaturen sind stark verdeckt und können als Ziel ausgewählt werden, Angriffswürfe gegen die Kreatur haben einen Nachteil und die Angriffswürfe der Kreatur haben einen Vorteil ModUi/&OfficialObscurementRulesMagicalDarknessAsProjectileBlocker=+ magisch verborgene Bereiche in Projektilblocker ändern [jede Quelle des Zaubereffekts Dunkelheit] -ModUi/&OfficialObscurementRulesTweakMonsters=+ Füge Monstern und NPCs bei Bedarf Darkvision, BlindSight und TrueSight hinzu.\n [Einstellungssammlungen MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] +ModUi/&OfficialObscurementRulesTweakMonsters=+ Füge Monstern und NPCs bei Bedarf Dunkelsicht, Blindsicht und Wahrsicht hinzu +ModUi/&OfficialObscurementRulesTweakMonstersHelp=[Einstellungssammlungen Monster, die über Dunkelsicht verfügen sollten, Monster, die über echte Sicht verfügen sollten, Monster, die über blinde Sicht verfügen sollten] ModUi/&OnlyShowMostPowerfulUpcastConjuredElementalOrFey=+ Zeigt nur die mächtigsten Kreaturen in der Beschwörungsliste an ModUi/&OutlineGridWidthModifier=Multiplizieren Sie die Breite des Umrissgitters mit [%] ModUi/&OutlineGridWidthSpeed=Multiplizieren Sie die Animationsgeschwindigkeit des Umrissgitters mit [%] @@ -317,7 +318,8 @@ ModUi/&UnlockGlowingEyeColors=Fügen Sie leuchtende Augenfarben hinzu ModUi/&UnlockMarkAndTattoosForAllCharacters=Schalte Zauberer-Ursprungsmarkierungen und Tätowierungen für alle Charaktere frei ModUi/&UnlockSkinColors=Schalte Hautfarben frei ModUi/&Update=Aktualisieren -ModUi/&UseAlternateSpellPointsSystem=Benutze das System mit den Zauberpunkten\n[Du hast einen Pool an Zauberpunkten, der mit der Stufe des Zauberers steigt\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nDie Kosten zum Wirken von Zaubern mit diesem Pool betragen L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nDie Wiederherstellungsfunktionen für kurze Ruhezeiten werden unter diesem System nicht ausgelöst] +ModUi/&UseAlternateSpellPointsSystem=Benutze offizielle Varianten-Zauberpunkt-Regeln +ModUi/&UseAlternateSpellPointsSystemHelp=[Du hast einen Pool an Zauberpunkten, der mit der Stufe des Zauberers steigt\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nDie Kosten für das Wirken von Zaubern mit diesem Pool betragen L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nDie Wiederherstellungsfunktionen für kurze Ruhezeiten werden unter diesem System nicht ausgelöst] ModUi/&UseElfFaceModelsOnTieflings=Verwenden Sie Elfen-Gesichtsmodelle für Tieflings ModUi/&UseHeightOneCylinderEffect=Verwenden Sie einen Zylindereffekt der Höhe 1, wenn Sie Black Tentacles, Entangle, Grease [square] oder Spike Growth [round] ModUi/&UseMathFlankingRules=+ Verwenden Sie präzise Mathematik, um flankierende [kann sich auf langsamen Maschinen auf die Leistung auswirken] zu bestimmen @@ -327,6 +329,7 @@ ModUi/&UseOfficialFlankingRulesAlsoForRanged=+ Auch für Fernangriffe aktivie ModUi/&UseOfficialFlankingRulesAlsoForReach=+ Auch für Reichweitenangriffe aktivieren [Präzise Mathematik deaktivieren] ModUi/&UseOfficialFlankingRulesButAddAttackModifier=+ Anstelle des Vorteils gewähre +1 auf den Angriffswurf ModUi/&UseOfficialFoodRationsWeight=Verwenden Sie die offizielle Lebensmittelration mit einem Gewicht von 2 Pfund -ModUi/&UseOfficialObscurementRules=Benutzen Sie die offiziellen Kampfregeln für Beleuchtung, Verdunkelung und Sicht\n[Angreifer, der wahrnimmt, Verteidiger, der es nicht wahrnimmt, erhalten ADV, und Angreifer, der dies nicht tut Der Verteidiger, der es wahrnehmen kann, erhält DIS\n. Stark verdeckte Bereiche verursachen einen geblendeten Zustand, in dem Angriffswürfe gegen die Kreatur ADV haben und die Angriffswürfe der Kreatur DIS\n. Alle Distanzzauber, die auf Einzelpersonen abzielen, können nicht gewirkt werden, wenn der Angreifer keine Sicht hat , mit Ausnahme derjenigen, die eindeutig nicht angeben, dass Sehvermögen erforderlich ist] +ModUi/&UseOfficialObscurementRules=Benutze die offiziellen Kampfregeln für Beleuchtung, Verdunkelung und Sicht +ModUi/&UseOfficialObscurementRulesHelp=[Angreifer, der wahrnimmt, Verteidiger, der es nicht wahrnehmen kann, erhält ADV, und Angreifer, der es nicht wahrnimmt, Verteidiger, der es wahrnehmen kann, erhält DIS\n stark verdeckte Bereiche verursachen den Zustand der Erblindung, wobei Angriffswürfe gegen die Kreatur ADV haben und die Angriffswürfe der Kreatur DIS\n alle Distanzzauber, die auf Einzelpersonen zielen, können nicht gewirkt werden, wenn der Angreifer keine Sicht hat, außer denen, bei denen nicht klar angegeben ist, dass Sicht erforderlich ist] ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons=Befolgen Sie die offiziellen Regeln für kleine Rassen, wenn Sie schwere Waffen einsetzen [Ihre Angriffe haben Nachteile] ModUi/&Visuals=Visuals: [Neustart erforderlich] diff --git a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt index 97a5079876..da64f2a18a 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Settings-en.txt @@ -239,7 +239,8 @@ ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Cancel adva ModUi/&OfficialObscurementRulesHeavilyObscuredAsProjectileBlocker=+ Change heavily obscured areas to be projectile blockers [Cloud Kill, Fog Cloud, Incendiary Cloud, Petal Storm, Sleet Storm, Stinking Cloud] ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget=+ Invisible creatures are heavily obscured and can be target, attack rolls against the creature have disadvantage, and the creature's attack rolls have advantage ModUi/&OfficialObscurementRulesMagicalDarknessAsProjectileBlocker=+ Change magically obscured areas to be projectile blockers [any source of the Darkness spell effect] -ModUi/&OfficialObscurementRulesTweakMonsters=+ Add Darkvision, BlindSight, and TrueSight to monsters and NPCs whenever appropriate\n[settings' collections MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] +ModUi/&OfficialObscurementRulesTweakMonsters=+ Add Darkvision, BlindSight, and TrueSight to monsters and NPCs whenever appropriate +ModUi/&OfficialObscurementRulesTweakMonstersHelp=[settings' collections MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] ModUi/&OnlyShowMostPowerfulUpcastConjuredElementalOrFey=+ Only show the most powerful creatures in the conjuration list ModUi/&OutlineGridWidthModifier=Multiply the outline grid width by [%] ModUi/&OutlineGridWidthSpeed=Multiply the outline grid animation speed by [%] @@ -317,7 +318,8 @@ ModUi/&UnlockGlowingEyeColors=Add glowing eye colors ModUi/&UnlockMarkAndTattoosForAllCharacters=Unlock Sorcerer origin markings and tattoos for all characters ModUi/&UnlockSkinColors=Unlock skin colors ModUi/&Update=Update -ModUi/&UseAlternateSpellPointsSystem=Use variant Spell Points system\n[You have a pool of spell points that increases with caster level\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nCost to cast spells using this pool is L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nShort rest slots recovery features won't be triggered under this system] +ModUi/&UseAlternateSpellPointsSystem=Use official variant spell points rules +ModUi/&UseAlternateSpellPointsSystemHelp=[You have a pool of spell points that increases with caster level\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nCost to cast spells using this pool is L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nShort rest slots recovery features won't be triggered under this system] ModUi/&UseElfFaceModelsOnTieflings=Use Elf face models on Tieflings ModUi/&UseHeightOneCylinderEffect=Use a height 1 cylinder effect when casting Black Tentacles, Entangle, Grease [square] or Spike Growth [round] ModUi/&UseMathFlankingRules=+ Use precise math to determine flanking [may have a performance impact on slow machines] @@ -327,6 +329,7 @@ ModUi/&UseOfficialFlankingRulesAlsoForRanged=+ Also enable for ranged attacks ModUi/&UseOfficialFlankingRulesAlsoForReach=+ Also enable for reach attacks [disable precise math] ModUi/&UseOfficialFlankingRulesButAddAttackModifier=+ Instead of advantage grant +1 to attack roll ModUi/&UseOfficialFoodRationsWeight=Use official food ration weight of 2 pounds -ModUi/&UseOfficialObscurementRules=Use official lighting, obscurement, and vision combat rules\n[attacker who perceive defender who cannot perceive it gets ADV, and attacker who doesn't perceive defender who can perceive it gets DIS\n heavily obscured areas inflict blinded condition, where attack rolls against the creature have ADV, and the creature's attack rolls have DIS\n all distance spells targeting individuals cannot be cast if attacker has no sight, except for the ones that clearly don't state sight is required] +ModUi/&UseOfficialObscurementRules=Use official lighting, obscurement, and vision combat rules +ModUi/&UseOfficialObscurementRulesHelp=[attacker who perceive defender who cannot perceive it gets ADV, and attacker who doesn't perceive defender who can perceive it gets DIS\n heavily obscured areas inflict blinded condition, where attack rolls against the creature have ADV, and the creature's attack rolls have DIS\n all distance spells targeting individuals cannot be cast if attacker has no sight, except for the ones that clearly don't state sight is required] ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons=Use official small races rules when wielding heavy weapons [your attacks have disadvantage] ModUi/&Visuals=Visuals: [Requires Restart] diff --git a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt index 587ecab151..158f0352bc 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Settings-es.txt @@ -239,7 +239,8 @@ ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Cancelar ve ModUi/&OfficialObscurementRulesHeavilyObscuredAsProjectileBlocker=+ Cambia las áreas muy oscurecidas para que sean bloqueadores de proyectiles [Cloud Kill, Nube de niebla , Nube incendiaria, Tormenta de pétalos, Tormenta de aguanieve, Nube apestosa] ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget=+ Las criaturas invisibles están muy oscurecidas y pueden ser objetivos, las tiradas de ataque contra la criatura tienen desventaja y las tiradas de ataque de la criatura tienen ventaja ModUi/&OfficialObscurementRulesMagicalDarknessAsProjectileBlocker=+ Cambia las áreas oscurecidas mágicamente para que sean bloqueadores de proyectiles [cualquier fuente del efecto de hechizo Oscuridad] -ModUi/&OfficialObscurementRulesTweakMonsters=+ Añade Darkvision, BlindSight y TrueSight a monstruos y NPC cuando sea apropiado.\n [colecciones de configuración MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] +ModUi/&OfficialObscurementRulesTweakMonsters=+ Añade Darkvision, BlindSight y TrueSight a monstruos y NPC cuando sea apropiado +ModUi/&OfficialObscurementRulesTweakMonstersHelp=[colecciones de configuración MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] ModUi/&OnlyShowMostPowerfulUpcastConjuredElementalOrFey=+ Mostrar solo las criaturas más poderosas en la lista de conjuración ModUi/&OutlineGridWidthModifier=Multiplica el ancho de la cuadrícula del contorno por [%] ModUi/&OutlineGridWidthSpeed=Multiplica la velocidad de animación de la cuadrícula del contorno por [%] @@ -317,7 +318,8 @@ ModUi/&UnlockGlowingEyeColors=Añade colores de ojos brillantes ModUi/&UnlockMarkAndTattoosForAllCharacters=Desbloquea marcas de origen y tatuajes de Hechicero para todos los personajes. ModUi/&UnlockSkinColors=Desbloquear colores de piel ModUi/&Update=Actualizar -ModUi/&UseAlternateSpellPointsSystem=Usa la variante del sistema Puntos de hechizo\n[Tienes una reserva de puntos de hechizo que aumenta con el nivel del lanzador\nL01: 04, L02: 06 , L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83 , L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nEl coste de lanzar hechizos usando este grupo es L1: 2, L2: 3, L3: 5, L4: 6 , L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nLas funciones de recuperación de espacios de descanso breves no se activarán en este sistema] +ModUi/&UseAlternateSpellPointsSystem=Utilice las reglas oficiales de puntos de hechizo variantes +ModUi/&UseAlternateSpellPointsSystemHelp=[Tienes una reserva de puntos de hechizo que aumenta con el nivel del lanzador\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07 : 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19 : 123, L20: 133\nEl costo para lanzar hechizos usando este grupo es L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9 : 13\nLas funciones de recuperación de espacios de descanso breves no se activarán en este sistema] ModUi/&UseElfFaceModelsOnTieflings=Utilice modelos de cara de Elfo en Teflings ModUi/&UseHeightOneCylinderEffect=Utilice un efecto de cilindro de altura 1 al lanzar Tentáculos negros, Enredar, Grasa [cuadrado] o Crecimiento máximo [ronda] ModUi/&UseMathFlankingRules=+ Utilice matemáticas precisas para determinar el flanqueo [puede tener un impacto en el rendimiento en máquinas lentas] @@ -327,6 +329,7 @@ ModUi/&UseOfficialFlankingRulesAlsoForRanged=+ También habilitar para ataque ModUi/&UseOfficialFlankingRulesAlsoForReach=+ Habilitar también para ataques de alcance [deshabilitar matemáticas precisas] ModUi/&UseOfficialFlankingRulesButAddAttackModifier=+ En lugar de ventaja otorga +1 a la tirada de ataque ModUi/&UseOfficialFoodRationsWeight=Utilice una ración de alimentos oficial de 2 libras -ModUi/&UseOfficialObscurementRules=Utilice las reglas de combate oficiales de iluminación, oscurecimiento y visión\n[el atacante que percibe al defensor que no puede percibirlo obtiene ADV y el atacante que no percibir al defensor que puede percibirlo obtiene DIS\n las áreas muy oscurecidas infligen una condición de ceguera, donde las tiradas de ataque contra la criatura tienen ADV y las tiradas de ataque de la criatura tienen DIS\n todos los hechizos de distancia dirigidos a individuos no se pueden lanzar si el atacante no tiene vista , excepto aquellos que claramente no indican que se requiere visión] +ModUi/&UseOfficialObscurementRules=Utilice las reglas oficiales de combate de iluminación, oscurecimiento y visión +ModUi/&UseOfficialObscurementRulesHelp=[el atacante que percibe al defensor que no puede percibirlo obtiene ADV, y el atacante que no percibe al defensor que puede percibirlo obtiene DIS\n las áreas muy oscurecidas infligen una condición de ceguera, donde el ataque rueda contra el La criatura tiene ADV y las tiradas de ataque de la criatura tienen DIS\n todos los hechizos de distancia dirigidos a individuos no se pueden lanzar si el atacante no tiene vista, excepto aquellos que claramente no indican que se requiere vista] ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons=Usa las reglas oficiales de razas pequeñas cuando empuñas armas pesadas [tus ataques tienen desventaja] ModUi/&Visuals=Imágenes visuales: [Requiere reinicio] diff --git a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt index d60c16cc62..d91d0d20c6 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Settings-fr.txt @@ -239,7 +239,8 @@ ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Annuler l'a ModUi/&OfficialObscurementRulesHeavilyObscuredAsProjectileBlocker=+ Remplacer les zones fortement obscurcies par des bloqueurs de projectiles [Cloud Kill, Nuage de brouillard , Nuage incendiaire, Tempête de pétales, Tempête de grésil, Nuage puant] ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget=+ Les créatures invisibles sont fortement obscurcies et peuvent être ciblées, les jets d'attaque contre la créature ont un désavantage et les jets d'attaque de la créature ont un avantage ModUi/&OfficialObscurementRulesMagicalDarknessAsProjectileBlocker=+ Changer les zones obscurcies par magie en bloqueurs de projectiles [n'importe quelle source de l'effet du sort Obscurité] -ModUi/&OfficialObscurementRulesTweakMonsters=+ Ajoutez Darkvision, BlindSight et TrueSight aux monstres et aux PNJ lorsque cela est approprié\n [collections de paramètres MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] +ModUi/&OfficialObscurementRulesTweakMonsters=+ Ajoutez Darkvision, BlindSight et TrueSight aux monstres et aux PNJ lorsque cela est approprié +ModUi/&OfficialObscurementRulesTweakMonstersHelp=[collections de paramètres MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] ModUi/&OnlyShowMostPowerfulUpcastConjuredElementalOrFey=+ Afficher uniquement les créatures les plus puissantes de la liste de conjuration ModUi/&OutlineGridWidthModifier=Multipliez la largeur de la grille de contour par [%] ModUi/&OutlineGridWidthSpeed=Multipliez la vitesse d'animation de la grille de contour par [%] @@ -317,7 +318,8 @@ ModUi/&UnlockGlowingEyeColors=Ajoutez des couleurs d'yeux éclatantes ModUi/&UnlockMarkAndTattoosForAllCharacters=Débloquez les marques et tatouages d'origine Sorcier pour tous les personnages. ModUi/&UnlockSkinColors=Débloquez les couleurs de peau ModUi/&Update=Mise à jour -ModUi/&UseAlternateSpellPointsSystem=Utilisez la variante du système Points de sort\n[Vous disposez d'un pool de points de sort qui augmente avec le niveau de lanceur de sorts\nL01 : 04, L02 : 06 , L03 : 14, L04 : 17, L05 : 27, L06 : 32, L07 : 38, L08 : 44, L09 : 57, L10 : 64\nL11 : 73, L12 : 73, L13 : 83, L14 : 83 , L15 : 94, L16 : 94, L17 : 107, L18 : 114, L19 : 123, L20 : 133\nLe coût pour lancer des sorts en utilisant ce pool est L1 : 2, L2 : 3, L3 : 5, L4 : 6 , L5 : 7, L6 : 9, L7 : 10, L8 : 11, L9 : 13\nLes fonctionnalités de récupération des créneaux de repos courts ne seront pas déclenchées sous ce système] +ModUi/&UseAlternateSpellPointsSystem=Utiliser les règles officielles des variantes de points de sort +ModUi/&UseAlternateSpellPointsSystemHelp=[Vous disposez d'une réserve de points de sort qui augmente avec le niveau de lanceur de sorts\nL01 : 04, L02 : 06, L03 : 14, L04 : 17, L05 : 27, L06 : 32, L07 : 38, L08 : 44, L09 : 57, L10 : 64\nL11 : 73, L12 : 73, L13 : 83, L14 : 83, L15 : 94, L16 : 94, L17 : 107, L18 : 114, L19 : 123, L20 : 133\nLe coût pour lancer des sorts en utilisant ce pool est L1 : 2, L2 : 3, L3 : 5, L4 : 6, L5 : 7, L6 : 9, L7 : 10, L8 : 11, L9 : 13\nLes fonctionnalités de récupération des créneaux de repos courts ne seront pas déclenchées sous ce système] ModUi/&UseElfFaceModelsOnTieflings=Utilisez des modèles de visage Elfe sur les Tieflings ModUi/&UseHeightOneCylinderEffect=Utilisez un effet de cylindre de hauteur 1 lors du lancement de Tentacules noires, enchevêtrement, graisse [carré] ou Pic de croissance [rond] ModUi/&UseMathFlankingRules=+ Utilisez des calculs précis pour déterminer le contournement [peut avoir un impact sur les performances sur les machines lentes] @@ -327,6 +329,7 @@ ModUi/&UseOfficialFlankingRulesAlsoForRanged=+ Activer également les attaque ModUi/&UseOfficialFlankingRulesAlsoForReach=+ Activer également les attaques par portée [désactiver les calculs précis] ModUi/&UseOfficialFlankingRulesButAddAttackModifier=+ Au lieu de l'avantage, accordez +1 au jet d'attaque ModUi/&UseOfficialFoodRationsWeight=Utilisez une ration alimentaire officielle d'un poids de 2 livres. -ModUi/&UseOfficialObscurementRules=Utilisez les règles officielles de combat d'éclairage, d'obscurcissement et de vision\n[l'attaquant qui perçoit le défenseur qui ne peut pas le percevoir obtient l'ADV, et l'attaquant qui ne le perçoit pas percevoir le défenseur qui peut le percevoir obtient un DIS\n les zones fortement obscurcies infligent un état d'aveuglement, où les jets d'attaque contre la créature ont ADV, et les jets d'attaque de la créature ont DIS\n tous les sorts à distance ciblant des individus ne peuvent pas être lancés si l'attaquant n'a pas de vue , sauf ceux qui n'indiquent clairement pas que la vue est requise] +ModUi/&UseOfficialObscurementRules=Utilisez les règles officielles de combat d'éclairage, d'obscurcissement et de vision. +ModUi/&UseOfficialObscurementRulesHelp=[l'attaquant qui perçoit le défenseur qui ne peut pas le percevoir obtient l'ADV, et l'attaquant qui ne perçoit pas le défenseur qui peut le percevoir obtient le DIS\n les zones fortement obscurcies infligent un état aveuglé, où l'attaque lance un jet contre le la créature a ADV, et les jets d'attaque de la créature ont DIS\n tous les sorts à distance ciblant des individus ne peuvent pas être lancés si l'attaquant n'a pas de vue, sauf ceux qui n'indiquent clairement pas que la vue est requise] ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons=Utilisez les règles officielles des petites races lorsque vous maniez des armes lourdes [vos attaques ont un désavantage] ModUi/&Visuals=Visuels : [Nécessite un redémarrage] diff --git a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt index c8dd5cfc46..6eac249158 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Settings-it.txt @@ -239,7 +239,8 @@ ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Annulla van ModUi/&OfficialObscurementRulesHeavilyObscuredAsProjectileBlocker=+ Cambia le aree fortemente oscurate in bloccanti di proiettili [Nuvola Uccidi, Nuvola di Nebbia , Nube incendiaria, Tempesta di petali, Tempesta di nevischio, Nuvola Puzzolente] ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget=+ Le creature invisibili sono pesantemente oscurate e possono essere bersagli, i tiri per colpire contro la creatura hanno svantaggio e i tiri per colpire della creatura hanno vantaggio ModUi/&OfficialObscurementRulesMagicalDarknessAsProjectileBlocker=+ Cambia le aree magicamente oscurate in bloccanti dei proiettili [qualsiasi fonte dell'effetto dell'incantesimo Oscurità] -ModUi/&OfficialObscurementRulesTweakMonsters=+ Aggiungi Scurovisione, BlindSight e TrueSight a mostri e NPC quando appropriato\n [raccolte di impostazioni MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] +ModUi/&OfficialObscurementRulesTweakMonsters=+ Aggiungi Scurovisione, BlindSight e TrueSight a mostri e NPC quando appropriato +ModUi/&OfficialObscurementRulesTweakMonstersHelp=[raccolte di impostazioni MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] ModUi/&OnlyShowMostPowerfulUpcastConjuredElementalOrFey=+ Mostra solo le creature più potenti nell'elenco degli incantesimi ModUi/&OutlineGridWidthModifier=Moltiplica la larghezza della griglia del contorno per [%] ModUi/&OutlineGridWidthSpeed=Moltiplica la velocità di animazione della griglia del contorno per [%] @@ -317,7 +318,8 @@ ModUi/&UnlockGlowingEyeColors=Aggiungi colori luminosi per gli occhi ModUi/&UnlockMarkAndTattoosForAllCharacters=Sblocca i segni di origine e i tatuaggi Stregone per tutti i personaggi ModUi/&UnlockSkinColors=Sblocca i colori della pelle ModUi/&Update=Aggiorna -ModUi/&UseAlternateSpellPointsSystem=Usa la variante Punti incantesimo del sistema\n[Hai una riserva di punti incantesimo che aumenta con il livello dell'incantatore\nL01: 04, L02: 06 , L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83 , L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nIl costo per lanciare incantesimi usando questa riserva è L1: 2, L2: 3, L3: 5, L4: 6 , L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nLe funzionalità di recupero degli slot di riposo brevi non verranno attivate con questo sistema] +ModUi/&UseAlternateSpellPointsSystem=Utilizza le regole ufficiali dei varianti punti incantesimo +ModUi/&UseAlternateSpellPointsSystemHelp=[Hai una riserva di punti incantesimo che aumenta con il livello dell'incantatore\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07 : 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19 : 123, L20: 133\nIl costo per lanciare incantesimi usando questa riserva è L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9 : 13\nLe funzionalità di recupero degli slot di riposo brevi non verranno attivate con questo sistema] ModUi/&UseElfFaceModelsOnTieflings=Usa i modelli del volto di Elfo su Tiefling ModUi/&UseHeightOneCylinderEffect=Usa un effetto del cilindro di altezza 1 quando lanci Tentacoli neri, Intralciare, Ungere [quadrato] o Picco di crescita [turno] ModUi/&UseMathFlankingRules=+ Utilizza calcoli precisi per determinare il fiancheggiamento [potrebbe avere un impatto sulle prestazioni sulle macchine lente] @@ -327,6 +329,7 @@ ModUi/&UseOfficialFlankingRulesAlsoForRanged=+ Abilita anche gli attacchi a d ModUi/&UseOfficialFlankingRulesAlsoForReach=+ Abilita anche gli attacchi di portata [disabilita matematica precisa] ModUi/&UseOfficialFlankingRulesButAddAttackModifier=+ Invece del vantaggio concedi +1 al tiro per colpire ModUi/&UseOfficialFoodRationsWeight=Usa la razione alimentare ufficiale del peso di 2 libbre -ModUi/&UseOfficialObscurementRules=Utilizza le regole di combattimento ufficiali di illuminazione, oscuramento e visione\n[l'attaccante che percepisce il difensore che non può percepirlo ottiene ADV e l'attaccante che non lo fa percepisce il difensore che può percepirlo ottiene DIS\n le aree fortemente oscurate infliggono una condizione di accecamento, dove i tiri per colpire contro la creatura hanno ADV e i tiri per colpire della creatura hanno DIS\n tutti gli incantesimi a distanza che prendono di mira gli individui non possono essere lanciati se l'attaccante non ha vista , ad eccezione di quelli che chiaramente non indicano che è richiesta la vista] +ModUi/&UseOfficialObscurementRules=Utilizza le regole ufficiali di combattimento illuminazione, oscuramento e visione +ModUi/&UseOfficialObscurementRulesHelp=[l'attaccante che percepisce il difensore che non può percepirlo ottiene ADV, e l'attaccante che non percepisce il difensore che può percepirlo ottiene DIS\n le aree fortemente oscurate infliggono una condizione di accecato, dove i tiri di attacco contro la creatura ha ADV e i tiri per colpire della creatura hanno DIS\n tutti gli incantesimi a distanza che hanno come bersaglio individui non possono essere lanciati se l'attaccante non ha vista, ad eccezione di quelli che chiaramente non indicano che la vista è richiesta] ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons=Utilizza le regole ufficiali delle piccole razze quando impugni armi pesanti [i tuoi attacchi hanno svantaggio] ModUi/&Visuals=Immagini: [Richiede il riavvio] diff --git a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt index 017c4c756a..8bf98c48b4 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Settings-ja.txt @@ -239,7 +239,8 @@ ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ 盲目、不可視、認 ModUi/&OfficialObscurementRulesHeavilyObscuredAsProjectileBlocker=+非常に遮蔽されたエリアを発射物ブロッカーに変更[クラウドキル、フォグクラウド、焼夷雲、ペタルストーム、みぞれの嵐、臭い雲] ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget=+ 目に見えないクリーチャーは大きく隠されており、対象となる可能性があり、そのクリーチャーに対する攻撃ロールは不利になり、クリーチャーの攻撃ロールは有利になります ModUi/&OfficialObscurementRulesMagicalDarknessAsProjectileBlocker=+魔法で隠されたエリアを発射物ブロッカーに変更[ダークネスの呪文効果の発生源] -ModUi/&OfficialObscurementRulesTweakMonsters=+ 必要に応じて、ダークビジョン、ブラインドサイト、トゥルーサイトをモンスターやNPCに追加します\n [設定のコレクション MonstersThatShouldHaveDarkvisionMonstersThatShouldHaveTrueSightMonstersThatShouldHaveBlindSight] +ModUi/&OfficialObscurementRulesTweakMonsters=+ モンスターや NPC に適切な場合に、Darkvision、BlindSight、TrueSight を追加します +ModUi/&OfficialObscurementRulesTweakMonstersHelp=[設定のコレクション MonstersThatShouldHaveDarkvisionMonstersThatShouldHaveTrueSightMonstersThatShouldHaveBlindSight] ModUi/&OnlyShowMostPowerfulUpcastConjuredElementalOrFey=+ 召喚リストで最も強力なクリーチャーのみを表示 ModUi/&OutlineGridWidthModifier=アウトライングリッドの幅を[%]で乗算します。 ModUi/&OutlineGridWidthSpeed=アウトライン グリッドのアニメーション速度を 2 倍します [%] @@ -317,7 +318,8 @@ ModUi/&UnlockGlowingEyeColors=輝く目の色を追加する ModUi/&UnlockMarkAndTattoosForAllCharacters=すべてのキャラクターのソーサラーのオリジンマークとタトゥーをロック解除する ModUi/&UnlockSkinColors=肌の色のロックを解除する ModUi/&Update=更新 -ModUi/&UseAlternateSpellPointsSystem=バリアント スペル ポイント システムを使用します{99>[呪文ポイントのプールがあり、術者レベルに応じて増加します\nL01: 04、L02: 06、L03: 14、L04: 17、L05: 27、L06: 32、L07: 38、L08: 44、L09: 57、L10: 64\nL11: 73、L12: 73、L13: 83、L14: 83、L15: 94、L16: 94、L17: 107、L18: 114、L19: 123、L20: 133\nこのプールを使用して呪文を唱えるコストは、L1: 2、L2: 3、L3: 5、L4: 6、L5: 7、L6: 9、L7: 10、L8: 11、L9: 13\nこのシステムでは、短い休憩スロットの回復機能はトリガーされません] +ModUi/&UseAlternateSpellPointsSystem=公式のバリアントスペルポイントルールを使用する +ModUi/&UseAlternateSpellPointsSystemHelp=[呪文ポイントのプールがあり、術者レベルに応じて増加します\nL01: 04、L02: 06、L03: 14、L04: 17、L05: 27、L06: 32、L07: 38、L08: 44、L09: 57、L10: 64\nL11: 73、L12: 73、L13: 83、L14: 83、L15: 94、L16: 94、L17: 107、L18: 114、L19: 123、L20: 133\nこのプールを使用して呪文を唱えるコストは、L1: 2、L2: 3、L3: 5、L4: 6、L5: 7、L6: 9、L7: 10、L8: 11、L9: 13\nこのシステムでは、短い休憩スロットの回復機能はトリガーされません] ModUi/&UseElfFaceModelsOnTieflings=ティーフリングでエルフの顔モデルを使用する ModUi/&UseHeightOneCylinderEffect=黒い触手、絡まり、グリース [square] または スパイク成長 [ラウンド] ModUi/&UseMathFlankingRules=+ 正確な計算を使用して側面攻撃を決定します[遅いマシンではパフォーマンスに影響を与える可能性があります] @@ -327,6 +329,7 @@ ModUi/&UseOfficialFlankingRulesAlsoForRanged=+ 遠距離攻撃も有効にし ModUi/&UseOfficialFlankingRulesAlsoForReach=+ リーチ攻撃も有効にします[正確な計算を無効にする] ModUi/&UseOfficialFlankingRulesButAddAttackModifier=+ アドバンテージの代わりに攻撃ロールに +1 を与える ModUi/&UseOfficialFoodRationsWeight=公式の食料配給量の重量は2ポンドを使用してください -ModUi/&UseOfficialObscurementRules=公式の照明、遮蔽、視覚戦闘ルールを使用する\n[認識できる攻撃者と認識できない防御者はADVを取得し、認識しない攻撃者はADVを取得します。知覚できる防御者はDIS\nを得る ひどく遮られた領域は盲目状態を与え、そのクリーチャーに対する攻撃ロールはADVを持ち、クリーチャーの攻撃ロールはDIS\nを持つ 個人を対象とするすべての遠距離呪文は、攻撃者が視力を持たない場合は唱えることができない、視覚が必要であると明確に述べられていないものを除く] +ModUi/&UseOfficialObscurementRules=公式の照明、遮蔽、視覚戦闘ルールを使用する +ModUi/&UseOfficialObscurementRulesHelp=[それを知覚する攻撃者は ADV を獲得し、それを知覚しない攻撃者は DIS を獲得します。それを知覚できる防御者は DIS を獲得します\n 非常に隠された領域は盲目状態を引き起こし、クリーチャーに対する攻撃ロールには ADV が付与され、クリーチャーの攻撃ロールには DIS が付与されます\n 攻撃者に視力がない場合、個人をターゲットとするすべての遠距離呪文は発動できません。ただし、視力が必要であると明確に述べられていない呪文は除きます] ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons=重火器を使用するときは小種族の公式ルールを使用してください[攻撃には不利] ModUi/&Visuals=ビジュアル: [再起動が必要] diff --git a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt index 5804aad2e8..01509398ff 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Settings-ko.txt @@ -239,7 +239,8 @@ ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ 장점 / ModUi/&OfficialObscurementRulesHeavilyObscuredAsProjectileBlocker=+ 심하게 가려진 영역을 발사체 차단기로 변경 [Cloud Kill, 안개 구름 , 발화구름, 꽃잎 폭풍, 진눈깨비, 악취나는 구름] ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget=+ 투명 생물은 심하게 가려져 표적이 될 수 있으며 생물에 대한 공격 굴림에는 불리한 점이 있고 생물의 공격 굴림에는 이점이 있습니다. ModUi/&OfficialObscurementRulesMagicalDarknessAsProjectileBlocker=+ 마법으로 가려진 영역을 발사체 차단기로 변경 [어둠 주문 효과의 모든 소스] -ModUi/&OfficialObscurementRulesTweakMonsters=+ 필요할 때마다 몬스터와 NPC에 Darkvision, BlindSight 및 TrueSight를 추가합니다.\n [설정 컬렉션 암흑시야를 가져야 하는 괴물, 진정한 시야를 가져야 하는 괴물, 눈이 멀게 해야 하는 괴물] +ModUi/&OfficialObscurementRulesTweakMonsters=+ 필요할 때마다 몬스터와 NPC에 Darkvision, BlindSight 및 TrueSight를 추가합니다. +ModUi/&OfficialObscurementRulesTweakMonstersHelp=[설정 컬렉션 암흑시야를 가져야 하는 괴물, 진정한 시야를 가져야 하는 괴물, 시야를 가져야 하는 괴물] ModUi/&OnlyShowMostPowerfulUpcastConjuredElementalOrFey=+ 소환 목록에서 가장 강력한 생물만 표시 ModUi/&OutlineGridWidthModifier=윤곽선 그리드 너비에 [%]를 곱합니다. ModUi/&OutlineGridWidthSpeed=윤곽선 그리드 애니메이션 속도에 [%]를 곱합니다. @@ -317,7 +318,8 @@ ModUi/&UnlockGlowingEyeColors=빛나는 눈 색깔 추가 ModUi/&UnlockMarkAndTattoosForAllCharacters=모든 캐릭터의 소서러 원산지 표시와 문신을 잠금 해제하세요. ModUi/&UnlockSkinColors=피부색 잠금 해제 ModUi/&Update=업데이트 -ModUi/&UseAlternateSpellPointsSystem=변형 주문 포인트 시스템 사용\n[시전자 레벨에 따라 증가하는 주문 포인트 풀이 있습니다.\nL01: 04, L02: 06 , L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83 , L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\n이 풀을 사용하여 주문을 시전하는 데 드는 비용은 L1: 2, L2: 3, L3: 5, L4: 6입니다. , L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\n이 시스템에서는 짧은 휴식 슬롯 복구 기능이 실행되지 않습니다.] +ModUi/&UseAlternateSpellPointsSystem=공식 변형 주문 포인트 규칙을 사용하세요. +ModUi/&UseAlternateSpellPointsSystemHelp=[시전자 레벨에 따라 증가하는 주문 포인트 풀이 있습니다.\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07 : 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19 : 123, L20: 133\n이 풀을 사용하여 주문을 발동하는 데 드는 비용은 L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9입니다. : 13\n이 시스템에서는 짧은 휴식 슬롯 복구 기능이 실행되지 않습니다.] ModUi/&UseElfFaceModelsOnTieflings=티플링에서 엘프 얼굴 모델을 사용하세요. ModUi/&UseHeightOneCylinderEffect=Black Tentacles, Entangle, Grease [square] 또는 를 시전할 때 높이 1 원통 효과를 사용하세요. 급상승 [round] ModUi/&UseMathFlankingRules=+ 정확한 수학을 사용하여 측면 공격 결정 [느린 시스템에서는 성능에 영향을 미칠 수 있음] @@ -327,6 +329,7 @@ ModUi/&UseOfficialFlankingRulesAlsoForRanged=+ 원거리 공격도 활성화 ModUi/&UseOfficialFlankingRulesAlsoForReach=+ 도달 공격도 활성화 [정확한 수학 비활성화] ModUi/&UseOfficialFlankingRulesButAddAttackModifier=+ 이점 대신 공격 굴림에 +1을 부여합니다. ModUi/&UseOfficialFoodRationsWeight=공식 식량 배급 무게 2파운드를 사용하세요. -ModUi/&UseOfficialObscurementRules=공식 조명, 모호함, 시야 전투 규칙을 사용하세요\n[인식하는 공격자는 인지할 수 없는 방어자는 ADV를 얻고, 그렇지 않은 공격자는 이를 인지할 수 있는 방어자는 DIS\n를 얻습니다. 매우 가려진 영역은 실명 상태를 유발합니다. 생물에 대한 공격 굴림에는 ADV가 있고 생물의 공격 굴림에는 DIS\n가 있습니다. 개인을 대상으로 하는 모든 거리 주문은 공격자가 시력이 없으면 시전할 수 없습니다. , 시력이 필요하다고 명확하게 명시하지 않은 경우는 제외] +ModUi/&UseOfficialObscurementRules=공식 조명, 모호함, 시야 전투 규칙을 사용하세요. +ModUi/&UseOfficialObscurementRulesHelp=[인지할 수 없는 방어자를 감지한 공격자는 ADV를 얻고, 감지할 수 있는 방어자를 감지하지 못한 공격자는 DIS를 얻습니다.\n 심하게 가려진 영역은 실명 상태를 유발합니다. 생물에는 ADV가 있고 생물의 공격 굴림에는 DIS가 있습니다.\n 개인을 대상으로 하는 모든 거리 주문은 공격자가 시력이 없으면 시전할 수 없습니다. 단, 시력이 필요하다고 명확하게 명시하지 않은 주문은 제외합니다.] ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons=무거운 무기를 휘두를 때 공식 소규모 종족 규칙을 사용하세요. [공격에 불이익이 있습니다] ModUi/&Visuals=시각적: [다시 시작 필요] diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt index 92a79c233e..ec9b5e3ed4 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Settings-pt-BR.txt @@ -239,7 +239,8 @@ ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Cancelar va ModUi/&OfficialObscurementRulesHeavilyObscuredAsProjectileBlocker=+ Alterar áreas fortemente obscurecidas para serem bloqueadores de projéteis [Cloud Kill, Fog Cloud , Nuvem Incendiária, Tempestade de Pétalas, Tempestade de Granizo, Nuvem fedorenta] ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget=+ Criaturas invisíveis são fortemente obscurecidas e podem ser alvo, as jogadas de ataque contra a criatura têm desvantagem e as jogadas de ataque da criatura têm vantagem ModUi/&OfficialObscurementRulesMagicalDarknessAsProjectileBlocker=+ Alterar áreas magicamente obscurecidas para serem bloqueadores de projéteis [qualquer fonte do efeito do feitiço Escuridão] -ModUi/&OfficialObscurementRulesTweakMonsters=+ Adicione Darkvision, BlindSight e TrueSight a monstros e NPCs sempre que apropriado\n [coleções de configurações MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] +ModUi/&OfficialObscurementRulesTweakMonsters=+ Adicione Darkvision, BlindSight e TrueSight a monstros e NPCs sempre que apropriado +ModUi/&OfficialObscurementRulesTweakMonstersHelp=[coleções de configurações MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight] ModUi/&OnlyShowMostPowerfulUpcastConjuredElementalOrFey=+ Mostrar apenas as criaturas mais poderosas da lista de conjuração ModUi/&OutlineGridWidthModifier=Multiplique a largura da grade de contorno por [%] ModUi/&OutlineGridWidthSpeed=Multiplique a velocidade de animação da grade de contorno por [%] @@ -317,7 +318,8 @@ ModUi/&UnlockGlowingEyeColors=Adicione cores de olhos brilhantes ModUi/&UnlockMarkAndTattoosForAllCharacters=Desbloqueie marcas de origem e tatuagens do Feiticeiro para todos os personagens ModUi/&UnlockSkinColors=Desbloquear cores de pele ModUi/&Update=Atualização -ModUi/&UseAlternateSpellPointsSystem=Use a variante do sistema Pontos de Feitiço\n[Você tem um conjunto de pontos de feitiço que aumenta com o nível do lançador\nL01: 04, L02: 06 , L03: 14, L04: 17, L05: 27, L06: 32, L07: 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83 , L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nO custo para lançar feitiços usando este conjunto é L1: 2, L2: 3, L3: 5, L4: 6 , L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nOs recursos de recuperação de espaços de descanso curtos não serão acionados neste sistema] +ModUi/&UseAlternateSpellPointsSystem=Use regras oficiais de pontos de feitiço variantes +ModUi/&UseAlternateSpellPointsSystemHelp=[Você tem um conjunto de pontos de feitiço que aumenta com o nível do lançador\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07 : 38, L08: 44, L09: 57, L10: 64\nL11: 73, L12: 73, L13: 83, L14: 83, L15: 94, L16: 94, L17: 107, L18: 114, L19 : 123, L20: 133\nO custo para lançar feitiços usando este conjunto é L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9 : 13\nOs recursos de recuperação de intervalos de descanso curtos não serão acionados neste sistema] ModUi/&UseElfFaceModelsOnTieflings=Use modelos de rosto de Elfo em Tieflings ModUi/&UseHeightOneCylinderEffect=Use um efeito de cilindro de altura 1 ao lançar Black Tentacles, Entangle, Grease [square] ou Pico de crescimento [rodada] ModUi/&UseMathFlankingRules=+ Use matemática precisa para determinar o flanqueamento [pode ter um impacto no desempenho em máquinas lentas] @@ -327,6 +329,7 @@ ModUi/&UseOfficialFlankingRulesAlsoForRanged=+ Ativar também ataques à dist ModUi/&UseOfficialFlankingRulesAlsoForReach=+ Ativar também ataques de alcance [desativar matemática precisa] ModUi/&UseOfficialFlankingRulesButAddAttackModifier=+ Em vez de vantagem, conceda +1 na jogada de ataque ModUi/&UseOfficialFoodRationsWeight=Use ração alimentar oficial com peso de 2 libras -ModUi/&UseOfficialObscurementRules=Use regras oficiais de combate de iluminação, obscurecimento e visão\n[o atacante que percebe, o defensor que não consegue perceber recebe ADV, e o atacante que não percebe perceber o defensor que pode perceber isso recebe DIS\n áreas fortemente obscurecidas infligem condição cega, onde as jogadas de ataque contra a criatura têm ADV, e as jogadas de ataque da criatura têm DIS\n todos os feitiços de distância direcionados a indivíduos não podem ser lançados se o atacante não tiver visão , exceto aqueles que claramente não declaram que a visão é obrigatória] +ModUi/&UseOfficialObscurementRules=Use regras oficiais de combate de iluminação, obscurecimento e visão +ModUi/&UseOfficialObscurementRulesHelp=[o atacante que percebe o defensor que não consegue perceber recebe ADV, e o atacante que não percebe o defensor que consegue perceber recebe DIS\n áreas fortemente obscurecidas infligem condição cega, onde jogadas de ataque contra o a criatura tem ADV e as jogadas de ataque da criatura têm DIS\n todos os feitiços de distância direcionados a indivíduos não podem ser lançados se o atacante não tiver visão, exceto aqueles que claramente não declaram que a visão é necessária] ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons=Use as regras oficiais das raças pequenas ao empunhar armas pesadas [seus ataques têm desvantagem] ModUi/&Visuals=Visuais: [Requer reinicialização] diff --git a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt index 20cc216482..cb9a51f99a 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Settings-ru.txt @@ -239,7 +239,8 @@ ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ Отменить + Позволить сильно заслонённой местности блокировать снаряды [Облако смерти, Туманное облако, Зажигательное облако, Шквал лепестков, Метель, Зловонное облако] ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget=+ Невидимые существа являются сильно заслонёнными и могут быть целью, броски атаки по таким существам совершаются с помехой, а броски атаки существа - с преимуществом ModUi/&OfficialObscurementRulesMagicalDarknessAsProjectileBlocker=+ Позволить магически заслонённой местности блокировать снаряды [любой источник эффекта заклинания Тьма] -ModUi/&OfficialObscurementRulesTweakMonsters=+ Добавить Тёмное зрение, Слепое зрение и Истинное зрение монстрам и NPC, когда это целесообразно\n[списки MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight находятся в настройках] +ModUi/&OfficialObscurementRulesTweakMonsters=+ Добавить Тёмное зрение, Слепое зрение и Истинное зрение монстрам и NPC, когда это целесообразно +ModUi/&OfficialObscurementRulesTweakMonstersHelp=[списки MonstersThatShouldHaveDarkvision, MonstersThatShouldHaveTrueSight, MonstersThatShouldHaveBlindSight находятся в настройках] ModUi/&OnlyShowMostPowerfulUpcastConjuredElementalOrFey=+ Показывать только самых мощных существ в списке призыва ModUi/&OutlineGridWidthModifier=Увеличить толщину контура сетки передвижения на множитель [%] ModUi/&OutlineGridWidthSpeed=Увеличить скорость анимации контура сетки передвижения на множитель [%] @@ -317,7 +318,8 @@ ModUi/&UnlockGlowingEyeColors=Добавить светящиеся цвета ModUi/&UnlockMarkAndTattoosForAllCharacters=Разблокировать родовые отметины и татуировки Чародея для всех персонажей ModUi/&UnlockSkinColors=Разблокировать цвета кожи ModUi/&Update=Обновить -ModUi/&UseAlternateSpellPointsSystem=Используйте вариант системы Очки заклинаний\n[У вас есть запас очков заклинаний, который увеличивается с уровнем заклинателя.\nL01: 04, L02: 06 , Л03: 14, Л04: 17, Л05: 27, Л06: 32, Л07: 38, Л08: 44, Л09: 57, Л10: 64\nЛ11: 73, Л12: 73, Л13: 83, Л14: 83 , L15: 94, L16: 94, L17: 107, L18: 114, L19: 123, L20: 133\nСтоимость произнесения заклинаний с использованием этого пула составляет L1: 2, L2: 3, L3: 5, L4: 6. , L5: 7, L6: 9, L7: 10, L8: 11, L9: 13\nФункции восстановления слотов для короткого отдыха не будут активироваться в этой системе] +ModUi/&UseAlternateSpellPointsSystem=Используйте официальные правила вариантных очков заклинаний. +ModUi/&UseAlternateSpellPointsSystemHelp=[У вас есть запас очков заклинаний, который увеличивается с уровнем заклинателя\nL01: 04, L02: 06, L03: 14, L04: 17, L05: 27, L06: 32, L07 : 38, Л08: 44, Л09: 57, Л10: 64\nЛ11: 73, Л12: 73, Л13: 83, Л14: 83, Л15: 94, Л16: 94, Л17: 107, Л18: 114, Л19 : 123, L20: 133\nСтоимость произнесения заклинаний с использованием этого пула составляет L1: 2, L2: 3, L3: 5, L4: 6, L5: 7, L6: 9, L7: 10, L8: 11, L9. : 13\nФункции восстановления слотов для кратковременного отдыха не будут активироваться в этой системе] ModUi/&UseElfFaceModelsOnTieflings=Использовать Эльфийские лица на Тифлингах ModUi/&UseHeightOneCylinderEffect=Ограничить высоту эффекта одним уровнем при накладывании Чёрных щупалец, Опутывания, Смазки [квадрат] или Шипов [круг] ModUi/&UseMathFlankingRules=+ Использовать точную математику для определения окружения [может повлиять на производительность на медленных компьютерах] @@ -327,6 +329,7 @@ ModUi/&UseOfficialFlankingRulesAlsoForRanged=+ Включить эти пра ModUi/&UseOfficialFlankingRulesAlsoForReach=+ Также включить для атак досягаемости [отключить точную математику] ModUi/&UseOfficialFlankingRulesButAddAttackModifier=+ Вместо преимущества давать +1 к броскам атаки ModUi/&UseOfficialFoodRationsWeight=Использовать официальный вес Рационов (2 фунта) -ModUi/&UseOfficialObscurementRules=Использовать официальные правила освещения, затемнения и видимости в бою\n[преимущество для атакующего, который видит цель, которая не видит его, и помеха для атакующего, который не видит цель, которая видит его\n сильно заслонённая местность накладывает состояние слепоты, при которой броски атаки по существу совершаются с преимуществом, а броски атаки существа совершаются с помехой\n дистанционные заклинания, целями которых являются существа, не могут быть наложены, если атакующий не видит цель, кроме тех, для которых не указано специально, что необходима видимость] +ModUi/&UseOfficialObscurementRules=Использовать официальные правила освещения, затемнения и видимости в бою +ModUi/&UseOfficialObscurementRulesHelp=[преимущество для атакующего, который видит цель, которая не видит его, и помеха для атакующего, который не видит цель, которая видит его\n сильно заслонённая местность накладывает состояние слепоты, при которой броски атаки по существу совершаются с преимуществом, а броски атаки существа совершаются с помехой\n дистанционные заклинания, целями которых являются существа, не могут быть наложены, если атакующий не видит цель, кроме тех, для которых не указано специально, что необходима видимость] ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons=Использовать официальные правила рас маленького размера при использовании тяжёлого оружия [вы совершаете атаки с помехой] ModUi/&Visuals=Визуальные настройки: [Необходим перезапуск] diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt index 5d912ce364..7d219a97fe 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Settings-zh-CN.txt @@ -239,7 +239,8 @@ ModUi/&OfficialObscurementRulesCancelAdvDisPairs=+ 取消对目盲、隐形 ModUi/&OfficialObscurementRulesHeavilyObscuredAsProjectileBlocker=+ 将重度遮蔽区域更改为射弹阻挡器[死云术、云雾术、焚云术、花瓣风暴、雪雨暴、臭云术] ModUi/&OfficialObscurementRulesInvisibleCreaturesCanBeTarget=+ 隐形生物被重度遮蔽,可以成为目标,针对该生物的攻击检定具有劣势,而该生物的攻击检定具有优势 ModUi/&OfficialObscurementRulesMagicalDarknessAsProjectileBlocker=+ 将魔法遮蔽区域更改为射弹阻挡器[黑暗术法术效果的任何来源] -ModUi/&OfficialObscurementRulesTweakMonsters=+ 在适当的时候向怪物和NPC添加黑暗视觉、盲视和真实视觉\n [设置集合MonstersThatShouldHaveDarkvisionMonstersThatShouldHaveTrueSightMonstersThatShouldHaveBlindSight] +ModUi/&OfficialObscurementRulesTweakMonsters=+ 在适当的情况下为怪物和 NPC 添加 Darkvision、BlindSight 和 TrueSight +ModUi/&OfficialObscurementRulesTweakMonstersHelp=[设置的集合MonstersThatShouldHaveDarkvisionMonstersThatShouldHaveTrueSightMonstersThatShouldHaveBlindSight] ModUi/&OnlyShowMostPowerfulUpcastConjuredElementalOrFey=+只显示魔法列表中最强大的生物 ModUi/&OutlineGridWidthModifier=将轮廓网格宽度乘以 [%] ModUi/&OutlineGridWidthSpeed=将轮廓网格动画速度乘以 [%] @@ -317,7 +318,8 @@ ModUi/&UnlockGlowingEyeColors=添加亮色的眼睛 ModUi/&UnlockMarkAndTattoosForAllCharacters=解锁所有角色的术士起源标记和纹身 ModUi/&UnlockSkinColors=解锁肤色 ModUi/&Update=更新 -ModUi/&UseAlternateSpellPointsSystem=使用变体法术点系统{99>[你拥有一个随施法者等级增加的法术点池\nL01:04、L02:06、L03:14、L04:17、L05:27、L06:32、L07:38、L08:44、L09:57、L10:64\nL11:73、L12:73、L13:83、L14:83、L15:94、L16:94、L17:107、L18:114、L19:123、L20:133\n使用此池施放法术所需的成本为 L1:2、L2:3, L3:5、L4:6、L5:7、L6:9、L7:10、L8:11、L9:13\n在此系统下不会触发短暂休息时段恢复功能] +ModUi/&UseAlternateSpellPointsSystem=使用官方变体法术点规则 +ModUi/&UseAlternateSpellPointsSystemHelp=[你拥有一个随施法者等级增加的法术点池\nL01:04,L02:06,L03:14,L04:17,L05:27,L06:32,L07:38,L08:44,L09:57,L10:64\nL11:73,L12:73,L13:83,L14:83,L15:94,L16:94,L17:107,L18:114,L19:123,L20:133\n使用此池施放法术所需的费用为 L1:2,L2:3,L3:5,L4:6,L5:7,L6:9, L7:10,L8:11,L9:13\n在此系统下不会触发短暂休息时段恢复功能] ModUi/&UseElfFaceModelsOnTieflings=在提夫林上使用精灵的面部模型 ModUi/&UseHeightOneCylinderEffect=施放黑色触手、纠缠、油腻[方形]荆棘丛生[圆形]时使用高度为1的立体效果 ModUi/&UseMathFlankingRules=+ 使用精确的数学来确定侧翼 [可能会对慢速机器产生性能影响] @@ -327,6 +329,7 @@ ModUi/&UseOfficialFlankingRulesAlsoForRanged=+ 还可以进行远程攻击+ 还启用触及攻击[禁用精确数学] ModUi/&UseOfficialFlankingRulesButAddAttackModifier=+ 将优势改为 +1 攻击掷骰 ModUi/&UseOfficialFoodRationsWeight=将食物配给的重量减少到 2 磅 -ModUi/&UseOfficialObscurementRules=使用官方的光照、掩蔽和视野战斗规则\n[察觉到防御者的攻击者获得优势,没有察觉到的攻击者获得劣势\n 严重掩蔽的区域造成失明状态,其中针对该生物的攻击骰具有优势,并且该生物的攻击骰具有劣势\n 如果攻击者没有视野,则无法施放针对个人的所有距离法术,除了那些明确没有说明需要视野的] +ModUi/&UseOfficialObscurementRules=使用官方照明、遮蔽和视觉战斗规则 +ModUi/&UseOfficialObscurementRulesHelp=[能感知到防御者但无法感知到攻击者的防御者会获得 ADV,无法感知到攻击者但可以感知到防御者会获得 DIS\n 被严重遮挡的区域会造成致盲状态,对生物的攻击掷骰获得 ADV,而生物的攻击掷骰获得 DIS\n 如果攻击者没有视力,则无法施放针对个人的所有远距离法术,除了那些明确未说明需要视力的法术] ModUi/&UseOfficialSmallRacesDisWithHeavyWeapons=使用重型武器时请使用官方小型体型种族规则[你的攻击处于劣势] ModUi/&Visuals=视觉效果:[需要重启] From aa8eeb55a604adeeb6c948cceda546d9228cc973 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 11:42:17 -0700 Subject: [PATCH 35/91] minor clean up --- SolastaUnfinishedBusiness/ChangelogHistory.txt | 11 +++++++---- .../Subclasses/PathOfTheBeast.cs | 1 - 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index b9b90bda45..f6406f2af9 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -7,6 +7,13 @@ - fixed Ring of Knifes spell missing to-hit modifiers on power - fixed Scatter spell not allowing enemies selection +KNOWN ISSUES: + +- Artillerist Force Ballista tiny cannon doesn't force attack DIS within 5 ft +- Chaos Bolt damage will be of wrong type under multiplayer if twinned and any bolt misses +- Lightning Arrow won't trigger custom behaviors if target dies from damage on a miss +- Guardian Aura won't trigger custom behaviors if self dies on swapped damage taken + 1.5.97.19: all fixes marked with * were introduced with the IsMelee change on v18 @@ -33,10 +40,6 @@ all fixes marked with * were introduced with the IsMelee change on v18 * fixed Wendigo natural lunger increase weapon reach validator * fixed Wyrmkin reactive retribution attack mode validator -KNOWN ISSUES: - -- Artillerist Force Ballista tiny cannon doesn't force attack DIS within 5 ft -- Chaos Bolt damage will be of wrong type under multiplayer if twinned and any bolt misses 1.5.97.18: diff --git a/SolastaUnfinishedBusiness/Subclasses/PathOfTheBeast.cs b/SolastaUnfinishedBusiness/Subclasses/PathOfTheBeast.cs index b3c175b4c2..dcef2f212f 100644 --- a/SolastaUnfinishedBusiness/Subclasses/PathOfTheBeast.cs +++ b/SolastaUnfinishedBusiness/Subclasses/PathOfTheBeast.cs @@ -16,7 +16,6 @@ using SolastaUnfinishedBusiness.Validators; using static FeatureDefinitionAttributeModifier; using static RuleDefinitions; -using static RulesetImplementationDefinitions; using static SolastaUnfinishedBusiness.Api.DatabaseHelper; namespace SolastaUnfinishedBusiness.Subclasses; From a74cedb2e1b1610173279bdba3d773231e6913d6 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 11:56:54 -0700 Subject: [PATCH 36/91] demote older content --- .../Feats/MeleeCombatFeats.cs | 86 ------------------- SolastaUnfinishedBusiness/Feats/OtherFeats.cs | 25 ------ .../Feats/RangedCombatFeats.cs | 74 ---------------- .../Models/CharacterUAContext.cs | 60 ++++++++++++- .../Translations/de/Feats/MeleeCombat-de.txt | 2 - .../Translations/de/Feats/OtherFeats-de.txt | 2 - .../Translations/de/Feats/RangedCombat-de.txt | 2 - .../Translations/en/Feats/MeleeCombat-en.txt | 2 - .../Translations/en/Feats/OtherFeats-en.txt | 2 - .../Translations/en/Feats/RangedCombat-en.txt | 2 - .../Translations/es/Feats/MeleeCombat-es.txt | 2 - .../Translations/es/Feats/OtherFeats-es.txt | 2 - .../Translations/es/Feats/RangedCombat-es.txt | 2 - .../Translations/fr/Feats/MeleeCombat-fr.txt | 2 - .../Translations/fr/Feats/OtherFeats-fr.txt | 2 - .../Translations/fr/Feats/RangedCombat-fr.txt | 2 - .../Translations/it/Feats/MeleeCombat-it.txt | 2 - .../Translations/it/Feats/OtherFeats-it.txt | 2 - .../Translations/it/Feats/RangedCombat-it.txt | 2 - .../Translations/ja/Feats/MeleeCombat-ja.txt | 2 - .../Translations/ja/Feats/OtherFeats-ja.txt | 2 - .../Translations/ja/Feats/RangedCombat-ja.txt | 2 - .../Translations/ko/Feats/MeleeCombat-ko.txt | 2 - .../Translations/ko/Feats/OtherFeats-ko.txt | 2 - .../Translations/ko/Feats/RangedCombat-ko.txt | 2 - .../pt-BR/Feats/MeleeCombat-pt-BR.txt | 2 - .../pt-BR/Feats/OtherFeats-pt-BR.txt | 2 - .../pt-BR/Feats/RangedCombat-pt-BR.txt | 2 - .../Translations/ru/Feats/MeleeCombat-ru.txt | 2 - .../Translations/ru/Feats/OtherFeats-ru.txt | 2 - .../Translations/ru/Feats/RangedCombat-ru.txt | 2 - .../zh-CN/Feats/MeleeCombat-zh-CN.txt | 2 - .../zh-CN/Feats/OtherFeats-zh-CN.txt | 2 - .../zh-CN/Feats/RangedCombat-zh-CN.txt | 2 - 34 files changed, 57 insertions(+), 248 deletions(-) diff --git a/SolastaUnfinishedBusiness/Feats/MeleeCombatFeats.cs b/SolastaUnfinishedBusiness/Feats/MeleeCombatFeats.cs index f9f391e1a8..c52dc7ea66 100644 --- a/SolastaUnfinishedBusiness/Feats/MeleeCombatFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/MeleeCombatFeats.cs @@ -46,9 +46,6 @@ internal static class MeleeCombatFeats internal static void CreateFeats([NotNull] List feats) { - // kept for backward compatibility - _ = BuildHammerThePoint(); - var featAlwaysReady = BuildAlwaysReady(); var featBladeMastery = BuildBladeMastery(); var featCharger = BuildCharger(); @@ -832,89 +829,6 @@ public IEnumerator OnTryAlterOutcomeAttack( #endregion - #region Hammer the Point - - private static FeatDefinition BuildHammerThePoint() - { - const string Name = "FeatHammerThePoint"; - - var conditionHammerThePoint = ConditionDefinitionBuilder - .Create($"Condition{Name}HammerThePoint") - .SetGuiPresentationNoContent(true) - .SetSilent(Silent.WhenAddedOrRemoved) - .SetSpecialDuration(DurationType.Round, 0, TurnOccurenceType.EndOfSourceTurn) - .AllowMultipleInstances() - .AddToDB(); - - var additionalDamageHammerThePoint = FeatureDefinitionAdditionalDamageBuilder - .Create($"AdditionalDamage{Name}HammerThePoint") - .SetGuiPresentationNoContent(true) - .SetAttackModeOnly() - .AddConditionOperation(ConditionOperationDescription.ConditionOperation.Add, conditionHammerThePoint) - .AddToDB(); - - var featHammerThePoint = FeatDefinitionBuilder - .Create(Name) - .SetGuiPresentation(Category.Feat, hidden: true) - .SetFeatures(additionalDamageHammerThePoint) - .AddToDB(); - - additionalDamageHammerThePoint.AddCustomSubFeatures( - new PhysicalAttackInitiatedByMeFeatHammerThePoint(conditionHammerThePoint, featHammerThePoint)); - - return featHammerThePoint; - } - - private sealed class PhysicalAttackInitiatedByMeFeatHammerThePoint( - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - ConditionDefinition conditionHammerThePoint, - // ReSharper disable once SuggestBaseTypeForParameterInConstructor - FeatDefinition featHammerThePoint) - : IPhysicalAttackInitiatedByMe - { - public IEnumerator OnPhysicalAttackInitiatedByMe( - GameLocationBattleManager battleManager, - CharacterAction action, - GameLocationCharacter attacker, - GameLocationCharacter defender, - ActionModifier attackModifier, - RulesetAttackMode attackMode) - { - var rulesetDefender = defender.RulesetActor; - - if (rulesetDefender is not { IsDeadOrDyingOrUnconscious: false }) - { - yield break; - } - - var attackedThisTurnCount = rulesetDefender.AllConditions - .Count(x => x.ConditionDefinition == conditionHammerThePoint); - - if (attackedThisTurnCount == 0) - { - yield break; - } - - var trendInfo = new TrendInfo( - attackedThisTurnCount, FeatureSourceType.Feat, featHammerThePoint.Name, featHammerThePoint); - - attackModifier.AttackRollModifier += attackedThisTurnCount; - attackModifier.AttacktoHitTrends.Add(trendInfo); - - var damage = attackMode?.EffectDescription.FindFirstDamageForm(); - - if (damage == null) - { - yield break; - } - - damage.BonusDamage += attackedThisTurnCount; - damage.DamageBonusTrends.Add(trendInfo); - } - } - - #endregion - #region Old Tactics internal static readonly FeatDefinition FeatOldTacticsStr = FeatDefinitionBuilder diff --git a/SolastaUnfinishedBusiness/Feats/OtherFeats.cs b/SolastaUnfinishedBusiness/Feats/OtherFeats.cs index dd41ae12fa..075afdff13 100644 --- a/SolastaUnfinishedBusiness/Feats/OtherFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/OtherFeats.cs @@ -43,9 +43,6 @@ internal static class OtherFeats internal static void CreateFeats([NotNull] List feats) { - // kept for backward compatibility - _ = BuildAstralArms(); - var featAcrobat = BuildAcrobat(); var featArcaneArcherAdept = BuildArcaneArcherAdept(); var featDungeonDelver = BuildDungeonDelver(); @@ -204,28 +201,6 @@ private static FeatDefinitionWithPrerequisites BuildArcaneArcherAdept() #endregion - #region Astral Arms - - private static FeatDefinition BuildAstralArms() - { - return FeatDefinitionBuilder - .Create("FeatAstralArms") - .SetGuiPresentation(Category.Feat, hidden: true) - .SetFeatures( - AttributeModifierCreed_Of_Maraike) - .AddCustomSubFeatures( - new CanMakeAoOOnReachEntered { AllowRange = false, WeaponValidator = ValidWeapon }, - new IncreaseWeaponReach(1, ValidWeapon)) - .AddToDB(); - - static bool ValidWeapon(RulesetAttackMode attackMode, RulesetItem item, RulesetCharacter character) - { - return ValidatorsWeapon.IsUnarmed(attackMode); - } - } - - #endregion - #region Eldritch Adept private static FeatDefinitionWithPrerequisites BuildEldritchAdept() diff --git a/SolastaUnfinishedBusiness/Feats/RangedCombatFeats.cs b/SolastaUnfinishedBusiness/Feats/RangedCombatFeats.cs index 8042b2a9f4..b665adf06d 100644 --- a/SolastaUnfinishedBusiness/Feats/RangedCombatFeats.cs +++ b/SolastaUnfinishedBusiness/Feats/RangedCombatFeats.cs @@ -12,10 +12,8 @@ using SolastaUnfinishedBusiness.Properties; using SolastaUnfinishedBusiness.Subclasses; using SolastaUnfinishedBusiness.Validators; -using UnityEngine.AddressableAssets; using static RuleDefinitions; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.WeaponTypeDefinitions; -using static SolastaUnfinishedBusiness.Api.DatabaseHelper.FeatureDefinitionMovementAffinitys; namespace SolastaUnfinishedBusiness.Feats; @@ -23,9 +21,6 @@ internal static class RangedCombatFeats { internal static void CreateFeats([NotNull] List feats) { - // kept for backward compatibility - _ = BuildSteadyAim(); - var featBowMastery = BuildBowMastery(); var featCrossbowMastery = BuildCrossbowMastery(); var featDeadEye = BuildDeadEye(); @@ -268,73 +263,4 @@ public void ModifyAttackMode(RulesetCharacter character, [CanBeNull] RulesetAtta featDefinition)); } } - - #region Steady Aim - - private const string FeatSteadyAim = "FeatSteadyAim"; - - internal static readonly FeatureDefinitionPower PowerFeatSteadyAim = FeatureDefinitionPowerBuilder - .Create($"Power{FeatSteadyAim}") - .SetGuiPresentation(Category.Feature, Sprites.GetSprite(FeatSteadyAim, Resources.PowerSteadyAim, 256, 128)) - .SetUsesFixed(ActivationTime.BonusAction) - .SetEffectDescription( - EffectDescriptionBuilder - .Create() - .SetDurationData(DurationType.Round) - .SetTargetingData(Side.Ally, RangeType.Self, 0, TargetType.Self) - .SetEffectForms( - EffectFormBuilder - .Create() - .SetConditionForm( - ConditionDefinitionBuilder - .Create($"Condition{FeatSteadyAim}Advantage") - .SetGuiPresentation(Category.Condition, - DatabaseHelper.ConditionDefinitions.ConditionGuided) - .SetPossessive() - .SetSilent(Silent.WhenAddedOrRemoved) - .SetSpecialInterruptions(ConditionInterruption.Attacks) - .AddFeatures( - FeatureDefinitionCombatAffinityBuilder - .Create($"CombatAffinity{FeatSteadyAim}") - .SetGuiPresentation(FeatSteadyAim, Category.Feat, Gui.NoLocalization) - .SetMyAttackAdvantage(AdvantageType.Advantage) - .AddToDB()) - .AddToDB(), - ConditionForm.ConditionOperation.Add) - .Build(), - EffectFormBuilder - .Create() - .SetConditionForm( - ConditionDefinitionBuilder - .Create($"Condition{FeatSteadyAim}Restrained") - .SetGuiPresentation(Category.Condition) - .SetSilent(Silent.WhenAddedOrRemoved) - .AddFeatures(MovementAffinityConditionRestrained) - .AddToDB(), - ConditionForm.ConditionOperation.Add) - .Build()) - .SetParticleEffectParameters(DatabaseHelper.FeatureDefinitionPowers.PowerFunctionWandFearCommand) - .SetImpactEffectParameters(new AssetReference()) - .Build()) - .AddCustomSubFeatures( - new ValidatorsValidatePowerUse(character => - { - var gameLocationCharacter = GameLocationCharacter.GetFromActor(character); - - return gameLocationCharacter == null || gameLocationCharacter.UsedTacticalMoves == 0; - })) - .AddToDB(); - - private static FeatDefinition BuildSteadyAim() - { - return FeatDefinitionBuilder - .Create(FeatSteadyAim) - .SetGuiPresentation(Category.Feat, hidden: true) - .SetFeatures( - DatabaseHelper.FeatureDefinitionAttributeModifiers.AttributeModifierCreed_Of_Misaye, - PowerFeatSteadyAim) - .AddToDB(); - } - - #endregion } diff --git a/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs b/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs index 94d6334e39..8eeddd50c3 100644 --- a/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs +++ b/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs @@ -10,11 +10,11 @@ using SolastaUnfinishedBusiness.Builders; using SolastaUnfinishedBusiness.Builders.Features; using SolastaUnfinishedBusiness.CustomUI; -using SolastaUnfinishedBusiness.Feats; using SolastaUnfinishedBusiness.Interfaces; using SolastaUnfinishedBusiness.Properties; using SolastaUnfinishedBusiness.Subclasses; using SolastaUnfinishedBusiness.Validators; +using UnityEngine.AddressableAssets; using static RuleDefinitions; using static SolastaUnfinishedBusiness.Api.DatabaseHelper; using static SolastaUnfinishedBusiness.Api.DatabaseHelper.ActionDefinitions; @@ -1159,6 +1159,60 @@ internal static void SwitchRangerNatureShroud() #region Rogue + private const string FeatSteadyAim = "FeatSteadyAim"; + + private static readonly FeatureDefinitionPower PowerFeatSteadyAim = FeatureDefinitionPowerBuilder + .Create($"Power{FeatSteadyAim}") + .SetGuiPresentation(Category.Feature, Sprites.GetSprite(FeatSteadyAim, Resources.PowerSteadyAim, 256, 128)) + .SetUsesFixed(ActivationTime.BonusAction) + .SetEffectDescription( + EffectDescriptionBuilder + .Create() + .SetDurationData(DurationType.Round) + .SetTargetingData(Side.Ally, RangeType.Self, 0, TargetType.Self) + .SetEffectForms( + EffectFormBuilder + .Create() + .SetConditionForm( + ConditionDefinitionBuilder + .Create($"Condition{FeatSteadyAim}Advantage") + .SetGuiPresentation(Category.Condition, + ConditionDefinitions.ConditionGuided) + .SetPossessive() + .SetSilent(Silent.WhenAddedOrRemoved) + .SetSpecialInterruptions(ConditionInterruption.Attacks) + .AddFeatures( + FeatureDefinitionCombatAffinityBuilder + .Create($"CombatAffinity{FeatSteadyAim}") + .SetGuiPresentation(FeatSteadyAim, Category.Feat, Gui.NoLocalization) + .SetMyAttackAdvantage(AdvantageType.Advantage) + .AddToDB()) + .AddToDB(), + ConditionForm.ConditionOperation.Add) + .Build(), + EffectFormBuilder + .Create() + .SetConditionForm( + ConditionDefinitionBuilder + .Create($"Condition{FeatSteadyAim}Restrained") + .SetGuiPresentation(Category.Condition) + .SetSilent(Silent.WhenAddedOrRemoved) + .AddFeatures(MovementAffinityConditionRestrained) + .AddToDB(), + ConditionForm.ConditionOperation.Add) + .Build()) + .SetParticleEffectParameters(PowerFunctionWandFearCommand) + .SetImpactEffectParameters(new AssetReference()) + .Build()) + .AddCustomSubFeatures( + new ValidatorsValidatePowerUse(character => + { + var gameLocationCharacter = GameLocationCharacter.GetFromActor(character); + + return gameLocationCharacter == null || gameLocationCharacter.UsedTacticalMoves == 0; + })) + .AddToDB(); + internal static readonly ConditionDefinition ConditionReduceSneakDice = ConditionDefinitionBuilder .Create("ConditionReduceSneakDice") .SetGuiPresentationNoContent(true) @@ -1700,12 +1754,12 @@ internal static void SwitchRogueSteadyAim() { if (Main.Settings.EnableRogueSteadyAim) { - Rogue.FeatureUnlocks.TryAdd(new FeatureUnlockByLevel(RangedCombatFeats.PowerFeatSteadyAim, 3)); + Rogue.FeatureUnlocks.TryAdd(new FeatureUnlockByLevel(PowerFeatSteadyAim, 3)); } else { Rogue.FeatureUnlocks.RemoveAll(x => - x.level == 3 && x.FeatureDefinition == RangedCombatFeats.PowerFeatSteadyAim); + x.level == 3 && x.FeatureDefinition == PowerFeatSteadyAim); } if (Main.Settings.EnableSortingFutureFeatures) diff --git a/SolastaUnfinishedBusiness/Translations/de/Feats/MeleeCombat-de.txt b/SolastaUnfinishedBusiness/Translations/de/Feats/MeleeCombat-de.txt index 5c6eef17bb..229a8722ef 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Feats/MeleeCombat-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Feats/MeleeCombat-de.txt @@ -34,8 +34,6 @@ Feat/&FeatFencerDescription=Wenn Sie in Ihrem Zug die Angriffsaktion ausführen, Feat/&FeatFencerTitle=Fechter Feat/&FeatGreatWeaponDefenseDescription=Du kämpfst hart mit großen Waffen und erhältst dadurch folgende Vorteile:\n• Wenn du die Trefferpunkte einer Kreatur auf 0 bringst oder mit einer Nahkampfwaffe einen kritischen Treffer landest, erhöht sich deine Bewegungsgeschwindigkeit bis zum Ende deines Zuges um 15 Fuß.\n• Wenn du die Angriffsaktion ausführst, während du eine schwere Nahkampfwaffe oder eine vielseitige Waffe in beiden Händen führst, erhältst du bis zum Beginn deines nächsten Zuges +2AC. Du verlierst diesen Vorteil, wenn du eine andere Waffe oder einen Schild ausrüstest. Feat/&FeatGreatWeaponDefenseTitle=Kampfeseifer -Feat/&FeatHammerThePointDescription=Sie wissen, wie Sie sich auf den gleichen Punkt fokussieren und konzentrieren können. Nachdem du einen Angriffswurf gegen ein Ziel durchgeführt hast, erhältst du bis zum Ende deines Zuges +1 auf Angriffs- und Schadenswürfe gegen dieses Ziel [Stapel]. -Feat/&FeatHammerThePointTitle=Hämmern Sie den Punkt Feat/&FeatLongswordFinesseDescription=Sie stammen von einem Meister des Langschwerts ab, und ein Teil dieser Meisterschaft ist auf Sie übergegangen. Sie erhalten die folgenden Vorteile:\n• Erhöhen Sie Ihre Geschicklichkeit um 1 auf maximal 20.\n• Während Sie ein Langschwert tragen, erhalten Sie einen Bonus von +1 auf die Rüstungsklasse.\n• Langschwert hat die Finesse-Eigenschaft, wenn Sie sie einsetzen. Feat/&FeatLongswordFinesseTitle=Langschwert-Finesse Feat/&FeatOldTacticsDexDescription=Erhöhen Sie Ihre Geschicklichkeit um 1. Einmal pro Runde können Sie einen Gelegenheitsangriff gegen das Ziel durchführen, wenn ein liegender Feind in Reichweite Ihrer Nahkampfwaffe aufsteht. diff --git a/SolastaUnfinishedBusiness/Translations/de/Feats/OtherFeats-de.txt b/SolastaUnfinishedBusiness/Translations/de/Feats/OtherFeats-de.txt index 330b5be179..d7c7f3edf9 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Feats/OtherFeats-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Feats/OtherFeats-de.txt @@ -8,8 +8,6 @@ Feat/&FeatAlertDescription=Immer auf der Suche nach Gefahren, erhältst du die f Feat/&FeatAlertTitle=Alarm Feat/&FeatArcaneArcherAdeptDescription=Du verfügst über arkane Magie und eine Bogenausbildung, die es dir ermöglicht, spezielle Kampfmanöver durchzuführen. Feat/&FeatArcaneArcherAdeptTitle=Arkaner Bogenschützen-Adept -Feat/&FeatAstralArmsDescription=Erhöhe deine Weisheit um 1 auf maximal 20.\nWenn du in deinem Zug einen unbewaffneten Schlag ausführst, beträgt deine Reichweite dafür 10 Fuß. Andere Kreaturen provozieren einen Gelegenheitsangriff von dir, wenn sie in die Reichweite gelangen, die du mit unbewaffnetem Angriff hast . -Feat/&FeatAstralArmsTitle=Astralreichweite Feat/&FeatAthleteDexDescription=Sie haben ein umfangreiches körperliches Training absolviert, um die folgenden Vorteile zu erlangen:\n• Steigern Sie Ihre Geschicklichkeit um 1 bis auf maximal 20.\n• Wenn Sie liegen, kostet Sie das Aufstehen keine Bewegung.\n• Klettern kostet Sie keine zusätzliche Bewegung.\n• Sie erwerben Kenntnisse im Bereich Athletik oder Fachkenntnisse, wenn Sie bereits über Kenntnisse darin verfügen. Feat/&FeatAthleteDexTitle=Athlet [Dex] Feat/&FeatAthleteStrDescription=Sie haben ein umfangreiches körperliches Training absolviert, um die folgenden Vorteile zu erzielen:\n• Erhöhen Sie Ihre Kraft um 1 auf maximal 20.\n• Wenn Sie in Bauchlage sind, kostet Sie das Aufstehen keine Bewegung.\n• Klettern kostet Sie keine zusätzliche Bewegung.\n• Sie erwerben Kenntnisse in Leichtathletik oder Fachwissen, wenn Sie bereits über Kenntnisse verfügen. diff --git a/SolastaUnfinishedBusiness/Translations/de/Feats/RangedCombat-de.txt b/SolastaUnfinishedBusiness/Translations/de/Feats/RangedCombat-de.txt index 1c9e1b55e8..83bc49a1e9 100644 --- a/SolastaUnfinishedBusiness/Translations/de/Feats/RangedCombat-de.txt +++ b/SolastaUnfinishedBusiness/Translations/de/Feats/RangedCombat-de.txt @@ -10,8 +10,6 @@ Feat/&FeatDeadeyeDescription=Sie haben gelernt, Genauigkeit einzutauschen, um t Feat/&FeatDeadeyeTitle=Scharfschütze Feat/&FeatRangedExpertDescription=Ihr Expertentraining mit Fernkampfwaffen gewährt Ihnen folgende Vorteile:\n• Angriffe auf Nahkampfreichweite verursachen keinen Nachteil.\n• Wenn Sie in Ihrem Zug die Angriffsaktion ausführen, können Sie einen zusätzlichen einhändigen Fernkampfangriff ausführen Ihr Attributmodifikator für Schaden. Feat/&FeatRangedExpertTitle=Armbrustexperte -Feat/&FeatSteadyAimDescription=Erhöhen Sie Ihre Geschicklichkeit um 1 auf maximal 20. Als Bonusaktion verschaffen Sie sich bei Ihrem nächsten Angriffswurf in der aktuellen Runde einen Vorteil. Du kannst diese Bonusaktion nur nutzen, wenn du dich in diesem Zug nicht bewegt hast, und nachdem du die Bonusaktion genutzt hast, ist deine Geschwindigkeit bis zum Ende des aktuellen Zuges 0. -Feat/&FeatSteadyAimTitle=Zielsicher Feature/&PowerFeatSteadyAimDescription=Als Bonusaktion verschaffen Sie sich einen Vorteil bei Ihrem nächsten Angriffswurf in der aktuellen Runde. Du kannst diese Bonusaktion nur nutzen, wenn du dich in diesem Zug nicht bewegt hast, und nachdem du die Bonusaktion genutzt hast, ist deine Geschwindigkeit bis zum Ende des aktuellen Zuges 0. Feature/&PowerFeatSteadyAimTitle=Zielsicher Tooltip/&DeadeyeConcentration=Deaktivieren Sie Sharpshooter diff --git a/SolastaUnfinishedBusiness/Translations/en/Feats/MeleeCombat-en.txt b/SolastaUnfinishedBusiness/Translations/en/Feats/MeleeCombat-en.txt index f6647e57a4..ccb8ff3dba 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Feats/MeleeCombat-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Feats/MeleeCombat-en.txt @@ -34,8 +34,6 @@ Feat/&FeatFencerDescription=If you take the Attack action on your turn while hol Feat/&FeatFencerTitle=Fencer Feat/&FeatGreatWeaponDefenseDescription=You fight arduously with large weapons, gaining the following benefits:\n• When you reduce a creature to 0 hit points or deliver a critical strike with a melee weapon, your movement speed increases by 15ft until the end of your turn.\n• When you take the Attack action while wielding a heavy melee or versatile weapon in two hands, you gain +2AC until the start of your next turn. You lose this benefit if you equip a different weapon or a shield. Feat/&FeatGreatWeaponDefenseTitle=Battle Fervor -Feat/&FeatHammerThePointDescription=You know how to focus and concentrate on the same spot. After you make an attack roll against a target, get a +1 to attack and damage rolls against this target until the end of you turn [stacks]. -Feat/&FeatHammerThePointTitle=Hammer the Point Feat/&FeatLongswordFinesseDescription=You are descended from a master of the longsword, and some of that mastery has passed on to you. You gain the following benefits:\n• Increase your Dexterity by 1, to a maximum of 20.\n• While you are holding a longsword, you gain a +1 bonus to armor class.\n• Longsword has the finesse property when you wield it. Feat/&FeatLongswordFinesseTitle=Longsword Finesse Feat/&FeatOldTacticsDexDescription=Increase your Dexterity by 1. Once per round, when a prone enemy within range of your melee weapon stands up you may make an attack of opportunity against the target. diff --git a/SolastaUnfinishedBusiness/Translations/en/Feats/OtherFeats-en.txt b/SolastaUnfinishedBusiness/Translations/en/Feats/OtherFeats-en.txt index 31d6882d7e..1ca55c3521 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Feats/OtherFeats-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Feats/OtherFeats-en.txt @@ -8,8 +8,6 @@ Feat/&FeatAlertDescription=Always on the lookout for danger, you gain the follow Feat/&FeatAlertTitle=Alert Feat/&FeatArcaneArcherAdeptDescription=You have arcane magic and bow training that allows you to perform special combat maneuvers. Feat/&FeatArcaneArcherAdeptTitle=Arcane Archer Adept -Feat/&FeatAstralArmsDescription=Increase your Wisdom by 1, to a maximum of 20.\nWhen you make an unarmed strike on your turn, your reach for it is 10 ft. Other creatures provoke an opportunity attack from you when they enter the reach you have with unarmed. -Feat/&FeatAstralArmsTitle=Astral Reach Feat/&FeatAthleteDexDescription=You have undergone extensive physical training to gain the following benefits:\n• Increase your Dexterity by 1, to a maximum of 20.\n• When you are prone, standing up doesn't cost you movement.\n• Climbing doesn't cost you extra movement.\n• You gain proficiency with Athletics skill or expertise if you are already proficient. Feat/&FeatAthleteDexTitle=Athlete [Dex] Feat/&FeatAthleteStrDescription=You have undergone extensive physical training to gain the following benefits:\n• Increase your Strength by 1, to a maximum of 20.\n• When you are prone, standing up doesn't cost you movement.\n• Climbing doesn't cost you extra movement.\n• You gain proficiency with Athletics skill or expertise if you are already proficient. diff --git a/SolastaUnfinishedBusiness/Translations/en/Feats/RangedCombat-en.txt b/SolastaUnfinishedBusiness/Translations/en/Feats/RangedCombat-en.txt index 48e9260c19..f9ce1f712b 100644 --- a/SolastaUnfinishedBusiness/Translations/en/Feats/RangedCombat-en.txt +++ b/SolastaUnfinishedBusiness/Translations/en/Feats/RangedCombat-en.txt @@ -10,8 +10,6 @@ Feat/&FeatDeadeyeDescription=You have learned to trade accuracy to land deadlier Feat/&FeatDeadeyeTitle=Sharpshooter Feat/&FeatRangedExpertDescription=Your expert training with ranged weapons grants you these benefits:\n• Attacks at melee range don't impose disadvantage.\n• If you take the attack action on your turn, you can make one one-handed ranged bonus attack adding your attribute modifier to damage. Feat/&FeatRangedExpertTitle=Crossbow Expert -Feat/&FeatSteadyAimDescription=Increase your Dexterity by 1, to a maximum of 20. As a bonus action, you give yourself advantage on your next attack roll on the current turn. You can use this bonus action only if you haven't moved during this turn, and after you use the bonus action, your speed is 0 until the end of the current turn. -Feat/&FeatSteadyAimTitle=Steady Aim Feature/&PowerFeatSteadyAimDescription=As a bonus action, you give yourself advantage on your next attack roll on the current turn. You can use this bonus action only if you haven't moved during this turn, and after you use the bonus action, your speed is 0 until the end of the current turn. Feature/&PowerFeatSteadyAimTitle=Steady Aim Tooltip/&DeadeyeConcentration=Disable Sharpshooter diff --git a/SolastaUnfinishedBusiness/Translations/es/Feats/MeleeCombat-es.txt b/SolastaUnfinishedBusiness/Translations/es/Feats/MeleeCombat-es.txt index 4918661502..f9f694423c 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Feats/MeleeCombat-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Feats/MeleeCombat-es.txt @@ -34,8 +34,6 @@ Feat/&FeatFencerDescription=Si realizas la acción de Ataque en tu turno mientra Feat/&FeatFencerTitle=Esgrimidor Feat/&FeatGreatWeaponDefenseDescription=Luchas arduamente con armas grandes, obteniendo los siguientes beneficios:\n• Cuando reduces a una criatura a 0 puntos de golpe o asestas un golpe crítico con un arma cuerpo a cuerpo, tu velocidad de movimiento aumenta en 15 pies hasta el final de tu turno.\n• Cuando realizas la acción de Ataque mientras empuñas un arma cuerpo a cuerpo pesada o un arma versátil en dos manos, obtienes +2 CA hasta el comienzo de tu siguiente turno. Pierdes este beneficio si equipas un arma diferente o un escudo. Feat/&FeatGreatWeaponDefenseTitle=Fervor de batalla -Feat/&FeatHammerThePointDescription=Sabes cómo enfocarte y concentrarte en el mismo lugar. Después de realizar una tirada de ataque contra un objetivo, obtienes un +1 a las tiradas de ataque y daño contra este objetivo hasta el final de tu turno [acumulaciones]. -Feat/&FeatHammerThePointTitle=Martilla la punta Feat/&FeatLongswordFinesseDescription=Eres descendiente de un maestro de la espada larga y parte de ese dominio te ha pasado a ti. Obtienes los siguientes beneficios:\n• Aumenta tu destreza en 1, hasta un máximo de 20.\n• Mientras sostienes una espada larga, obtienes una bonificación de +1 a la clase de armadura.\n• La espada larga tiene la Propiedad de delicadeza cuando la empuñas. Feat/&FeatLongswordFinesseTitle=Delicadeza de espada larga Feat/&FeatOldTacticsDexDescription=Aumenta tu Destreza en 1. Una vez por ronda, cuando un enemigo tumbado dentro del alcance de tu arma cuerpo a cuerpo se levanta, puedes realizar un ataque de oportunidad contra el objetivo. diff --git a/SolastaUnfinishedBusiness/Translations/es/Feats/OtherFeats-es.txt b/SolastaUnfinishedBusiness/Translations/es/Feats/OtherFeats-es.txt index 4b1d74fd5d..b6e48176c4 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Feats/OtherFeats-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Feats/OtherFeats-es.txt @@ -8,8 +8,6 @@ Feat/&FeatAlertDescription=Siempre atento al peligro, obtienes los siguientes be Feat/&FeatAlertTitle=Alerta Feat/&FeatArcaneArcherAdeptDescription=Tienes magia arcana y entrenamiento con arco que te permite realizar maniobras de combate especiales. Feat/&FeatArcaneArcherAdeptTitle=Adepto Arquero Arcano -Feat/&FeatAstralArmsDescription=Aumenta tu Sabiduría en 1, hasta un máximo de 20.\nCuando realizas un ataque desarmado en tu turno, tu alcance es de 10 pies. Otras criaturas provocan un ataque de oportunidad de tu parte cuando entran en el alcance que tienes con armas desarmadas. . -Feat/&FeatAstralArmsTitle=Alcance Astral Feat/&FeatAthleteDexDescription=Has realizado un entrenamiento físico exhaustivo para obtener los siguientes beneficios:\n• Aumenta tu Destreza en 1, hasta un máximo de 20.\n• Cuando estás boca abajo, ponerte de pie no te cuesta movimiento.\n• Escalar no te cuesta movimiento adicional.\n• Obtienes competencia con la habilidad o experiencia de Atletismo si ya eres competente. Feat/&FeatAthleteDexTitle=Atleta [Dex] Feat/&FeatAthleteStrDescription=Has realizado un entrenamiento físico exhaustivo para obtener los siguientes beneficios:\n• Aumenta tu fuerza en 1, hasta un máximo de 20.\n• Cuando estás boca abajo, ponerte de pie no te cuesta movimiento.\n• Escalar no te cuesta movimiento adicional.\n• Obtienes competencia con la habilidad o experiencia de Atletismo si ya eres competente. diff --git a/SolastaUnfinishedBusiness/Translations/es/Feats/RangedCombat-es.txt b/SolastaUnfinishedBusiness/Translations/es/Feats/RangedCombat-es.txt index f19333f306..503ff7c5d0 100644 --- a/SolastaUnfinishedBusiness/Translations/es/Feats/RangedCombat-es.txt +++ b/SolastaUnfinishedBusiness/Translations/es/Feats/RangedCombat-es.txt @@ -10,8 +10,6 @@ Feat/&FeatDeadeyeDescription=Has aprendido a cambiar la precisión para acertar Feat/&FeatDeadeyeTitle=Tirador de primera Feat/&FeatRangedExpertDescription=Tu entrenamiento experto con armas a distancia te otorga estos beneficios:\n• Los ataques cuerpo a cuerpo no imponen desventaja.\n• Si realizas la acción de ataque en tu turno, puedes realizar un ataque adicional a distancia con una mano agregando tu modificador de atributo para dañar. Feat/&FeatRangedExpertTitle=Experto en ballesta -Feat/&FeatSteadyAimDescription=Aumenta tu Destreza en 1, hasta un máximo de 20. Como acción adicional, te das ventaja en tu próxima tirada de ataque del turno actual. Puedes usar esta acción adicional solo si no te has movido durante este turno, y después de usar la acción adicional, tu velocidad es 0 hasta el final del turno actual. -Feat/&FeatSteadyAimTitle=Buena puntería Feature/&PowerFeatSteadyAimDescription=Como acción adicional, te das ventaja en tu próxima tirada de ataque en el turno actual. Puedes usar esta acción adicional solo si no te has movido durante este turno, y después de usar la acción adicional, tu velocidad es 0 hasta el final del turno actual. Feature/&PowerFeatSteadyAimTitle=Buena puntería Tooltip/&DeadeyeConcentration=Desactivar francotirador diff --git a/SolastaUnfinishedBusiness/Translations/fr/Feats/MeleeCombat-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Feats/MeleeCombat-fr.txt index 3a98bb8f2b..39acc00e33 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Feats/MeleeCombat-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Feats/MeleeCombat-fr.txt @@ -34,8 +34,6 @@ Feat/&FeatFencerDescription=Si vous effectuez l'action Attaque à votre tour tou Feat/&FeatFencerTitle=Escrimeur Feat/&FeatGreatWeaponDefenseDescription=Vous combattez durement avec de grosses armes et bénéficiez des avantages suivants : \n• Lorsque vous réduisez une créature à 0 point de vie ou effectuez un coup critique avec une arme de mêlée, votre vitesse de déplacement augmente de 15 pieds jusqu'à la fin de votre tour.{99 }• Lorsque vous effectuez l'action Attaque tout en maniant une arme lourde de mêlée ou polyvalente à deux mains, vous gagnez +2AC jusqu'au début de votre prochain tour. Vous perdez cet avantage si vous équipez une arme ou un bouclier différent. Feat/&FeatGreatWeaponDefenseTitle=Ferveur de bataille -Feat/&FeatHammerThePointDescription=Vous savez vous concentrer et vous concentrer au même endroit. Après avoir effectué un jet d'attaque contre une cible, obtenez un +1 aux jets d'attaque et de dégâts contre cette cible jusqu'à la fin de votre tour [piles]. -Feat/&FeatHammerThePointTitle=Marteler le point Feat/&FeatLongswordFinesseDescription=Vous descendez d'un maître de l'épée longue, et une partie de cette maîtrise vous a été transmise. Vous bénéficiez des avantages suivants :\n• Augmentez votre Dextérité de 1, jusqu'à un maximum de 20.\n• Pendant que vous tenez une épée longue, vous bénéficiez d'un bonus de +1 à la classe d'armure.\n• L'épée longue a le propriété de finesse lorsque vous l'utilisez. Feat/&FeatLongswordFinesseTitle=Finesse de l'épée longue Feat/&FeatOldTacticsDexDescription=Augmentez votre Dextérité de 1. Une fois par round, lorsqu'un ennemi à terre à portée de votre arme de mêlée se relève, vous pouvez effectuer une attaque d'opportunité contre la cible. diff --git a/SolastaUnfinishedBusiness/Translations/fr/Feats/OtherFeats-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Feats/OtherFeats-fr.txt index 8cbaea8f1b..704e4e9b60 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Feats/OtherFeats-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Feats/OtherFeats-fr.txt @@ -8,8 +8,6 @@ Feat/&FeatAlertDescription=Toujours à l'affût du danger, vous bénéficiez des Feat/&FeatAlertTitle=Alerte Feat/&FeatArcaneArcherAdeptDescription=Vous disposez d'un entraînement à la magie arcanique et à l'arc qui vous permet d'effectuer des manœuvres de combat spéciales. Feat/&FeatArcaneArcherAdeptTitle=Adepte archer arcanique -Feat/&FeatAstralArmsDescription=Augmentez votre Sagesse de 1, jusqu'à un maximum de 20.\nLorsque vous effectuez une frappe à mains nues pendant votre tour, votre portée est de 10 pieds. D'autres créatures provoquent une attaque d'opportunité de votre part lorsqu'elles entrent dans la portée que vous avez avec des mains non armées. . -Feat/&FeatAstralArmsTitle=Portée astrale Feat/&FeatAthleteDexDescription=Vous avez suivi un entraînement physique approfondi pour bénéficier des avantages suivants :\n• Augmentez votre dextérité de 1, jusqu'à un maximum de 20.\n• Lorsque vous êtes couché, vous lever ne vous coûte pas de mouvement.\n• L'escalade ne vous coûte pas de mouvement supplémentaire.\n• Vous maîtrisez les compétences ou l'expertise en athlétisme si vous les maîtrisez déjà. Feat/&FeatAthleteDexTitle=Athlète [Dex] Feat/&FeatAthleteStrDescription=Vous avez suivi un entraînement physique approfondi pour bénéficier des avantages suivants :\n• Augmentez votre force de 1, jusqu'à un maximum de 20.\n• Lorsque vous êtes couché, vous lever ne vous coûte pas de mouvement.\n• L'escalade ne vous coûte pas de mouvement supplémentaire.\n• Vous maîtrisez les compétences ou l'expertise en athlétisme si vous les maîtrisez déjà. diff --git a/SolastaUnfinishedBusiness/Translations/fr/Feats/RangedCombat-fr.txt b/SolastaUnfinishedBusiness/Translations/fr/Feats/RangedCombat-fr.txt index 9c61f43092..cc10f45456 100644 --- a/SolastaUnfinishedBusiness/Translations/fr/Feats/RangedCombat-fr.txt +++ b/SolastaUnfinishedBusiness/Translations/fr/Feats/RangedCombat-fr.txt @@ -10,8 +10,6 @@ Feat/&FeatDeadeyeDescription=Vous avez appris à troquer la précision pour tire Feat/&FeatDeadeyeTitle=Tireur d'élite Feat/&FeatRangedExpertDescription=Votre entraînement expert avec les armes à distance vous accorde les avantages suivants :\n• Les attaques au corps à corps n'imposent aucun désavantage.\n• Si vous effectuez l'action d'attaque à votre tour, vous pouvez effectuer une attaque bonus à distance à une main en ajoutant votre modificateur d'attribut aux dégâts. Feat/&FeatRangedExpertTitle=Expert en arbalète -Feat/&FeatSteadyAimDescription=Augmentez votre Dextérité de 1, jusqu'à un maximum de 20. Par une action bonus, vous vous donnez un avantage lors de votre prochain jet d'attaque du tour en cours. Vous ne pouvez utiliser cette action bonus que si vous n'avez pas bougé pendant ce tour, et après avoir utilisé l'action bonus, votre vitesse est de 0 jusqu'à la fin du tour en cours. -Feat/&FeatSteadyAimTitle=Objectif constant Feature/&PowerFeatSteadyAimDescription=Par une action bonus, vous vous donnez un avantage lors de votre prochain jet d'attaque du tour en cours. Vous ne pouvez utiliser cette action bonus que si vous n'avez pas bougé pendant ce tour, et après avoir utilisé l'action bonus, votre vitesse est de 0 jusqu'à la fin du tour en cours. Feature/&PowerFeatSteadyAimTitle=Objectif constant Tooltip/&DeadeyeConcentration=Désactiver le tireur d'élite diff --git a/SolastaUnfinishedBusiness/Translations/it/Feats/MeleeCombat-it.txt b/SolastaUnfinishedBusiness/Translations/it/Feats/MeleeCombat-it.txt index b7c3d95d48..c4af78b834 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Feats/MeleeCombat-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Feats/MeleeCombat-it.txt @@ -34,8 +34,6 @@ Feat/&FeatFencerDescription=Se effettui l'azione Attacco nel tuo turno mentre im Feat/&FeatFencerTitle=Schermidore Feat/&FeatGreatWeaponDefenseDescription=Combatti strenuamente con armi di grandi dimensioni, ottenendo i seguenti vantaggi:\n• Quando riduci una creatura a 0 punti ferita o sferri un colpo critico con un'arma da mischia, la tua velocità di movimento aumenta di 15 piedi fino alla fine del tuo turno.{99 }• Quando effettui l'azione Attacco mentre impugni un'arma pesante da mischia o versatile con due mani, guadagni +2CA fino all'inizio del tuo turno successivo. Perdi questo beneficio se equipaggi un'arma o uno scudo diversi. Feat/&FeatGreatWeaponDefenseTitle=Fervore di battaglia -Feat/&FeatHammerThePointDescription=Sai come focalizzarti e concentrarti sullo stesso punto. Dopo aver effettuato un tiro per colpire contro un bersaglio, ottieni +1 ai tiri per colpire e per i danni contro questo bersaglio fino alla fine del tuo turno [stack]. -Feat/&FeatHammerThePointTitle=Martella il punto Feat/&FeatLongswordFinesseDescription=Tu discendi da un maestro della spada lunga e parte di quella maestria ti è stata trasmessa. Ottieni i seguenti vantaggi:\n• Aumenta la tua Destrezza di 1, fino a un massimo di 20.\n• Mentre impugni una spada lunga, ottieni un bonus di +1 alla classe armatura.\n• La spada lunga ha il proprietà di finezza quando lo maneggi. Feat/&FeatLongswordFinesseTitle=Finezza della spada lunga Feat/&FeatOldTacticsDexDescription=Aumenta la tua Destrezza di 1. Una volta per round, quando un nemico disteso nel raggio della tua arma da mischia si alza, puoi effettuare un attacco di opportunità contro il bersaglio. diff --git a/SolastaUnfinishedBusiness/Translations/it/Feats/OtherFeats-it.txt b/SolastaUnfinishedBusiness/Translations/it/Feats/OtherFeats-it.txt index 7c71e21ac0..14fedbfff1 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Feats/OtherFeats-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Feats/OtherFeats-it.txt @@ -8,8 +8,6 @@ Feat/&FeatAlertDescription=Sempre in allerta per il pericolo, ottieni i seguenti Feat/&FeatAlertTitle=Mettere in guardia Feat/&FeatArcaneArcherAdeptDescription=Possiedi la magia arcana e l'addestramento con l'arco che ti consentono di eseguire speciali manovre di combattimento. Feat/&FeatArcaneArcherAdeptTitle=Adepto dell'arciere arcano -Feat/&FeatAstralArmsDescription=Aumenta la tua Saggezza di 1, fino a un massimo di 20.\nQuando effettui un colpo senz'armi nel tuo turno, la tua portata è di 3 metri. Altre creature provocano un attacco di opportunità da parte tua quando entrano nella portata che hai con disarmato . -Feat/&FeatAstralArmsTitle=Portata Astrale Feat/&FeatAthleteDexDescription=Hai seguito un allenamento fisico approfondito per ottenere i seguenti vantaggi:\n• Aumenta la tua Destrezza di 1, fino a un massimo di 20.\n• Quando sei disteso, alzarti non ti costa movimento.\n• Arrampicare non ti costa movimento extra.\n• Ottieni competenza con abilità o esperienza in Atletica leggera se sei già competente. Feat/&FeatAthleteDexTitle=Atleta [Dex] Feat/&FeatAthleteStrDescription=Hai seguito un allenamento fisico approfondito per ottenere i seguenti vantaggi:\n• Aumenta la tua Forza di 1, fino a un massimo di 20.\n• Quando sei disteso, alzarti non ti costa movimento.\n• Arrampicare non ti costa movimento extra.\n• Ottieni competenza con abilità o esperienza in Atletica leggera se sei già competente. diff --git a/SolastaUnfinishedBusiness/Translations/it/Feats/RangedCombat-it.txt b/SolastaUnfinishedBusiness/Translations/it/Feats/RangedCombat-it.txt index 14ffdae236..50cde252e9 100644 --- a/SolastaUnfinishedBusiness/Translations/it/Feats/RangedCombat-it.txt +++ b/SolastaUnfinishedBusiness/Translations/it/Feats/RangedCombat-it.txt @@ -10,8 +10,6 @@ Feat/&FeatDeadeyeDescription=Hai imparato a barattare la precisione con colpi pi Feat/&FeatDeadeyeTitle=Tiratore scelto Feat/&FeatRangedExpertDescription=Il tuo addestramento da esperto con le armi a distanza ti garantisce questi vantaggi:\n• Gli attacchi a distanza corpo a corpo non impongono svantaggi.\n• Se effettui l'azione di attacco nel tuo turno, puoi effettuare un attacco bonus a distanza con una mano aggiungendo il tuo modificatore di attributo al danno. Feat/&FeatRangedExpertTitle=Esperto di balestra -Feat/&FeatSteadyAimDescription=Aumenta la tua Destrezza di 1, fino a un massimo di 20. Come azione bonus, ti concedi vantaggio al tuo prossimo tiro per colpire nel turno corrente. Puoi utilizzare questa azione bonus solo se non ti sei mosso durante questo turno e, dopo aver utilizzato l'azione bonus, la tua velocità sarà pari a 0 fino alla fine del turno corrente. -Feat/&FeatSteadyAimTitle=Mira stabile Feature/&PowerFeatSteadyAimDescription=Come azione bonus, ti concedi un vantaggio sul tuo prossimo tiro per colpire nel turno corrente. Puoi utilizzare questa azione bonus solo se non ti sei mosso durante questo turno e, dopo aver utilizzato l'azione bonus, la tua velocità sarà pari a 0 fino alla fine del turno corrente. Feature/&PowerFeatSteadyAimTitle=Mira stabile Tooltip/&DeadeyeConcentration=Disabilita il tiratore scelto diff --git a/SolastaUnfinishedBusiness/Translations/ja/Feats/MeleeCombat-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Feats/MeleeCombat-ja.txt index 72d6df21ed..10e8ed36d2 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Feats/MeleeCombat-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Feats/MeleeCombat-ja.txt @@ -34,8 +34,6 @@ Feat/&FeatFencerDescription=近接片手武器または汎用武器を保持し Feat/&FeatFencerTitle=剣士 Feat/&FeatGreatWeaponDefenseDescription=あなたは大型武器で懸命に戦い、以下の利益を得ます:\n• クリーチャーのヒットポイントを 0 にするか、近接武器でクリティカル ストライクを与えると、ターン終了時まで移動速度が 15 フィート増加します。\n• 両手に重い近接武器または多用途武器を装備して攻撃アクションを行うと、次のターン開始時まで +2AC を得ます。別の武器や盾を装備すると、この利益は失われます。 Feat/&FeatGreatWeaponDefenseTitle=戦いの熱狂 -Feat/&FeatHammerThePointDescription=同じ場所に集中して集中する方法を知っています。あなたがターゲットに対して攻撃ロールを行った後、あなたのターンが終了するまで、このターゲットに対する攻撃ロールとダメージロールに+1を得る[スタック]。 -Feat/&FeatHammerThePointTitle=ポイントを叩き込む Feat/&FeatLongswordFinesseDescription=あなたはロングソードのマスターの子孫であり、その熟練の一部はあなたに受け継がれています。次の利点が得られます。\n・器用さが 1 増加し、最大 20 になります。\n・ロングソードを保持している間、アーマー クラスに +1 ボーナスが得られます。\n・ロングソードには、使用するとフィネス特性が得られます。 Feat/&FeatLongswordFinesseTitle=ロングソードフィネス Feat/&FeatOldTacticsDexDescription=敏捷性を 1 増加させます。ラウンドごとに 1 回、近接武器の射程内にある伏せの敵が立ち上がると、そのターゲットに対して機会攻撃を行うことができます。 diff --git a/SolastaUnfinishedBusiness/Translations/ja/Feats/OtherFeats-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Feats/OtherFeats-ja.txt index ed461c30d6..fae5e6d46c 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Feats/OtherFeats-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Feats/OtherFeats-ja.txt @@ -8,8 +8,6 @@ Feat/&FeatAlertDescription=常に危険に注意を払うと、次のような Feat/&FeatAlertTitle=アラート Feat/&FeatArcaneArcherAdeptDescription=特別な戦闘操作を実行できるようにする秘術の魔法と弓の訓練があります。 Feat/&FeatArcaneArcherAdeptTitle=アーケイン・アーチャー・アデプト -Feat/&FeatAstralArmsDescription=知恵を 1 増やして、最大 20 まで増やします。\n自分のターンに素手攻撃を行う場合、その攻撃の到達距離は 10 フィートです。他のクリーチャーが素手で攻撃できる範囲に入ると、あなたからの機会攻撃を引き起こします。 。 -Feat/&FeatAstralArmsTitle=アストラルリーチ Feat/&FeatAthleteDexDescription=あなたは次の利点を得るために広範な身体トレーニングを受けてきました:\n• 器用さが 1 増加し、最大 20 になります。\n• うつ伏せの場合、立ち上がっても移動コストがかかりません。\n•クライミングに余分な動きは必要ありません。\n• すでに熟練している場合は、陸上競技のスキルや専門知識に習熟していきます。 Feat/&FeatAthleteDexTitle=アスリート【デックス】 Feat/&FeatAthleteStrDescription=あなたは次の利点を得るために広範な身体トレーニングを受けてきました:\n• 筋力が 1 増加し、最大 20 になります。\n• うつ伏せの場合、立ち上がっても動きを犠牲にしません。\n•クライミングに余分な動きは必要ありません。\n• すでに熟練している場合は、陸上競技のスキルや専門知識に習熟していきます。 diff --git a/SolastaUnfinishedBusiness/Translations/ja/Feats/RangedCombat-ja.txt b/SolastaUnfinishedBusiness/Translations/ja/Feats/RangedCombat-ja.txt index baa65d3794..0cff3ce11e 100644 --- a/SolastaUnfinishedBusiness/Translations/ja/Feats/RangedCombat-ja.txt +++ b/SolastaUnfinishedBusiness/Translations/ja/Feats/RangedCombat-ja.txt @@ -10,8 +10,6 @@ Feat/&FeatDeadeyeDescription=あなたは精度を犠牲にしてより致命的 Feat/&FeatDeadeyeTitle=狙撃兵 Feat/&FeatRangedExpertDescription=遠距離武器を使った熟練のトレーニングにより、次のようなメリットが得られます。\n• 近接距離での攻撃は不利になりません。\n• 自分のターンに攻撃アクションを実行すると、追加の片手遠距離ボーナス攻撃を 1 回行うことができます。ダメージを与える属性修飾子。 Feat/&FeatRangedExpertTitle=クロスボウのエキスパート -Feat/&FeatSteadyAimDescription=あなたの器用さを 1 増加させ、最大 20 まで高めます。ボーナス アクションとして、現在のターンの次の攻撃ロールで有利になります。このボーナス アクションは、このターン中に移動しなかった場合にのみ使用でき、ボーナス アクションを使用した後は、現在のターンが終了するまでスピードは 0 になります。 -Feat/&FeatSteadyAimTitle=着実な狙い Feature/&PowerFeatSteadyAimDescription=ボーナス アクションとして、現在のターンの次の攻撃ロールで有利になります。このボーナス アクションは、このターン中に移動しなかった場合にのみ使用でき、ボーナス アクションを使用した後は、現在のターンが終了するまでスピードは 0 になります。 Feature/&PowerFeatSteadyAimTitle=着実な狙い Tooltip/&DeadeyeConcentration=シャープシューターを無効にする diff --git a/SolastaUnfinishedBusiness/Translations/ko/Feats/MeleeCombat-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Feats/MeleeCombat-ko.txt index 36243e0817..881d8f2e79 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Feats/MeleeCombat-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Feats/MeleeCombat-ko.txt @@ -34,8 +34,6 @@ Feat/&FeatFencerDescription=근접 한손 또는 다용도 무기를 들고 다 Feat/&FeatFencerTitle=검객 Feat/&FeatGreatWeaponDefenseDescription=대형 무기를 사용하여 힘들게 싸우면 다음과 같은 이점을 얻을 수 있습니다.\n• 생명체의 체력을 0으로 줄이거나 근접 무기로 치명타 공격을 가하면 턴이 끝날 때까지 이동 속도가 15피트 증가합니다.{99 }• 양손에 무거운 근접 무기나 다용도 무기를 들고 공격 행동을 취하면 다음 턴이 시작될 때까지 AC가 +2 증가합니다. 다른 무기나 방패를 장착하면 이 혜택을 잃게 됩니다. Feat/&FeatGreatWeaponDefenseTitle=전투의 열정 -Feat/&FeatHammerThePointDescription=같은 지점에 집중하고 집중하는 방법을 알고 있습니다. 당신이 목표에 대해 공격 굴림을 한 후, 당신의 턴이 끝날 때까지 이 목표에 대한 공격 및 피해 굴림에 +1을 얻습니다. -Feat/&FeatHammerThePointTitle=요점을 망치다 Feat/&FeatLongswordFinesseDescription=당신은 장검의 대가의 후손이며, 그 숙달 중 일부가 당신에게 물려졌습니다. 다음과 같은 이점이 있습니다.\n• 민첩 점수가 1씩 증가하여 최대 20이 됩니다.\n• 롱소드를 들고 있는 동안 갑옷 클래스에 +1 보너스를 얻습니다.\n• 롱소드는 휘두를 때의 기교 속성. Feat/&FeatLongswordFinesseTitle=롱소드 기교 Feat/&FeatOldTacticsDexDescription=민첩성을 1만큼 증가시킵니다. 라운드당 한 번, 근접 무기 범위 내에 있는 엎드린 적이 일어서면 대상에 대해 기회 공격을 할 수 있습니다. diff --git a/SolastaUnfinishedBusiness/Translations/ko/Feats/OtherFeats-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Feats/OtherFeats-ko.txt index b7fc867f5c..26ba66758e 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Feats/OtherFeats-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Feats/OtherFeats-ko.txt @@ -8,8 +8,6 @@ Feat/&FeatAlertDescription=항상 위험을 경계하면 다음과 같은 이점 Feat/&FeatAlertTitle=알리다 Feat/&FeatArcaneArcherAdeptDescription=당신은 특별한 전투 기동을 수행할 수 있는 신비한 마법과 활 훈련을 가지고 있습니다. Feat/&FeatArcaneArcherAdeptTitle=비전 궁수 숙련자 -Feat/&FeatAstralArmsDescription=지혜가 1 증가하여 최대 20까지 증가합니다.\n당신의 차례에 비무장 공격을 가할 때 도달 범위는 10피트입니다. 다른 생물이 비무장 공격 범위에 들어갈 때 기회 공격을 유발합니다. . -Feat/&FeatAstralArmsTitle=아스트랄 리치 Feat/&FeatAthleteDexDescription=귀하는 다음과 같은 이점을 얻기 위해 광범위한 신체 훈련을 받았습니다.\n• 민첩성을 1 증가시켜 최대 20까지 높입니다.\n• 엎드린 상태에서는 일어서더라도 움직일 필요가 없습니다.\n• 등반에는 추가 이동 비용이 들지 않습니다.\n• 이미 능숙한 경우 육상 기술이나 전문 지식에 능숙해집니다. Feat/&FeatAthleteDexTitle=선수 [덱스] Feat/&FeatAthleteStrDescription=다음과 같은 이점을 얻기 위해 광범위한 신체 훈련을 받았습니다.\n• 근력을 1 증가하여 최대 20까지 높입니다.\n• 엎드린 상태에서는 일어서더라도 움직일 필요가 없습니다.\n• 등반에는 추가 이동 비용이 들지 않습니다.\n• 이미 능숙한 경우 육상 기술이나 전문 지식에 능숙해집니다. diff --git a/SolastaUnfinishedBusiness/Translations/ko/Feats/RangedCombat-ko.txt b/SolastaUnfinishedBusiness/Translations/ko/Feats/RangedCombat-ko.txt index bcc6f7837d..0d5b4fc9ba 100644 --- a/SolastaUnfinishedBusiness/Translations/ko/Feats/RangedCombat-ko.txt +++ b/SolastaUnfinishedBusiness/Translations/ko/Feats/RangedCombat-ko.txt @@ -10,8 +10,6 @@ Feat/&FeatDeadeyeDescription=더 치명적인 사격을 위해 정확도를 교 Feat/&FeatDeadeyeTitle=명사수 Feat/&FeatRangedExpertDescription=원거리 무기를 사용한 숙련된 훈련을 통해 다음과 같은 이점을 얻을 수 있습니다.\n• 근접 거리에서의 공격은 불이익을 초래하지 않습니다.\n• 자신의 차례에 공격 행동을 취하면 한 손으로 원거리 추가 공격을 할 수 있습니다. 당신의 속성 수정자가 손상됩니다. Feat/&FeatRangedExpertTitle=석궁 전문가 -Feat/&FeatSteadyAimDescription=민첩성을 1 증가시켜 최대 20까지 증가시킵니다. 보너스 행동으로, 당신은 현재 턴의 다음 공격 굴림에서 이점을 얻습니다. 이 보너스 행동은 이번 턴 동안 움직이지 않은 경우에만 사용할 수 있으며, 보너스 행동을 사용한 후에는 현재 턴이 끝날 때까지 속도가 0입니다. -Feat/&FeatSteadyAimTitle=꾸준한 목표 Feature/&PowerFeatSteadyAimDescription=보너스 행동으로, 당신은 현재 턴의 다음 공격 굴림에서 이점을 얻습니다. 이 보너스 행동은 이번 턴 동안 움직이지 않은 경우에만 사용할 수 있으며, 보너스 행동을 사용한 후에는 현재 턴이 끝날 때까지 속도가 0입니다. Feature/&PowerFeatSteadyAimTitle=꾸준한 목표 Tooltip/&DeadeyeConcentration=명사수 비활성화 diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/MeleeCombat-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/MeleeCombat-pt-BR.txt index 6e84f4e103..fded5892e5 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/MeleeCombat-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/MeleeCombat-pt-BR.txt @@ -34,8 +34,6 @@ Feat/&FeatFencerDescription=Se você realizar a ação de Ataque em seu turno en Feat/&FeatFencerTitle=Esgrimista Feat/&FeatGreatWeaponDefenseDescription=Você luta arduamente com armas grandes, obtendo os seguintes benefícios:\n• Quando você reduz uma criatura a 0 pontos de vida ou desfere um acerto crítico com uma arma corpo a corpo, sua velocidade de movimento aumenta em 4,5 metros até o final do seu turno.{99 }• Quando você realiza a ação Atacar enquanto empunha uma arma corpo a corpo pesada ou versátil em duas mãos, você ganha +2AC até o início do seu próximo turno. Você perde esse benefício se equipar uma arma ou escudo diferente. Feat/&FeatGreatWeaponDefenseTitle=Fervor de Batalha -Feat/&FeatHammerThePointDescription=Você sabe como focar e concentrar-se no mesmo lugar. Depois de fazer uma jogada de ataque contra um alvo, receba +1 nas jogadas de ataque e dano contra esse alvo até o final do seu turno [acumula]. -Feat/&FeatHammerThePointTitle=Martele o ponto Feat/&FeatLongswordFinesseDescription=Você é descendente de um mestre da espada longa e parte desse domínio foi passado para você. Você ganha os seguintes benefícios:\n• Aumenta sua Destreza em 1, até um máximo de 20.\n• Enquanto estiver segurando uma espada longa, você ganha um bônus de +1 na classe de armadura.\n• A Espada Longa tem o propriedade de sutileza quando você a empunha. Feat/&FeatLongswordFinesseTitle=Finesse de Espada Longa Feat/&FeatOldTacticsDexDescription=Aumente sua Destreza em 1. Uma vez por rodada, quando um inimigo caído dentro do alcance de sua arma corpo-a-corpo se levantar, você poderá realizar um ataque de oportunidade contra o alvo. diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/OtherFeats-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/OtherFeats-pt-BR.txt index c52fc312f0..ae446f02a8 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/OtherFeats-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/OtherFeats-pt-BR.txt @@ -8,8 +8,6 @@ Feat/&FeatAlertDescription=Sempre atento ao perigo, você ganha os seguintes ben Feat/&FeatAlertTitle=Alerta Feat/&FeatArcaneArcherAdeptDescription=Você possui magia arcana e treinamento com arco que lhe permite realizar manobras especiais de combate. Feat/&FeatArcaneArcherAdeptTitle=Adepto do Arqueiro Arcano -Feat/&FeatAstralArmsDescription=Aumente sua Sabedoria em 1, até um máximo de 20.\nQuando você desfere um ataque desarmado no seu turno, seu alcance é de 3 metros. Outras criaturas provocam um ataque de oportunidade seu quando entram no alcance que você tem com ataques desarmados. . -Feat/&FeatAstralArmsTitle=Alcance Astral Feat/&FeatAthleteDexDescription=Você passou por um extenso treinamento físico para obter os seguintes benefícios:\n• Aumente sua Destreza em 1, até um máximo de 20.\n• Quando você está deitado, levantar-se não custa movimento.\n• Escalar não custa movimento extra.\n• Você ganha proficiência em perícia ou especialização em Atletismo se já for proficiente. Feat/&FeatAthleteDexTitle=Atleta [Dex] Feat/&FeatAthleteStrDescription=Você passou por um extenso treinamento físico para obter os seguintes benefícios:\n• Aumente sua Força em 1, até um máximo de 20.\n• Quando você está deitado, levantar-se não custa movimento.\n• Escalar não custa movimento extra.\n• Você ganha proficiência em perícia ou especialização em Atletismo se já for proficiente. diff --git a/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/RangedCombat-pt-BR.txt b/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/RangedCombat-pt-BR.txt index e2ffb22a04..1e291c062a 100644 --- a/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/RangedCombat-pt-BR.txt +++ b/SolastaUnfinishedBusiness/Translations/pt-BR/Feats/RangedCombat-pt-BR.txt @@ -10,8 +10,6 @@ Feat/&FeatDeadeyeDescription=Você aprendeu a trocar precisão para acertar tiro Feat/&FeatDeadeyeTitle=Atirador afiado Feat/&FeatRangedExpertDescription=Seu treinamento especializado com armas de longo alcance concede estes benefícios:\n• Ataques corpo a corpo não impõem desvantagem.\n• Se você realizar a ação de ataque no seu turno, poderá realizar um ataque bônus de longo alcance com uma mão, adicionando seu modificador de atributo para dano. Feat/&FeatRangedExpertTitle=Especialista em besta -Feat/&FeatSteadyAimDescription=Aumente sua Destreza em 1, até um máximo de 20. Como uma ação bônus, você ganha vantagem em sua próxima jogada de ataque no turno atual. Você pode usar esta ação bônus apenas se não tiver se movido durante este turno e, depois de usar a ação bônus, seu deslocamento será 0 até o final do turno atual. -Feat/&FeatSteadyAimTitle=Mira firme Feature/&PowerFeatSteadyAimDescription=Como uma ação bônus, você ganha vantagem em sua próxima jogada de ataque no turno atual. Você pode usar esta ação bônus apenas se não tiver se movido durante este turno e, depois de usar a ação bônus, seu deslocamento será 0 até o final do turno atual. Feature/&PowerFeatSteadyAimTitle=Mira firme Tooltip/&DeadeyeConcentration=Desativar atirador de elite diff --git a/SolastaUnfinishedBusiness/Translations/ru/Feats/MeleeCombat-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Feats/MeleeCombat-ru.txt index 4630890130..2687116ac1 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Feats/MeleeCombat-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Feats/MeleeCombat-ru.txt @@ -34,8 +34,6 @@ Feat/&FeatFencerDescription=Если в свой ход вы совершает Feat/&FeatFencerTitle=Фехтовальщик Feat/&FeatGreatWeaponDefenseDescription=Вы стойко сражаетесь большим оружием, получая следующие преимущества:\n• Когда вы опускаете хиты существа до 0 или наносите критический удар рукопашным оружием, ваша скорость передвижения увеличивается на 15 футов до конца вашего хода.\n• Когда вы совершаете действие Атака, используя тяжёлое рукопашное или универсальное оружие в двух руках, вы получаете +2 КД до начала вашего следующего хода. Вы теряете это преимущество, если берёте другое оружие или щит. Feat/&FeatGreatWeaponDefenseTitle=Боевой пыл -Feat/&FeatHammerThePointDescription=Вы умеете концентрировать и сосредотачивать внимание на одной точке. После того, как вы совершаете бросок атаки по цели, получите +1 к броскам атаки и урона по этой цели до конца вашего хода [складывается]. -Feat/&FeatHammerThePointTitle=Забить в точку Feat/&FeatLongswordFinesseDescription=Вы потомок мастера длинного меча, и кое-что из этого мастерства передалось вам. Вы получаете следующие преимущества:\n• Увеличьте значение вашей Ловкости на 1 при максимуме 20.\n• Пока вы держите длинный меч, вы получаете бонус +1 к классу доспеха.\n• Длинный меч имеет свойство "фехтовальное", пока вы держите его. Feat/&FeatLongswordFinesseTitle=Изящество длинного меча Feat/&FeatOldTacticsDexDescription=Увеличьте значение вашей Ловкости на 1. Один раз в ход, когда сбитый с ног противник в пределах досягаемости вашего рукопашного оружия встаёт, вы можете совершить атаку по возможности против этой цели. diff --git a/SolastaUnfinishedBusiness/Translations/ru/Feats/OtherFeats-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Feats/OtherFeats-ru.txt index 78397c4774..36d0ef2567 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Feats/OtherFeats-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Feats/OtherFeats-ru.txt @@ -8,8 +8,6 @@ Feat/&FeatAlertDescription=Вы всегда готовы к опасностя Feat/&FeatAlertTitle=Бдительный Feat/&FeatArcaneArcherAdeptDescription=Вы владеете тайной магией и обучены стрельбе из лука, что позволяет вам выполнять специальные боевые приёмы. Feat/&FeatArcaneArcherAdeptTitle=Мистический лучник-адепт -Feat/&FeatAstralArmsDescription=Увеличьте значение Мудрости на 1 при максимуме 20.\nКогда вы совершаете безоружную атаку в свой ход, ваша досягаемость для неё равна 10 футам. Другие существа провоцируют атаку по возможности от вас, когда входят в область досягаемости вашей безоружной атаки. -Feat/&FeatAstralArmsTitle=Астральная досягаемость Feat/&FeatAthleteDexDescription=Вы прошли интенсивную физическую подготовку и получаете следующие преимущества:\n• Увеличьте значение Ловкости на 1 при максимуме 20.\n• Если вы лежите ничком, вставание не заставляет вас тратить перемещение.\n• Лазание не заставляет вас тратить дополнительное перемещение.\n• Вы приобретаете владение навыком Атлетики, либо компетентность, если уже владеете им. Feat/&FeatAthleteDexTitle=Атлетичный [ЛОВ] Feat/&FeatAthleteStrDescription=Вы прошли интенсивную физическую подготовку и получаете следующие преимущества:\n• Увеличьте значение Силы на 1 при максимуме 20.\n• Если вы лежите ничком, вставание не заставляет вас тратить перемещение.\n• Лазание не заставляет вас тратить дополнительное перемещение.\n• Вы приобретаете владение навыком Атлетики, либо компетентность, если уже владеете им. diff --git a/SolastaUnfinishedBusiness/Translations/ru/Feats/RangedCombat-ru.txt b/SolastaUnfinishedBusiness/Translations/ru/Feats/RangedCombat-ru.txt index 578b8467db..0b9d8f10ef 100644 --- a/SolastaUnfinishedBusiness/Translations/ru/Feats/RangedCombat-ru.txt +++ b/SolastaUnfinishedBusiness/Translations/ru/Feats/RangedCombat-ru.txt @@ -10,8 +10,6 @@ Feat/&FeatDeadeyeDescription=Вы научились жертвовать точ Feat/&FeatDeadeyeTitle=Меткий стрелок Feat/&FeatRangedExpertDescription=Ваше мастерство владения дальнобойным оружием даёт вам следующие преимущества:\n• Атаки на ближней дистанции не вызывают помехи.\n• Если вы атакуете в свой ход, вы можете бонусным действием произвести одну дальнобойную атаку одноручным оружием, добавляя свой модификатор характеристики к урону. Feat/&FeatRangedExpertTitle=Эксперт дальнего боя -Feat/&FeatSteadyAimDescription=Увеличьте значение Ловкости на 1 при максимуме 20. Бонусным действием вы можете дать себе преимущество на следующий бросок атаки в текущем ходу. Вы можете использовать это бонусное действие только в том случае, если не перемещались в этом ходу. После того, как вы используете его, ваша скорость станет равной 0 до конца текущего хода. -Feat/&FeatSteadyAimTitle=Точное прицеливание Feature/&PowerFeatSteadyAimDescription=Бонусным действием вы можете дать себе преимущество на следующий бросок атаки в текущем ходу. Вы можете использовать это бонусное действие только в том случае, если не перемещались в этом ходу. После того, как вы используете его, ваша скорость станет равной 0 до конца текущего хода. Feature/&PowerFeatSteadyAimTitle=Точное прицеливание Tooltip/&DeadeyeConcentration=Отключить Меткого стрелка diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/MeleeCombat-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/MeleeCombat-zh-CN.txt index 29c9de1636..76a46a3540 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/MeleeCombat-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/MeleeCombat-zh-CN.txt @@ -34,8 +34,6 @@ Feat/&FeatFencerDescription=如果你在回合中执行攻击动作时持有近 Feat/&FeatFencerTitle=剑术家 Feat/&FeatGreatWeaponDefenseDescription=你能娴熟挥舞大型武器,获得以下好处:\n• 当你将生物的生命值降至 0 点或使用近战武器造成致命一击时,你的移动速度将增加 15 英尺,直到你的回合结束。\n• 当你双手挥舞重型近战或多功能武器并采取攻击行动时,你将获得 +2AC,直到你的下一回合开始。如果你装备其他武器或盾牌,你将失去此好处。 Feat/&FeatGreatWeaponDefenseTitle=战斗狂热 -Feat/&FeatHammerThePointDescription=你知道如何集中注意并专攻于一处。在你对一个目标进行攻击检定后,对该目标的攻击和伤害检定获得 +1,直到你的回合结束(叠加)。 -Feat/&FeatHammerThePointTitle=专攻要害 Feat/&FeatLongswordFinesseDescription=你是一位长剑大师的后裔,其将一些精湛技艺传授于你。你获得下列增益:\n• 你的敏捷值 +1,上限为 20。\n• 当你持有长剑时,你的护甲等级获得 +1 加值。\n• 你使用长剑时具有灵巧属性。 Feat/&FeatLongswordFinesseTitle=长剑技巧 Feat/&FeatOldTacticsDexDescription=你的敏捷 +1。每轮一次,当你的近战武器触及范围内的俯卧敌人站起来时,你可以对目标进行借机攻击。 diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/OtherFeats-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/OtherFeats-zh-CN.txt index 1951c09a1e..80e81ee4c2 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/OtherFeats-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/OtherFeats-zh-CN.txt @@ -8,8 +8,6 @@ Feat/&FeatAlertDescription=时刻警惕危险。你获得以下好处:\n• Feat/&FeatAlertTitle=警觉 Feat/&FeatArcaneArcherAdeptDescription=你掌握的奥术魔法与弓箭训练,允许你执行特殊的战斗策略。 Feat/&FeatArcaneArcherAdeptTitle=魔射专家 -Feat/&FeatAstralArmsDescription=你的感知 +1,上限为 20。\n当你在你的回合进行攻击时,你的攻击范围为 10 尺。其他生物进入你的徒手攻击范围时会引发你的借机攻击. -Feat/&FeatAstralArmsTitle=星灵延伸 Feat/&FeatAthleteDexDescription=你已经接受了大量的体能训练,以获得以下好处:\n• 你的敏捷 +1,上限为 20。\n• 当你倒地时,站起来不会消耗你的移动力。\n•攀爬无需额外消耗移动力。\n• 你获得运动熟练项,如果已有熟练项,则获得专精。 Feat/&FeatAthleteDexTitle=运动员【敏捷】 Feat/&FeatAthleteStrDescription=你已经接受了大量的体能训练,以获得以下好处:\n• 你的力量 +1,上限为 20。\n• 当你倒地时,站起来不会消耗你的移动力。\n•攀爬无需额外消耗移动力。\n• 你获得运动熟练项,如果已有熟练项,则获得专精。 diff --git a/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/RangedCombat-zh-CN.txt b/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/RangedCombat-zh-CN.txt index 5adaa340c8..fb2d046059 100644 --- a/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/RangedCombat-zh-CN.txt +++ b/SolastaUnfinishedBusiness/Translations/zh-CN/Feats/RangedCombat-zh-CN.txt @@ -10,8 +10,6 @@ Feat/&FeatDeadeyeDescription=你已经学会了用准确性换取更致命的射 Feat/&FeatDeadeyeTitle=神射手 Feat/&FeatRangedExpertDescription=你对远程武器的专业训练为你带来以下好处:\n• 近战范围内的攻击不会带来劣势。\n• 当你在你的回合采取攻击行动时,你可以用附赠动作进行一次单手远程武器攻击,将你的属性调整值添加到伤害中。 Feat/&FeatRangedExpertTitle=远程专家 -Feat/&FeatSteadyAimDescription=你的敏捷 +1,上限为 20。作为附赠动作,你在当前回合的下一次攻击检定中获得优势。只有当你在本回合中没有移动时你才能使用这个附赠动作,并且在你使用这个附赠动作后,你的速度在本回合结束前为 0。 -Feat/&FeatSteadyAimTitle=稳步瞄准 Feature/&PowerFeatSteadyAimDescription=作为附赠动作,你可以在当前回合的下一次攻击检定中为自己带来优势。只有当你在本回合中没有移动时,你才能使用此附赠动作,并且在使用附赠动作后,你的速度为 0,直到当前回合结束。 Feature/&PowerFeatSteadyAimTitle=稳定瞄准 Tooltip/&DeadeyeConcentration=禁用神射手。 From 80adf96efa7f655aae6d05e70cc5a551d1fd526e Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 12:04:52 -0700 Subject: [PATCH 37/91] update collaterals --- ...esentation-InvalidSyntaxTranslation-en.txt | 4 +- .../UnfinishedBusinessBlueprints/Assets.txt | 6 - ...itionFeatHammerThePointHammerThePoint.json | 155 ------------------ .../FeatDefinition/FeatAstralArms.json | 44 ----- .../FeatGroupHalfDexterity.json | 2 +- .../FeatDefinition/FeatGroupHalfWisdom.json | 2 +- .../FeatDefinition/FeatHammerThePoint.json | 44 ----- .../FeatDefinition/FeatSteadyAim.json | 45 ----- ...amageFeatHammerThePointHammerThePoint.json | 86 ---------- .../CombatAffinityFeatSteadyAim.json | 2 +- .../ChangelogHistory.txt | 6 +- .../Models/CharacterUAContext.cs | 3 +- SolastaUnfinishedBusiness/Settings/empty.xml | 1 + 13 files changed, 11 insertions(+), 389 deletions(-) delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionFeatHammerThePointHammerThePoint.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAstralArms.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatHammerThePoint.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatSteadyAim.json delete mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageFeatHammerThePointHammerThePoint.json diff --git a/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt b/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt index 533301a318..04d4a52bf0 100644 --- a/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt +++ b/Diagnostics/CE-Definitions-GuiPresentation-InvalidSyntaxTranslation-en.txt @@ -863,10 +863,10 @@ FeatGroupGrudgeBearer Description='You have a deep hatred for a particular kind FeatGroupHalfAttributes Description='Half Charisma, Half Constitution, Half Dexterity, Half Intelligence, Half Strength, Half Wisdom'. FeatGroupHalfCharisma Description='Aegis Touched [Cha], Apothecary [Cha], Awaken the Beast [Cha], Baleful Scion [Cha], Blessed Soul [Paladin], Celestial Touched [Cha], Charismatic Defense, Charismatic Precision, Creed of Solasta, Dragon Fear [Cha], Dragon Hide [Cha], Elven Accuracy [Cha], Fey Teleportation [Cha], Flame Touched [Cha], Flames of Phlegethos [Cha], Iridescent Touched [Cha], Menacing, Peregrination Touched [Cha], Retinue Touched [Cha], Second Chance [Cha], Shadow Touched [Cha], Telekinetic [Cha], Toxicologist [Cha], Verdant Touched [Cha]'. FeatGroupHalfConstitution Description='Awaken the Beast [Con], Badlands Marauder, Baleful Scion [Con], Chef [Con], Creed of Arun, Crusher [Con], Dragon Fear [Con], Dragon Hide [Con], Dwarven Fortitude, Enduring Body, Focused Sleeper, Frost Adaptation, Grudge Bearer [Con], Hard to Kill, Hardy [Con], Infernal Constitution, Orcish Aggression [Con], Orcish Fury [Con], Primal Rage [Con], Robust, Second Chance [Con], Sturdiness of the Tundra'. -FeatGroupHalfDexterity Description='Acrobat, Ambidextrous, Athlete [Dex], Awaken the Beast [Dex], Baleful Scion [Dex], Close Quarters [Dex], Creed of Misaye, Devastating Strikes [Dex], Discretion of the Coedymwarth, Eager for Battle, Elven Accuracy [Dex], Fade Away [Dex], Forest Runner, Longsword Finesse, Moderately Armored [Dex], Old Tactics [Dex], Piercer [Dex], Revenant Blade [Dex], Second Chance [Dex], Slasher [Dex], Squat Nimbleness [Dex], Steady Aim, Stealthy, Uncanny Accuracy, Weapon Master [Dex]'. +FeatGroupHalfDexterity Description='Acrobat, Ambidextrous, Athlete [Dex], Awaken the Beast [Dex], Baleful Scion [Dex], Close Quarters [Dex], Creed of Misaye, Devastating Strikes [Dex], Discretion of the Coedymwarth, Eager for Battle, Elven Accuracy [Dex], Fade Away [Dex], Forest Runner, Longsword Finesse, Moderately Armored [Dex], Old Tactics [Dex], Piercer [Dex], Revenant Blade [Dex], Second Chance [Dex], Slasher [Dex], Squat Nimbleness [Dex], Stealthy, Uncanny Accuracy, Weapon Master [Dex]'. FeatGroupHalfIntelligence Description='Aegis Touched [Int], Apothecary [Int], Arcane Defense, Arcane Precision, Arcanist, Awaken the Beast [Int], Baleful Scion [Int], Celestial Touched [Int], Close Quarters [Int], Creed of Pakri, Elven Accuracy [Int], Fade Away [Int], Fey Teleportation [Int], Flame Touched [Int], Flames of Phlegethos [Int], Iridescent Touched [Int], Peregrination Touched [Int], Retinue Touched [Int], Scriber, Shadow Touched [Int], Telekinetic [Int], Theologian, Toxicologist [Int], Verdant Touched [Int]'. FeatGroupHalfStrength Description='Athlete [Str], Awaken the Beast [Str], Baleful Scion [Str], Creed of Einar, Crusher [Str], Devastating Strikes [Str], Dragon Fear [Str], Dragon Hide [Str], Grudge Bearer [Str], Hardy [Str], Hauler, Heavy Armor Master, Might of the Iron Legion, Moderately Armored [Str], Old Tactics [Str], Orcish Aggression [Str], Orcish Fury [Str], Piercer [Str], Primal Rage [Str], Revenant Blade [Str], Slasher [Str], Squat Nimbleness [Str], Weapon Master [Str]'. -FeatGroupHalfWisdom Description='Aegis Touched [Wis], Apothecary [Wis], Astral Reach, Awaken the Beast [Wis], Baleful Scion [Wis], Blessed Soul [Cleric], Celestial Touched [Wis], Chef [Wis], Creed of Maraike, Elven Accuracy [Wis], Expand the Hunt, Fey Teleportation [Wis], Flame Touched [Wis], Grudge Bearer [Wis], Iridescent Touched [Wis], Peregrination Touched [Wis], Retinue Touched [Wis], Shadow Touched [Wis], Telekinetic [Wis], Toxicologist [Wis], Verdant Touched [Wis], Wise Archery, Wise Defense, Wise Precision'. +FeatGroupHalfWisdom Description='Aegis Touched [Wis], Apothecary [Wis], Awaken the Beast [Wis], Baleful Scion [Wis], Blessed Soul [Cleric], Celestial Touched [Wis], Chef [Wis], Creed of Maraike, Elven Accuracy [Wis], Expand the Hunt, Fey Teleportation [Wis], Flame Touched [Wis], Grudge Bearer [Wis], Iridescent Touched [Wis], Peregrination Touched [Wis], Retinue Touched [Wis], Shadow Touched [Wis], Telekinetic [Wis], Toxicologist [Wis], Verdant Touched [Wis], Wise Archery, Wise Defense, Wise Precision'. FeatGroupHardy Description='Increase your Strength or Constitution by 1, to a maximum of 20. Whenever you use your second wind feature, you gain 1D10 + your class level temporary hit points.'. FeatGroupIridescentTouched Description='Increase one of your mental attributes by 1, to a maximum of 20. You gain the ability to cast the color spray, faerie fire and color burst spells once per long rest, and you can cast these spells with your spell slots.'. diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index f040aea16b..ae6489b085 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -771,7 +771,6 @@ ConditionFeatDungeonDelver ConditionDefinition ConditionDefinition a2a29893-ca95 ConditionFeatFlamesOfPhlegethos ConditionDefinition ConditionDefinition 0f2d858f-1d3a-5c61-9cfd-151814083b41 ConditionFeatGreatWeaponDefenseArmorClass ConditionDefinition ConditionDefinition d7f68159-9aa9-51e7-9aa0-e4a66dded588 ConditionFeatGreatWeaponDefenseMovement ConditionDefinition ConditionDefinition b876c72f-d643-54f3-bdad-1ee067c05dbc -ConditionFeatHammerThePointHammerThePoint ConditionDefinition ConditionDefinition 93cd67e0-8f5f-5c97-9116-54f81a11f0ea ConditionFeatMageSlayer ConditionDefinition ConditionDefinition 0eaa80b5-066e-58e5-a99a-c24a408ac20d ConditionFeatMenacingMark ConditionDefinition ConditionDefinition e954a5df-8fde-5da8-9aaf-4fa1181c9ba6 ConditionFeatMobileAfterDash ConditionDefinition ConditionDefinition 6b06ad33-0f23-5d55-8a25-3e12b2d30039 @@ -1245,7 +1244,6 @@ FeatArcaneDefense FeatDefinition FeatDefinition cfc34cc9-97b0-5eec-a3ae-2014c544 FeatArcanePrecision FeatDefinition FeatDefinition 4b00a7f0-8ecc-5ac1-84a5-6a96b73d49f6 FeatArcanist FeatDefinition FeatDefinition b3de15dc-e66c-5e9b-9de6-3be9dca25482 FeatArchery FeatDefinitionWithPrerequisites FeatDefinition f1386edb-5dc2-59f3-b379-a506a35108bc -FeatAstralArms FeatDefinition FeatDefinition d52d661c-6596-5206-95de-0687bc6a2d42 FeatAstralReach FeatDefinitionWithPrerequisites FeatDefinition f54d8d34-36e9-5245-a407-b4d96d7a58f1 FeatAthleteDex FeatDefinition FeatDefinition 7d1a1ff0-cf50-53af-8f88-bb6be05a9975 FeatAthleteStr FeatDefinition FeatDefinition 5bce2e12-4225-51af-8c26-9a487dc50851 @@ -1416,7 +1414,6 @@ FeatGroupWeaponMaster FeatDefinition FeatDefinition b5135d1b-4309-5d0e-a75e-36b5 FeatGrudgeBearerCon FeatDefinitionWithPrerequisites FeatDefinition ad80b302-064a-5dad-b483-4fba286a8245 FeatGrudgeBearerStr FeatDefinitionWithPrerequisites FeatDefinition c53d92d3-66e8-5c23-8249-576157d393df FeatGrudgeBearerWis FeatDefinitionWithPrerequisites FeatDefinition edd3a449-64a9-5f81-9899-0dd7de0f146f -FeatHammerThePoint FeatDefinition FeatDefinition dca565d9-a216-5f92-890d-1747c649cbfb FeatHandAndAHalf FeatDefinitionWithPrerequisites FeatDefinition 494a65aa-32fa-5e8a-b1f1-4f3b351b291f FeatHardyCon FeatDefinitionWithPrerequisites FeatDefinition 5071951b-daaf-5905-853e-7c14dde363f4 FeatHardyStr FeatDefinitionWithPrerequisites FeatDefinition 6c01cae2-1420-5459-a5ee-a697bd0ef7a7 @@ -1507,7 +1504,6 @@ FeatSpellSniperWizard FeatDefinition FeatDefinition 5b6f6b6c-c6d2-5863-9b63-ca88 FeatSpiritualFluidity FeatDefinitionWithPrerequisites FeatDefinition 3d0eaf78-8648-5481-be1d-9db2b81d29a5 FeatSquatNimblenessDex FeatDefinitionWithPrerequisites FeatDefinition 84951243-f193-55ce-8476-c6ad3ebf8632 FeatSquatNimblenessStr FeatDefinitionWithPrerequisites FeatDefinition 63675c16-7b29-54d8-8ab9-6911a9e680ee -FeatSteadyAim FeatDefinition FeatDefinition 8f954320-b56c-5ad6-8f80-b375a176c947 FeatStealthy FeatDefinition FeatDefinition 0a96b461-e5a1-55fe-af00-2af177702696 FeatSuperiorCritical FeatDefinitionWithPrerequisites FeatDefinition 0692ff14-3a3b-5996-93b5-7c3286665e60 FeatTacticianAdept FeatDefinitionWithPrerequisites FeatDefinition 6084bfd8-6fd0-5824-9371-547fa6d0da82 @@ -1700,7 +1696,6 @@ AdditionalDamageEnsnaringStrike FeatureDefinitionAdditionalDamage FeatureDefinit AdditionalDamageFeatBalefulScion FeatureDefinitionAdditionalDamage FeatureDefinition 3d0e1aa3-2e86-59ea-a2fa-866313231851 AdditionalDamageFeatCharger FeatureDefinitionAdditionalDamage FeatureDefinition 5e4d30ff-8673-591b-9ff6-833b76bc0696 AdditionalDamageFeatDevastatingStrikes FeatureDefinitionAdditionalDamage FeatureDefinition 784aeecc-2d96-5f0b-ba89-935e4432fa2d -AdditionalDamageFeatHammerThePointHammerThePoint FeatureDefinitionAdditionalDamage FeatureDefinition 26cad3da-5cf3-525a-b070-b8bd8a6f88fc AdditionalDamageFeatOrcishFury FeatureDefinitionAdditionalDamage FeatureDefinition 4164e6e5-bac4-50ea-8b60-03d23bed2641 AdditionalDamageFeatPiercer FeatureDefinitionAdditionalDamage FeatureDefinition 81ab79ca-7744-58e9-b5dc-1049e170defc AdditionalDamageFeatSlayTheEnemies FeatureDefinitionAdditionalDamage FeatureDefinition ba46226a-7f43-5e84-b774-ec3fd026ad08 @@ -4333,7 +4328,6 @@ AdditionalDamageEnsnaringStrike FeatureDefinitionAdditionalDamage FeatureDefinit AdditionalDamageFeatBalefulScion FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage 3d0e1aa3-2e86-59ea-a2fa-866313231851 AdditionalDamageFeatCharger FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage 5e4d30ff-8673-591b-9ff6-833b76bc0696 AdditionalDamageFeatDevastatingStrikes FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage 784aeecc-2d96-5f0b-ba89-935e4432fa2d -AdditionalDamageFeatHammerThePointHammerThePoint FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage 26cad3da-5cf3-525a-b070-b8bd8a6f88fc AdditionalDamageFeatOrcishFury FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage 4164e6e5-bac4-50ea-8b60-03d23bed2641 AdditionalDamageFeatPiercer FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage 81ab79ca-7744-58e9-b5dc-1049e170defc AdditionalDamageFeatSlayTheEnemies FeatureDefinitionAdditionalDamage FeatureDefinitionAdditionalDamage ba46226a-7f43-5e84-b774-ec3fd026ad08 diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionFeatHammerThePointHammerThePoint.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionFeatHammerThePointHammerThePoint.json deleted file mode 100644 index 9456eab417..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionFeatHammerThePointHammerThePoint.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "$type": "ConditionDefinition, Assembly-CSharp", - "inDungeonEditor": false, - "parentCondition": null, - "conditionType": "Beneficial", - "features": [], - "allowMultipleInstances": true, - "silentWhenAdded": true, - "silentWhenRemoved": true, - "silentWhenRefreshed": false, - "terminateWhenRemoved": false, - "specialDuration": true, - "durationType": "Round", - "durationParameterDie": "D4", - "durationParameter": 0, - "forceTurnOccurence": false, - "turnOccurence": "EndOfSourceTurn", - "specialInterruptions": [], - "interruptionRequiresSavingThrow": false, - "interruptionSavingThrowComputationMethod": "SaveOverride", - "interruptionSavingThrowAbility": "", - "interruptionDamageThreshold": 0, - "keepConditionIfSavingThrowSucceeds": false, - "interruptionSavingThrowAffinity": "None", - "conditionTags": [], - "recurrentEffectForms": [], - "cancellingConditions": [], - "additionalDamageWhenHit": false, - "additionalDamageTypeDetermination": "Specific", - "additionalDamageType": "", - "additionalDamageQuantity": "AbilityBonus", - "additionalDamageDieType": "D1", - "additionalDamageDieNumber": 1, - "additionalConditionWhenHit": false, - "additionalCondition": null, - "additionalConditionDurationType": "Round", - "additionalConditionDurationParameter": 1, - "additionalConditionTurnOccurenceType": "StartOfTurn", - "conditionStartParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "conditionEndParticleReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "recurrentEffectParticleReference": null, - "characterShaderReference": { - "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "particlesBasedOnAncestryDamageType": false, - "ancestryType": "Sorcerer", - "acidParticleParameters": null, - "coldParticleParameters": null, - "fireParticleParameters": null, - "lightningParticleParameters": null, - "poisonParticleParameters": null, - "overrideCharacterShaderColors": false, - "firstCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "secondCharacterShaderColor": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "timeToWaitBeforeApplyingShader": 0.5, - "timeToWaitBeforeRemovingShader": 0.5, - "possessive": false, - "amountOrigin": "None", - "baseAmount": 0, - "additiveAmount": false, - "sourceAbilityBonusMinValue": 1, - "subsequentOnRemoval": null, - "subsequentHasSavingThrow": false, - "subsequentSavingThrowAbilityScore": "Constitution", - "subsequentVariableForDC": "FrenzyExhaustionDC", - "subsequentDCIncrease": 5, - "effectFormsOnRemoved": [], - "forceBehavior": false, - "addBehavior": false, - "fearSource": false, - "battlePackage": null, - "explorationPackage": null, - "removedFromTheGame": false, - "permanentlyRemovedIfExtraPlanar": false, - "refundReceivedDamageWhenRemoved": false, - "followSourcePosition": false, - "disolveCharacterOnDeath": false, - "disolveParameters": { - "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 0.0, - "g": 0.0, - "b": 0.0, - "a": 0.0 - }, - "colorWidth": 0.0, - "noiseScale": 5.0, - "hueScale": 0.0, - "vertexOffset": 0.0, - "curve": { - "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" - }, - "startAfterDeathAnimation": false, - "duration": 0.0 - }, - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "93cd67e0-8f5f-5c97-9116-54f81a11f0ea", - "contentPack": 9999, - "name": "ConditionFeatHammerThePointHammerThePoint" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAstralArms.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAstralArms.json deleted file mode 100644 index 3a61f11bee..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatAstralArms.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "$type": "FeatDefinition, Assembly-CSharp", - "compatibleClassesPrerequisite": [], - "mustCastSpellsPrerequisite": false, - "compatibleRacesPrerequisite": [], - "minimalAbilityScorePrerequisite": false, - "minimalAbilityScoreValue": 13, - "minimalAbilityScoreName": "Strength", - "armorProficiencyPrerequisite": false, - "armorProficiencyCategory": "", - "hasFamilyTag": false, - "familyTag": "", - "knownFeatsPrerequisite": [], - "features": [ - "Definition:AttributeModifierCreed_Of_Maraike:7fd526d5e743c6f48bad92aac9b1738d" - ], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feat/&FeatAstralArmsTitle", - "description": "Feat/&FeatAstralArmsDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "d52d661c-6596-5206-95de-0687bc6a2d42", - "contentPack": 9999, - "name": "FeatAstralArms" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfDexterity.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfDexterity.json index 93a961b7fd..ecd04c5eeb 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfDexterity.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfDexterity.json @@ -16,7 +16,7 @@ "$type": "GuiPresentation, Assembly-CSharp", "hidden": true, "title": "Feat/&FeatGroupHalfDexterityTitle", - "description": "Acrobat, Ambidextrous, Athlete [Dex], Awaken the Beast [Dex], Baleful Scion [Dex], Close Quarters [Dex], Creed of Misaye, Devastating Strikes [Dex], Discretion of the Coedymwarth, Eager for Battle, Elven Accuracy [Dex], Fade Away [Dex], Forest Runner, Longsword Finesse, Moderately Armored [Dex], Old Tactics [Dex], Piercer [Dex], Revenant Blade [Dex], Second Chance [Dex], Slasher [Dex], Squat Nimbleness [Dex], Steady Aim, Stealthy, Uncanny Accuracy, Weapon Master [Dex]", + "description": "Acrobat, Ambidextrous, Athlete [Dex], Awaken the Beast [Dex], Baleful Scion [Dex], Close Quarters [Dex], Creed of Misaye, Devastating Strikes [Dex], Discretion of the Coedymwarth, Eager for Battle, Elven Accuracy [Dex], Fade Away [Dex], Forest Runner, Longsword Finesse, Moderately Armored [Dex], Old Tactics [Dex], Piercer [Dex], Revenant Blade [Dex], Second Chance [Dex], Slasher [Dex], Squat Nimbleness [Dex], Stealthy, Uncanny Accuracy, Weapon Master [Dex]", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", "m_AssetGUID": "", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfWisdom.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfWisdom.json index 0d30a0c0b6..aab7d84173 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfWisdom.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatGroupHalfWisdom.json @@ -16,7 +16,7 @@ "$type": "GuiPresentation, Assembly-CSharp", "hidden": true, "title": "Feat/&FeatGroupHalfWisdomTitle", - "description": "Aegis Touched [Wis], Apothecary [Wis], Astral Reach, Awaken the Beast [Wis], Baleful Scion [Wis], Blessed Soul [Cleric], Celestial Touched [Wis], Chef [Wis], Creed of Maraike, Elven Accuracy [Wis], Expand the Hunt, Fey Teleportation [Wis], Flame Touched [Wis], Grudge Bearer [Wis], Iridescent Touched [Wis], Peregrination Touched [Wis], Retinue Touched [Wis], Shadow Touched [Wis], Telekinetic [Wis], Toxicologist [Wis], Verdant Touched [Wis], Wise Archery, Wise Defense, Wise Precision", + "description": "Aegis Touched [Wis], Apothecary [Wis], Awaken the Beast [Wis], Baleful Scion [Wis], Blessed Soul [Cleric], Celestial Touched [Wis], Chef [Wis], Creed of Maraike, Elven Accuracy [Wis], Expand the Hunt, Fey Teleportation [Wis], Flame Touched [Wis], Grudge Bearer [Wis], Iridescent Touched [Wis], Peregrination Touched [Wis], Retinue Touched [Wis], Shadow Touched [Wis], Telekinetic [Wis], Toxicologist [Wis], Verdant Touched [Wis], Wise Archery, Wise Defense, Wise Precision", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", "m_AssetGUID": "", diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatHammerThePoint.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatHammerThePoint.json deleted file mode 100644 index 2a2e7b9a21..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatHammerThePoint.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "$type": "FeatDefinition, Assembly-CSharp", - "compatibleClassesPrerequisite": [], - "mustCastSpellsPrerequisite": false, - "compatibleRacesPrerequisite": [], - "minimalAbilityScorePrerequisite": false, - "minimalAbilityScoreValue": 13, - "minimalAbilityScoreName": "Strength", - "armorProficiencyPrerequisite": false, - "armorProficiencyCategory": "", - "hasFamilyTag": false, - "familyTag": "", - "knownFeatsPrerequisite": [], - "features": [ - "Definition:AdditionalDamageFeatHammerThePointHammerThePoint:26cad3da-5cf3-525a-b070-b8bd8a6f88fc" - ], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feat/&FeatHammerThePointTitle", - "description": "Feat/&FeatHammerThePointDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "dca565d9-a216-5f92-890d-1747c649cbfb", - "contentPack": 9999, - "name": "FeatHammerThePoint" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatSteadyAim.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatSteadyAim.json deleted file mode 100644 index 5bb78a1248..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatDefinition/FeatSteadyAim.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "$type": "FeatDefinition, Assembly-CSharp", - "compatibleClassesPrerequisite": [], - "mustCastSpellsPrerequisite": false, - "compatibleRacesPrerequisite": [], - "minimalAbilityScorePrerequisite": false, - "minimalAbilityScoreValue": 13, - "minimalAbilityScoreName": "Strength", - "armorProficiencyPrerequisite": false, - "armorProficiencyCategory": "", - "hasFamilyTag": false, - "familyTag": "", - "knownFeatsPrerequisite": [], - "features": [ - "Definition:AttributeModifierCreed_Of_Misaye:74d55f601f8ad8246b18a19766524280", - "Definition:PowerFeatSteadyAim:fdf6c521-1f01-5d34-8ad9-2c147657c79d" - ], - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feat/&FeatSteadyAimTitle", - "description": "Feat/&FeatSteadyAimDescription", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "8f954320-b56c-5ad6-8f80-b375a176c947", - "contentPack": 9999, - "name": "FeatSteadyAim" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageFeatHammerThePointHammerThePoint.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageFeatHammerThePointHammerThePoint.json deleted file mode 100644 index ac62a44f70..0000000000 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionAdditionalDamage/AdditionalDamageFeatHammerThePointHammerThePoint.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "$type": "FeatureDefinitionAdditionalDamage, Assembly-CSharp", - "notificationTag": "", - "limitedUsage": "None", - "firstTargetOnly": true, - "targetSide": "Enemy", - "otherSimilarAdditionalDamages": [], - "triggerCondition": "AlwaysActive", - "requiredProperty": "None", - "attackModeOnly": true, - "attackOnly": false, - "requiredTargetCondition": null, - "requiredTargetSenseType": "Darkvision", - "requiredTargetCreatureTag": "", - "requiredCharacterFamily": null, - "requiredSpecificSpell": null, - "requiredAncestryType": "Sorcerer", - "damageValueDetermination": "Die", - "flatBonus": 0, - "damageDieType": "D6", - "damageDiceNumber": 0, - "additionalDamageType": "SameAsBaseDamage", - "specificDamageType": "Radiant", - "ancestryTypeForDamageType": "Sorcerer", - "damageAdvancement": "None", - "diceByRankTable": [], - "familiesWithAdditionalDice": [], - "familiesDiceNumber": 1, - "ignoreCriticalDoubleDice": false, - "hasSavingThrow": false, - "savingThrowAbility": "Dexterity", - "dcComputation": "FixedValue", - "savingThrowDC": 10, - "savingThrowDCAbilityModifier": "Dexterity", - "damageSaveAffinity": "None", - "conditionOperations": [ - { - "$type": "ConditionOperationDescription, Assembly-CSharp", - "hasSavingThrow": false, - "operation": "Add", - "conditionName": "", - "conditionDefinition": "Definition:ConditionFeatHammerThePointHammerThePoint:93cd67e0-8f5f-5c97-9116-54f81a11f0ea", - "saveAffinity": "None", - "canSaveToCancel": false, - "saveOccurence": "EndOfTurn" - } - ], - "addLightSource": false, - "lightSourceForm": null, - "impactParticleReference": null, - "particlesBasedOnAncestryDamageType": false, - "ancestryType": "Sorcerer", - "acidImpactParticleReference": null, - "coldImpactParticleReference": null, - "fireImpactParticleReference": null, - "lightningImpactParticleReference": null, - "poisonImpactParticleReference": null, - "computeDescription": false, - "guiPresentation": { - "$type": "GuiPresentation, Assembly-CSharp", - "hidden": true, - "title": "Feature/&NoContentTitle", - "description": "Feature/&NoContentTitle", - "spriteReference": { - "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", - "m_AssetGUID": "", - "m_SubObjectName": null, - "m_SubObjectType": null - }, - "color": { - "$type": "UnityEngine.Color, UnityEngine.CoreModule", - "r": 1.0, - "g": 1.0, - "b": 1.0, - "a": 1.0 - }, - "symbolChar": "221E", - "sortOrder": 0, - "unusedInSolastaCOTM": false, - "usedInValleyDLC": false - }, - "contentCopyright": "UserContent", - "guid": "26cad3da-5cf3-525a-b070-b8bd8a6f88fc", - "contentPack": 9999, - "name": "AdditionalDamageFeatHammerThePointHammerThePoint" -} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityFeatSteadyAim.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityFeatSteadyAim.json index 0adfafbd13..23c445cc0e 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityFeatSteadyAim.json +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionCombatAffinity/CombatAffinityFeatSteadyAim.json @@ -35,7 +35,7 @@ "guiPresentation": { "$type": "GuiPresentation, Assembly-CSharp", "hidden": false, - "title": "Feat/&FeatSteadyAimTitle", + "title": "Feature/&PowerFeatSteadyAimTitle", "description": "Feature/&NoContentTitle", "spriteReference": { "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index f6406f2af9..bf1ee6e83b 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -10,9 +10,9 @@ KNOWN ISSUES: - Artillerist Force Ballista tiny cannon doesn't force attack DIS within 5 ft -- Chaos Bolt damage will be of wrong type under multiplayer if twinned and any bolt misses -- Lightning Arrow won't trigger custom behaviors if target dies from damage on a miss -- Guardian Aura won't trigger custom behaviors if self dies on swapped damage taken +- Chaos Bolt spell damage will be of wrong type under multiplayer if twinned and any bolt misses +- Lightning Arrow spell won't trigger custom behaviors if target dies from damage on a miss +- Oath of Altruism Guardian Aura won't trigger custom behaviors if self dies on swapped damage taken 1.5.97.19: diff --git a/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs b/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs index 8eeddd50c3..518c8e8a35 100644 --- a/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs +++ b/SolastaUnfinishedBusiness/Models/CharacterUAContext.cs @@ -1184,7 +1184,8 @@ internal static void SwitchRangerNatureShroud() .AddFeatures( FeatureDefinitionCombatAffinityBuilder .Create($"CombatAffinity{FeatSteadyAim}") - .SetGuiPresentation(FeatSteadyAim, Category.Feat, Gui.NoLocalization) + .SetGuiPresentation($"Power{FeatSteadyAim}", Category.Feature, + Gui.NoLocalization) .SetMyAttackAdvantage(AdvantageType.Advantage) .AddToDB()) .AddToDB(), diff --git a/SolastaUnfinishedBusiness/Settings/empty.xml b/SolastaUnfinishedBusiness/Settings/empty.xml index a24ed5a8ff..efcd1956ec 100644 --- a/SolastaUnfinishedBusiness/Settings/empty.xml +++ b/SolastaUnfinishedBusiness/Settings/empty.xml @@ -359,6 +359,7 @@ false false false + false false false false From 65e03b09f31344c1b3b0f7e5b1a5f320fc3afc07 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sat, 13 Jul 2024 16:49:53 -0700 Subject: [PATCH 38/91] add Sickening Radiance spell --- .../UnfinishedBusinessBlueprints/Assets.txt | 28 +- .../ConditionSickeningRadiance.json | 158 +++++++ .../ConditionSickeningRadianceMark.json | 155 +++++++ .../ProxySickeningRadiance.json | 143 ++++++ .../ConditionAffinitySickeningRadiance.json | 39 ++ .../SpellDefinition/SickeningRadiance.json | 438 ++++++++++++++++++ Documentation/Spells.md | 186 ++++---- .../Api/DatabaseHelper-RELEASE.cs | 2 + .../ChangelogHistory.txt | 10 +- SolastaUnfinishedBusiness/Displays/_ModUi.cs | 1 + .../Models/SpellsContext.cs | 1 + .../Properties/Resources.Designer.cs | 10 + .../Properties/Resources.resx | 5 + .../Resources/Spells/SickeningRadiance.png | Bin 0 -> 14022 bytes .../Spells/SpellBuildersLevel04.cs | 146 +++++- .../Translations/de/Spells/Spells04-de.txt | 4 + .../Translations/en/Spells/Spells04-en.txt | 4 + .../Translations/es/Spells/Spells04-es.txt | 4 + .../Translations/fr/Spells/Spells04-fr.txt | 4 + .../Translations/it/Spells/Spells04-it.txt | 4 + .../Translations/ja/Spells/Spells04-ja.txt | 4 + .../Translations/ko/Spells/Spells04-ko.txt | 4 + .../pt-BR/Spells/Spells04-pt-BR.txt | 4 + .../Translations/ru/Spells/Spells04-ru.txt | 4 + .../zh-CN/Spells/Spells04-zh-CN.txt | 4 + 25 files changed, 1247 insertions(+), 115 deletions(-) create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadiance.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceMark.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/EffectProxyDefinition/ProxySickeningRadiance.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinitySickeningRadiance.json create mode 100644 Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SickeningRadiance.json create mode 100644 SolastaUnfinishedBusiness/Resources/Spells/SickeningRadiance.png diff --git a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt index ae6489b085..d14cd73c49 100644 --- a/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt +++ b/Diagnostics/UnfinishedBusinessBlueprints/Assets.txt @@ -1126,6 +1126,8 @@ ConditionShelterFromEnergyDamageLightning ConditionDefinition ConditionDefinitio ConditionShelterFromEnergyDamageNecrotic ConditionDefinition ConditionDefinition 3ed7e389-052e-5f56-affb-ea8ee3c22646 ConditionShelterFromEnergyDamageRadiant ConditionDefinition ConditionDefinition b526fa38-0a7e-50ea-a5f2-41de5a744caf ConditionShelterFromEnergyDamageThunder ConditionDefinition ConditionDefinition 7ea42934-33a0-5eac-a2f2-cfe75f9dbd56 +ConditionSickeningRadiance ConditionDefinition ConditionDefinition 8e8f5489-4e47-5457-9038-7e3193e4686e +ConditionSickeningRadianceMark ConditionDefinition ConditionDefinition e7c8bace-e63a-541f-a8a1-74ef61590f5a ConditionSignatureSpells ConditionDefinition ConditionDefinition 7d490159-e05b-5c67-ab55-1763b1188d63 ConditionSkinOfRetribution ConditionDefinition ConditionDefinition 756ee728-5506-5f03-b552-b94004839697 ConditionSorcerousSorrAkkathBloodOfSorrAkkath ConditionDefinition ConditionDefinition dc2b991d-480d-56a3-8811-9dddcf7d32e5 @@ -1229,6 +1231,7 @@ ProxyPathOfTheWildMagicGrowth EffectProxyDefinition EffectProxyDefinition 231c2e ProxyPathOfTheWildMagicSummon EffectProxyDefinition EffectProxyDefinition a07f1fcc-0bce-523e-b583-83cc9fed1093 ProxyPetalStorm EffectProxyDefinition EffectProxyDefinition 0e6a068f-fadd-5c5a-8737-b2e2723d7f3f ProxyProtectThreshold EffectProxyDefinition EffectProxyDefinition 2636ab53-e62a-53c9-8104-0521b1d84ca0 +ProxySickeningRadiance EffectProxyDefinition EffectProxyDefinition 3da14e42-a91a-5895-a8a6-fd1573c65fec ProxySpellWeb EffectProxyDefinition EffectProxyDefinition 4b62aa30-af66-5c43-880a-bb4379eeba5a FeatAcrobat FeatDefinition FeatDefinition b721dd41-86b6-53da-a7a7-c844674f46b3 FeatAegisTouchedCha FeatDefinition FeatDefinition 37bb8c57-b4e5-5c13-861d-9be7cde47ea0 @@ -2143,17 +2146,13 @@ ConditionAffinityInnovationArtilleristEldritchCannon FeatureDefinitionConditionA ConditionAffinityInnovationWeaponSteelDefenderInitiative FeatureDefinitionConditionAffinity FeatureDefinition c11f32f8-ec69-5ad2-8c43-d6b2743a6640 ConditionAffinityInsaneImmunity FeatureDefinitionConditionAffinity FeatureDefinition 5520ce48-52c7-5280-ac7d-168b75bb79c3 ConditionAffinityIrresistiblePerformanceImmunity FeatureDefinitionConditionAffinity FeatureDefinition 17e4f5dd-eb34-5dcd-b769-59f4521cb60b -ConditionAffinityPathOfTheLightIlluminatedPreventInvisible FeatureDefinitionConditionAffinity FeatureDefinition 4f245846-3fab-593a-aa14-45c19f8edb84 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisible_Green_Hag FeatureDefinitionConditionAffinity FeatureDefinition 0b93e0a9-5118-5d32-9d29-bf0956b6f646 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleBase FeatureDefinitionConditionAffinity FeatureDefinition 5ca9c244-f43c-5ea2-b72b-675db2ff40f5 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleGreater FeatureDefinitionConditionAffinity FeatureDefinition 7e9e7908-f57d-57b6-8653-e3852ae86286 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleOneWithShadows FeatureDefinitionConditionAffinity FeatureDefinition cfbc0e3f-664c-5c4d-a355-16bf8aefb1e0 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleUncatchable FeatureDefinitionConditionAffinity FeatureDefinition 528128e2-1394-50ea-825e-36511027d99c +ConditionAffinityPathOfTheLightIlluminatedPrevent FeatureDefinitionConditionAffinity FeatureDefinition c815cc55-499c-5563-ac65-644765780373 ConditionAffinityPathOfTheSpiritsHonedAnimalAspectsBear FeatureDefinitionConditionAffinity FeatureDefinition 99aef076-2914-5b24-bd13-b09f4cf95bf0 ConditionAffinityPathOfTheSpiritsWolfLeadershipPack FeatureDefinitionConditionAffinity FeatureDefinition 56bca621-33a9-53f3-b952-a2c14dc55a8e ConditionAffinityRangerSurvivalistDeafenedImmunity FeatureDefinitionConditionAffinity FeatureDefinition 7d3479ef-90c8-57a1-9650-fce705a9e7da ConditionAffinityRangerWildMasterBeastCompanion FeatureDefinitionConditionAffinity FeatureDefinition 2bd6cfd4-49bf-5687-9b68-4f3765984ce2 ConditionAffinityRiftWalkerRestrainedImmunity FeatureDefinitionConditionAffinity FeatureDefinition 92cb7a89-3554-567c-a62e-f72c78cd34f1 +ConditionAffinitySickeningRadiance FeatureDefinitionConditionAffinity FeatureDefinition fc61f40d-38f7-5a41-b8fb-d6e4464a3135 CraftingAffinityInventorMagicItemAdept FeatureDefinitionCraftingAffinity FeatureDefinition 26842e0a-9c1e-5740-ad4d-871da69932b1 CustomCodeBarbarianPrimalChampion FeatureDefinition FeatureDefinition 85dac7d1-5e2a-5f02-983b-65b1905810b3 CustomFeatBowMastery FeatureDefinitionAttackModifier FeatureDefinition 212038a4-5bbf-5f46-8cc9-f64d8c5a9470 @@ -4579,17 +4578,13 @@ ConditionAffinityInnovationArtilleristEldritchCannon FeatureDefinitionConditionA ConditionAffinityInnovationWeaponSteelDefenderInitiative FeatureDefinitionConditionAffinity FeatureDefinitionAffinity c11f32f8-ec69-5ad2-8c43-d6b2743a6640 ConditionAffinityInsaneImmunity FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 5520ce48-52c7-5280-ac7d-168b75bb79c3 ConditionAffinityIrresistiblePerformanceImmunity FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 17e4f5dd-eb34-5dcd-b769-59f4521cb60b -ConditionAffinityPathOfTheLightIlluminatedPreventInvisible FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 4f245846-3fab-593a-aa14-45c19f8edb84 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisible_Green_Hag FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 0b93e0a9-5118-5d32-9d29-bf0956b6f646 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleBase FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 5ca9c244-f43c-5ea2-b72b-675db2ff40f5 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleGreater FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 7e9e7908-f57d-57b6-8653-e3852ae86286 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleOneWithShadows FeatureDefinitionConditionAffinity FeatureDefinitionAffinity cfbc0e3f-664c-5c4d-a355-16bf8aefb1e0 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleUncatchable FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 528128e2-1394-50ea-825e-36511027d99c +ConditionAffinityPathOfTheLightIlluminatedPrevent FeatureDefinitionConditionAffinity FeatureDefinitionAffinity c815cc55-499c-5563-ac65-644765780373 ConditionAffinityPathOfTheSpiritsHonedAnimalAspectsBear FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 99aef076-2914-5b24-bd13-b09f4cf95bf0 ConditionAffinityPathOfTheSpiritsWolfLeadershipPack FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 56bca621-33a9-53f3-b952-a2c14dc55a8e ConditionAffinityRangerSurvivalistDeafenedImmunity FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 7d3479ef-90c8-57a1-9650-fce705a9e7da ConditionAffinityRangerWildMasterBeastCompanion FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 2bd6cfd4-49bf-5687-9b68-4f3765984ce2 ConditionAffinityRiftWalkerRestrainedImmunity FeatureDefinitionConditionAffinity FeatureDefinitionAffinity 92cb7a89-3554-567c-a62e-f72c78cd34f1 +ConditionAffinitySickeningRadiance FeatureDefinitionConditionAffinity FeatureDefinitionAffinity fc61f40d-38f7-5a41-b8fb-d6e4464a3135 CraftingAffinityInventorMagicItemAdept FeatureDefinitionCraftingAffinity FeatureDefinitionAffinity 26842e0a-9c1e-5740-ad4d-871da69932b1 CustomFeatBowMastery FeatureDefinitionAttackModifier FeatureDefinitionAffinity 212038a4-5bbf-5f46-8cc9-f64d8c5a9470 CustomFeatCrossbowMastery FeatureDefinitionAttackModifier FeatureDefinitionAffinity a4ec8c17-b6fd-50b7-94db-fbc427328096 @@ -5210,17 +5205,13 @@ ConditionAffinityInnovationArtilleristEldritchCannon FeatureDefinitionConditionA ConditionAffinityInnovationWeaponSteelDefenderInitiative FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity c11f32f8-ec69-5ad2-8c43-d6b2743a6640 ConditionAffinityInsaneImmunity FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 5520ce48-52c7-5280-ac7d-168b75bb79c3 ConditionAffinityIrresistiblePerformanceImmunity FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 17e4f5dd-eb34-5dcd-b769-59f4521cb60b -ConditionAffinityPathOfTheLightIlluminatedPreventInvisible FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 4f245846-3fab-593a-aa14-45c19f8edb84 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisible_Green_Hag FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 0b93e0a9-5118-5d32-9d29-bf0956b6f646 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleBase FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 5ca9c244-f43c-5ea2-b72b-675db2ff40f5 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleGreater FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 7e9e7908-f57d-57b6-8653-e3852ae86286 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleOneWithShadows FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity cfbc0e3f-664c-5c4d-a355-16bf8aefb1e0 -ConditionAffinityPathOfTheLightIlluminatedPreventInvisibleUncatchable FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 528128e2-1394-50ea-825e-36511027d99c +ConditionAffinityPathOfTheLightIlluminatedPrevent FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity c815cc55-499c-5563-ac65-644765780373 ConditionAffinityPathOfTheSpiritsHonedAnimalAspectsBear FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 99aef076-2914-5b24-bd13-b09f4cf95bf0 ConditionAffinityPathOfTheSpiritsWolfLeadershipPack FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 56bca621-33a9-53f3-b952-a2c14dc55a8e ConditionAffinityRangerSurvivalistDeafenedImmunity FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 7d3479ef-90c8-57a1-9650-fce705a9e7da ConditionAffinityRangerWildMasterBeastCompanion FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 2bd6cfd4-49bf-5687-9b68-4f3765984ce2 ConditionAffinityRiftWalkerRestrainedImmunity FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity 92cb7a89-3554-567c-a62e-f72c78cd34f1 +ConditionAffinitySickeningRadiance FeatureDefinitionConditionAffinity FeatureDefinitionConditionAffinity fc61f40d-38f7-5a41-b8fb-d6e4464a3135 CraftingAffinityInventorMagicItemAdept FeatureDefinitionCraftingAffinity FeatureDefinitionCraftingAffinity 26842e0a-9c1e-5740-ad4d-871da69932b1 DamageAffinityCollegeOfLifeNecroticResistance FeatureDefinitionDamageAffinity FeatureDefinitionDamageAffinity 6905cb79-96ab-5ccd-8b13-3f772741a763 DamageAffinityCorruptingBoltDamageAcid FeatureDefinitionDamageAffinity FeatureDefinitionDamageAffinity 8b5ccfca-1d48-5ab5-853a-aa90ee381b99 @@ -12197,6 +12188,7 @@ SearingSmite SpellDefinition SpellDefinition 0a2bc8fc-9062-58d3-b7eb-8a775e5c62d ShadowBlade SpellDefinition SpellDefinition dc2aa74d-d731-50b9-81ab-ccc69d24440d Shapechange SpellDefinition SpellDefinition 92b23a62-e155-5ae0-8c2a-808403d61440 ShelterFromEnergy SpellDefinition SpellDefinition c4e00683-facd-5358-b4df-dc439587dd77 +SickeningRadiance SpellDefinition SpellDefinition ca4ad661-35e7-5913-b65d-87b87f63a03a SkinOfRetribution SpellDefinition SpellDefinition 424c953e-e984-58b1-a84f-b19bb50cdc1b SnillocSnowballStorm SpellDefinition SpellDefinition 576116cd-28a3-56c5-af47-9d247e2569dc SonicBoom SpellDefinition SpellDefinition 72b0aa11-cba8-5fcc-9f76-cab443e381ec diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadiance.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadiance.json new file mode 100644 index 0000000000..e430e68a23 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadiance.json @@ -0,0 +1,158 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Detrimental", + "features": [ + "Definition:AbilityCheckAffinityConditionExhausted:addbff861499fbc47a0c9505f58a5404", + "Definition:ConditionAffinitySickeningRadiance:fc61f40d-38f7-5a41-b8fb-d6e4464a3135" + ], + "allowMultipleInstances": false, + "silentWhenAdded": false, + "silentWhenRemoved": false, + "silentWhenRefreshed": true, + "terminateWhenRemoved": false, + "specialDuration": true, + "durationType": "Minute", + "durationParameterDie": "D1", + "durationParameter": 10, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": true, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Condition/&ConditionSickeningRadianceTitle", + "description": "Condition/&ConditionSickeningRadianceDescription", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "972ed4fda488202498a29dc8a698c8e8", + "m_SubObjectName": "ConditionNegative", + "m_SubObjectType": "UnityEngine.Sprite, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "8e8f5489-4e47-5457-9038-7e3193e4686e", + "contentPack": 9999, + "name": "ConditionSickeningRadiance" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceMark.json b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceMark.json new file mode 100644 index 0000000000..58b8837d4d --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/ConditionDefinition/ConditionSickeningRadianceMark.json @@ -0,0 +1,155 @@ +{ + "$type": "ConditionDefinition, Assembly-CSharp", + "inDungeonEditor": false, + "parentCondition": null, + "conditionType": "Beneficial", + "features": [], + "allowMultipleInstances": false, + "silentWhenAdded": true, + "silentWhenRemoved": true, + "silentWhenRefreshed": false, + "terminateWhenRemoved": false, + "specialDuration": false, + "durationType": "Hour", + "durationParameterDie": "D4", + "durationParameter": 1, + "forceTurnOccurence": false, + "turnOccurence": "EndOfTurn", + "specialInterruptions": [], + "interruptionRequiresSavingThrow": false, + "interruptionSavingThrowComputationMethod": "SaveOverride", + "interruptionSavingThrowAbility": "", + "interruptionDamageThreshold": 0, + "keepConditionIfSavingThrowSucceeds": false, + "interruptionSavingThrowAffinity": "None", + "conditionTags": [], + "recurrentEffectForms": [], + "cancellingConditions": [], + "additionalDamageWhenHit": false, + "additionalDamageTypeDetermination": "Specific", + "additionalDamageType": "", + "additionalDamageQuantity": "AbilityBonus", + "additionalDamageDieType": "D1", + "additionalDamageDieNumber": 1, + "additionalConditionWhenHit": false, + "additionalCondition": null, + "additionalConditionDurationType": "Round", + "additionalConditionDurationParameter": 1, + "additionalConditionTurnOccurenceType": "StartOfTurn", + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "recurrentEffectParticleReference": null, + "characterShaderReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "particlesBasedOnAncestryDamageType": false, + "ancestryType": "Sorcerer", + "acidParticleParameters": null, + "coldParticleParameters": null, + "fireParticleParameters": null, + "lightningParticleParameters": null, + "poisonParticleParameters": null, + "overrideCharacterShaderColors": false, + "firstCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "secondCharacterShaderColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "timeToWaitBeforeApplyingShader": 0.5, + "timeToWaitBeforeRemovingShader": 0.5, + "possessive": false, + "amountOrigin": "None", + "baseAmount": 0, + "additiveAmount": false, + "sourceAbilityBonusMinValue": 1, + "subsequentOnRemoval": null, + "subsequentHasSavingThrow": false, + "subsequentSavingThrowAbilityScore": "Constitution", + "subsequentVariableForDC": "FrenzyExhaustionDC", + "subsequentDCIncrease": 5, + "effectFormsOnRemoved": [], + "forceBehavior": false, + "addBehavior": false, + "fearSource": false, + "battlePackage": null, + "explorationPackage": null, + "removedFromTheGame": false, + "permanentlyRemovedIfExtraPlanar": false, + "refundReceivedDamageWhenRemoved": false, + "followSourcePosition": false, + "disolveCharacterOnDeath": false, + "disolveParameters": { + "$type": "GraphicsCharacterDefinitions+DisolveParameters, Assembly-CSharp", + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "colorWidth": 0.0, + "noiseScale": 5.0, + "hueScale": 0.0, + "vertexOffset": 0.0, + "curve": { + "$type": "UnityEngine.AnimationCurve, UnityEngine.CoreModule" + }, + "startAfterDeathAnimation": false, + "duration": 0.0 + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&NoContentTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "e7c8bace-e63a-541f-a8a1-74ef61590f5a", + "contentPack": 9999, + "name": "ConditionSickeningRadianceMark" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/EffectProxyDefinition/ProxySickeningRadiance.json b/Diagnostics/UnfinishedBusinessBlueprints/EffectProxyDefinition/ProxySickeningRadiance.json new file mode 100644 index 0000000000..61aaa9ce78 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/EffectProxyDefinition/ProxySickeningRadiance.json @@ -0,0 +1,143 @@ +{ + "$type": "EffectProxyDefinition, Assembly-CSharp", + "canMove": false, + "canRotate": false, + "canMoveOnCharacters": false, + "canAttack": false, + "canTriggerPower": false, + "autoTerminateOnTriggerPower": false, + "incrementalDamageDice": 0, + "actionId": "NoAction", + "freeActionId": "NoAction", + "attackMethod": "CasterSpellAbility", + "firstAttackIsFree": false, + "constrainedToSpellArea": false, + "damageDie": "D8", + "damageDieNum": 1, + "damageType": "DamageRadiant", + "addAbilityToDamage": false, + "attackPower": null, + "impactsPlacement": false, + "additionalFeatures": [], + "attackParticle": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "attackImpactParticle": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "addLightSource": true, + "lightSourceForm": { + "$type": "LightSourceForm, Assembly-CSharp", + "lightSourceType": "Basic", + "brightRange": 0, + "dimAdditionalRange": 6, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.5, + "g": 0.7, + "b": 0.3, + "a": 1.0 + }, + "graphicsPrefabReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "7ab0099a76371324799a14a592402456", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "applyToSelf": false, + "forceOnSelf": false + }, + "lightSourceOffset": { + "$type": "UnityEngine.Vector3, UnityEngine.CoreModule", + "x": 0.0, + "y": 0.5, + "z": 0.0 + }, + "spellImmunityFromOutside": false, + "maxSpellLevelImmunity": 1, + "hasPresentation": true, + "prefabReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "5ba593b4783994b4d8721ce359a5f729", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "isEmptyPresentation": false, + "modelScale": 1.0, + "showWorldLocationFeedbacks": false, + "hasPortrait": false, + "portraitSpriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "startEvent": { + "$type": "AK.Wwise.Event, AK.Wwise.Unity.API.WwiseTypes", + "WwiseObjectReference": null, + "idInternal": 0, + "valueGuidInternal": { + "$type": "System.Byte[], mscorlib", + "$value": "" + } + }, + "stopEvent": { + "$type": "AK.Wwise.Event, AK.Wwise.Unity.API.WwiseTypes", + "WwiseObjectReference": null, + "idInternal": 0, + "valueGuidInternal": { + "$type": "System.Byte[], mscorlib", + "$value": "" + } + }, + "soundEffectOnHitDescription": { + "$type": "SoundEffectOnHitDescription, Assembly-CSharp", + "switchOnHit": { + "$type": "AK.Wwise.Switch, AK.Wwise.Unity.API.WwiseTypes", + "WwiseObjectReference": null, + "groupIdInternal": 0, + "groupGuidInternal": { + "$type": "System.Byte[], mscorlib", + "$value": "" + }, + "idInternal": 0, + "valueGuidInternal": { + "$type": "System.Byte[], mscorlib", + "$value": "" + } + } + }, + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Spell/&SickeningRadianceTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "3da14e42-a91a-5895-a8a6-fd1573c65fec", + "contentPack": 9999, + "name": "ProxySickeningRadiance" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinitySickeningRadiance.json b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinitySickeningRadiance.json new file mode 100644 index 0000000000..b39eded101 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/FeatureDefinitionConditionAffinity/ConditionAffinitySickeningRadiance.json @@ -0,0 +1,39 @@ +{ + "$type": "FeatureDefinitionConditionAffinity, Assembly-CSharp", + "conditionType": "ConditionInvisibleBase", + "savingThrowAdvantageType": "None", + "savingThrowModifier": 0, + "conditionAffinityType": "Immunity", + "silent": false, + "rerollSaveWhenGained": false, + "rerollAdvantageType": "None", + "myselfFamilyRestrictions": [], + "otherCharacterFamilyRestrictions": [], + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": true, + "title": "Feature/&NoContentTitle", + "description": "Feature/&NoContentTitle", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "fc61f40d-38f7-5a41-b8fb-d6e4464a3135", + "contentPack": 9999, + "name": "ConditionAffinitySickeningRadiance" +} \ No newline at end of file diff --git a/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SickeningRadiance.json b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SickeningRadiance.json new file mode 100644 index 0000000000..1f7b86ee61 --- /dev/null +++ b/Diagnostics/UnfinishedBusinessBlueprints/SpellDefinition/SickeningRadiance.json @@ -0,0 +1,438 @@ +{ + "$type": "SpellDefinition, Assembly-CSharp", + "spellsBundle": false, + "subspellsList": [], + "compactSubspellsTooltip": false, + "implemented": true, + "schoolOfMagic": "SchoolEvocation", + "spellLevel": 4, + "ritual": false, + "uniqueInstance": false, + "castingTime": "Action", + "reactionContext": "None", + "ritualCastingTime": "Action", + "requiresConcentration": true, + "effectDescription": { + "$type": "EffectDescription, Assembly-CSharp", + "rangeType": "Distance", + "rangeParameter": 24, + "halfDamageOnAMiss": false, + "hitAffinitiesByTargetTag": [], + "targetType": "Sphere", + "itemSelectionType": "None", + "targetParameter": 6, + "targetParameter2": 2, + "emissiveBorder": "None", + "emissiveParameter": 1, + "requiresTargetProximity": false, + "targetProximityDistance": 6, + "targetExcludeCaster": false, + "canBePlacedOnCharacter": true, + "affectOnlyGround": false, + "targetFilteringMethod": "CharacterOnly", + "targetFilteringTag": "No", + "requiresVisibilityForPosition": true, + "inviteOptionalAlly": false, + "slotTypes": [], + "recurrentEffect": "OnTurnStart, OnEnter", + "retargetAfterDeath": false, + "retargetActionType": "Bonus", + "poolFilterDiceNumber": 5, + "poolFilterDieType": "D8", + "trapRangeType": "Triggerer", + "targetConditionName": "", + "targetConditionAsset": null, + "targetSide": "All", + "durationType": "Minute", + "durationParameter": 10, + "endOfEffect": "EndOfTurn", + "hasSavingThrow": true, + "disableSavingThrowOnAllies": false, + "savingThrowAbility": "Constitution", + "ignoreCover": true, + "grantedConditionOnSave": null, + "rollSaveOnlyIfRelevantForms": false, + "hasShoveRoll": false, + "createdByCharacter": true, + "difficultyClassComputation": "SpellCastingFeature", + "savingThrowDifficultyAbility": "Wisdom", + "fixedSavingThrowDifficultyClass": 10, + "savingThrowAffinitiesBySense": [], + "savingThrowAffinitiesByFamily": [], + "damageAffinitiesByFamily": [], + "advantageForEnemies": false, + "canBeDispersed": false, + "hasVelocity": false, + "velocityCellsPerRound": 2, + "velocityType": "AwayFromSourceOriginalPosition", + "restrictedCreatureFamilies": [], + "immuneCreatureFamilies": [], + "restrictedCharacterSizes": [], + "hasLimitedEffectPool": false, + "effectPoolAmount": 60, + "effectApplication": "All", + "effectFormFilters": [], + "effectForms": [ + { + "$type": "EffectForm, Assembly-CSharp", + "formType": "Damage", + "addBonusMode": "None", + "applyLevel": "No", + "levelType": "ClassLevel", + "levelMultiplier": 1, + "diceByLevelTable": [], + "createdByCharacter": true, + "createdByCondition": false, + "hasSavingThrow": true, + "savingThrowAffinity": "Negates", + "dcModifier": 0, + "canSaveToCancel": false, + "saveOccurence": "EndOfTurn", + "damageForm": { + "$type": "DamageForm, Assembly-CSharp", + "versatile": false, + "diceNumber": 4, + "dieType": "D10", + "overrideWithBardicInspirationDie": false, + "versatileDieType": "D1", + "bonusDamage": 0, + "damageType": "DamageRadiant", + "ancestryType": "Sorcerer", + "healFromInflictedDamage": "Never", + "hitPointsFloor": 0, + "forceKillOnZeroHp": false, + "specialDeathCondition": null, + "ignoreFlyingCharacters": false, + "ignoreCriticalDoubleDice": false + }, + "hasFilterId": false, + "filterId": 0 + }, + { + "$type": "EffectForm, Assembly-CSharp", + "formType": "Condition", + "addBonusMode": "None", + "applyLevel": "No", + "levelType": "ClassLevel", + "levelMultiplier": 1, + "diceByLevelTable": [], + "createdByCharacter": true, + "createdByCondition": false, + "hasSavingThrow": true, + "savingThrowAffinity": "Negates", + "dcModifier": 0, + "canSaveToCancel": false, + "saveOccurence": "EndOfTurn", + "conditionForm": { + "$type": "ConditionForm, Assembly-CSharp", + "conditionDefinitionName": "ConditionSickeningRadiance", + "conditionDefinition": "Definition:ConditionSickeningRadiance:8e8f5489-4e47-5457-9038-7e3193e4686e", + "operation": "Add", + "conditionsList": [], + "applyToSelf": false, + "forceOnSelf": false + }, + "hasFilterId": false, + "filterId": 0 + }, + { + "$type": "EffectForm, Assembly-CSharp", + "formType": "Summon", + "addBonusMode": "None", + "applyLevel": "No", + "levelType": "ClassLevel", + "levelMultiplier": 1, + "diceByLevelTable": [], + "createdByCharacter": true, + "createdByCondition": false, + "hasSavingThrow": false, + "savingThrowAffinity": "None", + "dcModifier": 0, + "canSaveToCancel": false, + "saveOccurence": "EndOfTurn", + "summonForm": { + "$type": "SummonForm, Assembly-CSharp", + "summonType": "EffectProxy", + "itemDefinition": null, + "trackItem": false, + "monsterDefinitionName": "", + "number": 0, + "conditionDefinition": null, + "persistOnConcentrationLoss": true, + "decisionPackage": null, + "effectProxyDefinitionName": "ProxySickeningRadiance" + }, + "hasFilterId": false, + "filterId": 0 + }, + { + "$type": "EffectForm, Assembly-CSharp", + "formType": "Condition", + "addBonusMode": "None", + "applyLevel": "No", + "levelType": "ClassLevel", + "levelMultiplier": 1, + "diceByLevelTable": [], + "createdByCharacter": true, + "createdByCondition": false, + "hasSavingThrow": false, + "savingThrowAffinity": "None", + "dcModifier": 0, + "canSaveToCancel": false, + "saveOccurence": "EndOfTurn", + "conditionForm": { + "$type": "ConditionForm, Assembly-CSharp", + "conditionDefinitionName": "ConditionSickeningRadianceMark", + "conditionDefinition": "Definition:ConditionSickeningRadianceMark:e7c8bace-e63a-541f-a8a1-74ef61590f5a", + "operation": "Add", + "conditionsList": [], + "applyToSelf": true, + "forceOnSelf": true + }, + "hasFilterId": false, + "filterId": 0 + } + ], + "specialFormsDescription": "", + "effectAdvancement": { + "$type": "EffectAdvancement, Assembly-CSharp", + "effectIncrementMethod": "None", + "incrementMultiplier": 1, + "additionalTargetsPerIncrement": 0, + "additionalSubtargetsPerIncrement": 0, + "additionalDicePerIncrement": 0, + "additionalSpellLevelPerIncrement": 0, + "additionalSummonsPerIncrement": 0, + "additionalHPPerIncrement": 0, + "additionalTempHPPerIncrement": 0, + "additionalTargetCellsPerIncrement": 0, + "additionalItemBonus": 0, + "additionalWeaponDie": 0, + "alteredDuration": "None" + }, + "speedType": "Instant", + "speedParameter": 10.0, + "offsetImpactTimeBasedOnDistance": false, + "offsetImpactTimeBasedOnDistanceFactor": 0.1, + "offsetImpactTimePerTarget": 0.0, + "effectParticleParameters": { + "$type": "EffectParticleParameters, Assembly-CSharp", + "casterParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "05c3d612ff8259942a4747346716c95c", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "casterSelfParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "casterQuickSpellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "targetParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "effectParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "effectSubTargetParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "zoneParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "beforeImpactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "impactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectImpactParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectCellEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "activeEffectSurfaceParticlePerIndex": "", + "activeEffectSurfaceParticlePerIndexCount": 0, + "emissiveBorderCellStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderCellParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderCellEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "emissiveBorderSurfaceEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionStartParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "conditionEndParticleReference": { + "$type": "UnityEngine.AddressableAssets.AssetReference, Unity.Addressables", + "m_AssetGUID": "", + "m_SubObjectName": "", + "m_SubObjectType": "" + }, + "forceApplyZoneParticle": false, + "applyEmissionColorOnWeapons": false, + "emissionColor": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 0.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "emissionColorFadeInDuration": 0.0, + "emissionColorFadeOutDuration": 0.0 + }, + "effectAIParameters": { + "$type": "EffectAIParameters, Assembly-CSharp", + "aoeScoreMultiplier": 1.0, + "cooldownForCaster": 0, + "cooldownForBattle": 0, + "sortingScoreMultiplier": 1.0, + "dynamicCooldown": false + }, + "animationMagicEffect": "Animation0", + "lightCounterDispellsEffect": false, + "hideSavingThrowAnimation": false + }, + "aiParameters": { + "$type": "SpellAIParameters, Assembly-CSharp", + "learnPriority": "Low", + "preparePriority": "Low" + }, + "concentrationAction": "None", + "verboseComponent": true, + "somaticComponent": true, + "materialComponentType": "Mundane", + "specificMaterialComponentTag": "Diamond", + "specificMaterialComponentCostGp": 100, + "specificMaterialComponentConsumed": true, + "terminateOnItemUnequip": false, + "displayConditionDuration": false, + "vocalSpellSemeType": "Attack", + "guiPresentation": { + "$type": "GuiPresentation, Assembly-CSharp", + "hidden": false, + "title": "Spell/&SickeningRadianceTitle", + "description": "Spell/&SickeningRadianceDescription", + "spriteReference": { + "$type": "UnityEngine.AddressableAssets.AssetReferenceSprite, Unity.Addressables", + "m_AssetGUID": "09f39768-c026-56c8-95ce-976198d8a35e", + "m_SubObjectName": null, + "m_SubObjectType": null + }, + "color": { + "$type": "UnityEngine.Color, UnityEngine.CoreModule", + "r": 1.0, + "g": 1.0, + "b": 1.0, + "a": 1.0 + }, + "symbolChar": "221E", + "sortOrder": 0, + "unusedInSolastaCOTM": false, + "usedInValleyDLC": false + }, + "contentCopyright": "UserContent", + "guid": "ca4ad661-35e7-5913-b65d-87b87f63a03a", + "contentPack": 9999, + "name": "SickeningRadiance" +} \ No newline at end of file diff --git a/Documentation/Spells.md b/Documentation/Spells.md index 04183f3fb6..cb99567775 100644 --- a/Documentation/Spells.md +++ b/Documentation/Spells.md @@ -940,147 +940,151 @@ You unleash a debilitating wave of mental power in a 30-foot cone. Each creature You unleash a shimmering lance of psychic power from your forehead at a creature that you can see within range. It must succeed on an Intelligence saving throw or take 7d6 psychic damage and be incapacitated until the end of your next turn. On a successful save, the creature takes half damage and isn't incapacitated. At Higher Levels. When you cast this spell using a spell slot of 4th level or higher, the damage increases by 1d6 for each slot level above 4th. -# 229. - *Staggering Smite* © (V) level 4 Evocation [Concentration] [UB] +# 229. - *Sickening Radiance* © (V,S) level 4 Evocation [Concentration] [UB] + +Dim, greenish light spreads within a 30-foot-radius sphere centered on a point you choose within range. The light spreads around corners, and it lasts until the spell ends. When a creature moves into the spell's area for the first time on a turn or starts its turn there, that creature must succeed on a Constitution saving throw or take 4d10 radiant damage, and it suffers one level of exhaustion and emits a dim, greenish light in a 5-foot radius. This light makes it impossible for the creature to benefit from being invisible. The light and any levels of exhaustion caused by this spell go away when the spell ends. + +# 230. - *Staggering Smite* © (V) level 4 Evocation [Concentration] [UB] The next time you hit a creature with a weapon attack during this spell's duration, your weapon pierces both body and mind, and the attack deals an extra 4d6 psychic damage to the target. The target must make a Wisdom saving throw. On a failed save, it has disadvantage on attack rolls and ability checks, and can't take reactions, until the end of its next turn. -# 230. - Stoneskin (M,V,S) level 4 Abjuration [Concentration] [SOL] +# 231. - Stoneskin (M,V,S) level 4 Abjuration [Concentration] [SOL] Grants resistance to non-magical bludgeoning, slashing, and piercing damage. -# 231. - *Vitriolic Sphere* © (V,S) level 4 Evocation [UB] +# 232. - *Vitriolic Sphere* © (V,S) level 4 Evocation [UB] You point at a place within range, and a glowing 1-foot ball of emerald acid streaks there and explodes in a 20-foot radius. Each creature in that area must make a Dexterity saving throw. On a failed save, a creature takes 10d4 acid damage and 5d4 acid damage at the end of its next turn. On a successful save, a creature takes half the initial damage and no damage at the end of its next turn. When you cast this spell using a spell slot of 5th level or higher, the initial damage increases by 2d4 for each slot level above 4th. -# 232. - Wall of Fire (V,S) level 4 Evocation [Concentration] [SOL] +# 233. - Wall of Fire (V,S) level 4 Evocation [Concentration] [SOL] Create a burning wall that injures creatures in or next to it. -# 233. - *Banishing Smite* © (V) level 5 Abjuration [Concentration] [UB] +# 234. - *Banishing Smite* © (V) level 5 Abjuration [Concentration] [UB] Your next hit deals additional 5d10 force damage with your weapon. Additionally, if this attack reduces the target to 50 hit points of fewer, you banish it for 1 min. -# 234. - *Circle of Power* © (V) level 5 Abjuration [Concentration] [UB] +# 235. - *Circle of Power* © (V) level 5 Abjuration [Concentration] [UB] Divine energy radiates from you, distorting and diffusing magical energy within 30 feet of you. Until the spell ends, the sphere moves with you, centered on you. For the duration, each friendly creature in the area, including you, has advantage on saving throws against spells and other magical effects. Additionally, when an affected creature succeeds on a saving throw made against a spell or magical effect that allows it to make a saving throw to take only half damage, it instead takes no damage if it succeeds on the saving throws. -# 235. - Cloudkill (V,S) level 5 Conjuration [Concentration] [SOL] +# 236. - Cloudkill (V,S) level 5 Conjuration [Concentration] [SOL] Creates an obscuring and poisonous cloud. The cloud moves every round. -# 236. - Cone of Cold (V,S) level 5 Evocation [SOL] +# 237. - Cone of Cold (V,S) level 5 Evocation [SOL] Inflicts massive cold damage in the cone of effect. -# 237. - Conjure Elemental (V,S) level 5 Conjuration [Concentration] [SOL] +# 238. - Conjure Elemental (V,S) level 5 Conjuration [Concentration] [SOL] Conjures an elemental of the chosen element that fights alongside you. If you lose concentration, the elemental remains and becomes hostile. -# 238. - Contagion (V,S) level 5 Necromancy [SOL] +# 239. - Contagion (V,S) level 5 Necromancy [SOL] Hit a creature to inflict a disease from the options. -# 239. - *Dawn* © (V,S) level 5 Evocation [Concentration] [UB] +# 240. - *Dawn* © (V,S) level 5 Evocation [Concentration] [UB] The light of dawn shines down on a location you specify within range. Until the spell ends, a 30-foot-radius, 40-foot-high cylinder of bright light glimmers there. This light is sunlight. When the cylinder appears, each creature in it must make a Constitution saving throw, taking 4d10 radiant damage on a failed save, or half as much damage on a successful one. A creature must also make this saving throw whenever it ends its turn in the cylinder. If you're within 60 feet of the cylinder, you can move it up to 60 feet as a bonus action on your turn. -# 240. - *Destructive Wave* © (V) level 5 Evocation [UB] +# 241. - *Destructive Wave* © (V) level 5 Evocation [UB] You strike the ground, creating a burst of divine energy that ripples outward from you. Each creature you choose within 30 feet of you must succeed on a Constitution saving throw or take 5d6 thunder damage, as well as 5d6 radiant or necrotic damage, and be knocked prone. A creature that succeeds on its saving throw takes half as much damage and isn't knocked prone. -# 241. - Dispel Evil and Good (V,S) level 5 Abjuration [Concentration] [SOL] +# 242. - Dispel Evil and Good (V,S) level 5 Abjuration [Concentration] [SOL] Celestial, elementals, feys, fiends, and undead have disadvantage on attacks against you. This spell also allows you to cancel hostile enchantments or dismiss extraplanar creatures hit by your attacks once. -# 242. - Dominate Person (V,S) level 5 Enchantment [Concentration] [SOL] +# 243. - Dominate Person (V,S) level 5 Enchantment [Concentration] [SOL] Grants you control over an enemy creature. -# 243. - *Far Step* © (V) level 5 Conjuration [Concentration] [UB] +# 244. - *Far Step* © (V) level 5 Conjuration [Concentration] [UB] You teleport up to 60 ft to an unoccupied space you can see. On each of your turns before the spell ends, you can use a bonus action to teleport in this way again. -# 244. - Flame Strike (V,S) level 5 Evocation [SOL] +# 245. - Flame Strike (V,S) level 5 Evocation [SOL] Conjures a burning column of fire and radiance affecting all creatures inside. -# 245. - Greater Restoration (V,S) level 5 Abjuration [SOL] +# 246. - Greater Restoration (V,S) level 5 Abjuration [SOL] Removes one detrimental condition, such as a charm or curse, or an effect that reduces an ability score or hit points. -# 246. - Hold Monster (V,S) level 5 Enchantment [Concentration] [SOL] +# 247. - Hold Monster (V,S) level 5 Enchantment [Concentration] [SOL] Paralyzes a creature unless it succeeds a WIS saving throw. No effect on undead. -# 247. - *Immolation* © (V) level 5 Evocation [Concentration] [UB] +# 248. - *Immolation* © (V) level 5 Evocation [Concentration] [UB] Flames wreathe one creature you can see within range. The target must make a Dexterity saving throw. It takes 8d6 fire damage on a failed save, or half as much damage on a successful one. On a failed save, the target also burns for the spell's duration. The burning target sheds bright light in a 30-foot radius and dim light for an additional 30 feet and takes 8d6 fire damage at the start of each of its turns. -# 248. - Insect Plague (V,S) level 5 Conjuration [Concentration] [SOL] +# 249. - Insect Plague (V,S) level 5 Conjuration [Concentration] [SOL] Summons a sphere of biting insects. -# 249. - Mantle of Thorns (V,S) level 5 Transmutation [Concentration] [UB] +# 250. - Mantle of Thorns (V,S) level 5 Transmutation [Concentration] [UB] Surround yourself with an aura of thorns. Those that start or walk through take 2d8 piercing damage. This damage scales at higher levels by 1d8 per slot. -# 250. - Mass Cure Wounds (V,S) level 5 Evocation [SOL] +# 251. - Mass Cure Wounds (V,S) level 5 Evocation [SOL] Heals up to 6 creatures. -# 251. - Mind Twist (V,S) level 5 Enchantment [SOL] +# 252. - Mind Twist (V,S) level 5 Enchantment [SOL] Causes massive psychic damage to all creatures around you, and incapacitates them if they fail their INT saving throw. -# 252. - Raise Dead (M,V,S) level 5 Necromancy [SOL] +# 253. - Raise Dead (M,V,S) level 5 Necromancy [SOL] Brings one creature back to life, up to 10 days after death. -# 253. - *Skill Empowerment* © (V,S) level 5 Divination [UB] +# 254. - *Skill Empowerment* © (V,S) level 5 Divination [UB] Your magic deepens a creature's understanding of its own talent. You touch one willing creature and give it expertise in one skill of your choice; until the spell ends, the creature doubles its proficiency bonus for ability checks it makes that use the chosen skill. For 1 hour, you have proficiency in the chosen skill. The spell ends early if you cast it again. You must choose a skill in which the target is proficient and that isn't already benefiting from expertise. -# 254. - Sonic Boom (V,S) level 5 Evocation [UB] +# 255. - Sonic Boom (V,S) level 5 Evocation [UB] A small orb the same color as the balloon used appears at a point you choose within range then expands with a loud crack into an explosion of force. Each creature in a 30-foot radius must make a Strength saving throw. A target is pushed up to 30 feet away from the center and dealt 6d8 thunder damage on a failed save, or half as much damage and no movement on a successful one. -# 255. - *Steel Wind Strike* © (M,S) level 5 Conjuration [UB] +# 256. - *Steel Wind Strike* © (M,S) level 5 Conjuration [UB] You flourish the weapon used in the casting and then vanish to strike like the wind. Choose up to five creatures you can see within range. Make a melee spell attack against each target. On a hit, a target takes 6d10 force damage. You can then teleport to an unoccupied space you can see within 5 feet of one of the targets you hit or missed. -# 256. - *Synaptic Static* © (V) level 5 Evocation [UB] +# 257. - *Synaptic Static* © (V) level 5 Evocation [UB] You choose a point within range and cause psychic energy to explode there. Each creature in a 20-foot-radius sphere centered on that point must make an Intelligence saving throw. A target takes 8d6 psychic damage on a failed save, or half as much damage on a successful After a failed save, a target has muddled thoughts for 1 minute. During that time, it rolls a d6 and subtracts the number rolled from all its attack rolls and ability checks. The target can make an Intelligence saving throw at the end of each of its turns, ending the effect on itself on a success. -# 257. - *Telekinesis* © (V,S) level 5 Transmutation [Concentration] [UB] +# 258. - *Telekinesis* © (V,S) level 5 Transmutation [Concentration] [UB] You can try to move a Huge or smaller creature. Make an ability check with your spellcasting ability contested by the creature's Strength check. If you win the contest, you move the creature up to 30 feet in any direction, but not beyond the range of this spell. Until the end of your next turn, the creature is restrained in your telekinetic grip. On subsequent rounds, you can use your action to attempt to maintain your telekinetic grip on the creature by repeating the contest, or target a new creature, ending the restrained effect on the previously affected creature. -# 258. - Blade Barrier (V,S) level 6 Evocation [Concentration] [SOL] +# 259. - Blade Barrier (V,S) level 6 Evocation [Concentration] [SOL] Conjures a wall of razor sharp blades which causes 6d10 slashing damage to anyone crossing it -# 259. - Chain Lightning (V,S) level 6 Evocation [SOL] +# 260. - Chain Lightning (V,S) level 6 Evocation [SOL] Target a creature with lightning, which can arc to 3 other targets within 6 cells. -# 260. - Circle of Death (M,V,S) level 6 Necromancy [SOL] +# 261. - Circle of Death (M,V,S) level 6 Necromancy [SOL] A sphere of negative energy causes Necrotic damage from a point you choose -# 261. - Conjure Fey (V,S) level 6 Conjuration [Concentration] [SOL] +# 262. - Conjure Fey (V,S) level 6 Conjuration [Concentration] [SOL] Conjures a fey creature of challenge rating 1 to 6 to fight alongside you. If you lose concentration, the creature stays but becomes hostile. -# 262. - Disintegrate (V,S) level 6 Transmutation [SOL] +# 263. - Disintegrate (V,S) level 6 Transmutation [SOL] Causes massive force damage on the target, which can be disintegrated if reduced to 0 hit points -# 263. - Eyebite (V,S) level 6 Necromancy [Concentration] [SOL] +# 264. - Eyebite (V,S) level 6 Necromancy [Concentration] [SOL] Your eyes gain a specific property which can target a creature each turn -# 264. - *Fizban's Platinum Shield* © (M,V,S) level 6 Abjuration [Concentration] [UB] +# 265. - *Fizban's Platinum Shield* © (M,V,S) level 6 Abjuration [Concentration] [UB] You create a field of silvery light that surrounds a creature of your choice within range. The field sheds dim light out to 5 feet. While surrounded by the field, a creature gains the following benefits: • The creature has half cover. @@ -1088,59 +1092,59 @@ You create a field of silvery light that surrounds a creature of your choice wit • If the creature is subjected to an effect that allows it to make a Dexterity saving throw to take only half damage, the creature instead takes no damage if it succeeds on the saving throw, and only half damage if it fails. As a bonus action on subsequent turns, you can move the field to another creature within 60 feet of the field. -# 265. - Flash Freeze (V,S) level 6 Evocation [UB] +# 266. - Flash Freeze (V,S) level 6 Evocation [UB] You attempt to encase a creature you can see within range in a prison of solid ice. The target must make a Dexterity saving throw. On a failed save, the target takes 10d6 cold damage and becomes restrained in layers of thick ice. On a successful save, the target takes half as much damage and is not restrained. The spell can only be used on creatures up to large size. To break out, the restrained target can make a Strength check as an action against your spell save DC. On success, the target escapes and is no longer restrained. When you cast this spell using a spell slot of 7th level or higher, the cold damage increases by 2d6 for each slot level above 6th. -# 266. - Freezing Sphere (V,S) level 6 Evocation [SOL] +# 267. - Freezing Sphere (V,S) level 6 Evocation [SOL] Toss a huge ball of cold energy that explodes on impact -# 267. - Globe Of Invulnerability (V,S) level 6 Abjuration [Concentration] [SOL] +# 268. - Globe Of Invulnerability (V,S) level 6 Abjuration [Concentration] [SOL] A sphere surrounding you prevents any spell up to 5th level to affect anyone inside it. -# 268. - Harm (V,S) level 6 Necromancy [SOL] +# 269. - Harm (V,S) level 6 Necromancy [SOL] Inflicts devastating necrotic damage and reduces the maximum hit points accordingly. Cannot drop the target below 1 hit points -# 269. - Heal (V,S) level 6 Evocation [SOL] +# 270. - Heal (V,S) level 6 Evocation [SOL] Heals 70 hit points and also removes blindness and diseases -# 270. - Heroes Feast (M,V,S) level 6 Conjuration [SOL] +# 271. - Heroes Feast (M,V,S) level 6 Conjuration [SOL] Summons a feast which cures most ailments and grants immunity to poisonand being frightened, WIS save advantage, and increased maximum hitpoints -# 271. - Hilarity (V) level 6 Enchantment [Concentration] [SOL] +# 272. - Hilarity (V) level 6 Enchantment [Concentration] [SOL] Choose one target. They fall down laughing, becoming prone and incapacitated, and take psychic damage until they save at the end of one of their turns, or until the spell ends. -# 272. - Poison Wave (M,V,S) level 6 Evocation [UB] +# 273. - Poison Wave (M,V,S) level 6 Evocation [UB] A poisonous wave erupts from you, engulfing those close by. Each creature within the spell's radius must make a Constitution saving throw, taking 6d10 poison damage on a failure, or half as much damage on a successful one. A creature who fails their saving throw is also poisoned for 1 minute, and can repeat the saving throw at the end of each of its turn. When you cast this spell using a slot of 7th level or higher, the damage increases by 1d10 for each slot level above 6th. -# 273. - Ring of Blades (M,V,S) level 6 Conjuration [Concentration] [UB] +# 274. - Ring of Blades (M,V,S) level 6 Conjuration [Concentration] [UB] You raise both hands as you evoke six transparent blades around you as a bonus action. When you cast this spell, and as a bonus action on each subsequent turn, you can throw one of these blades at a creature within 60 feet from you. Make a ranged spell attack. On a hit, the target takes 4d10 force damage. When you cast this spell using a spell slot of 7th level or higher, the damage of each blade increases by 1d10 for each slot level above 6th. -# 274. - *Scatter* © (V) level 6 Conjuration [UB] +# 275. - *Scatter* © (V) level 6 Conjuration [UB] The air quivers around up to five creatures of your choice that you can see within range. An unwilling creature must succeed on a Wisdom saving throw to resist this spell. You teleport each affected target to an unoccupied space that you can see within 120 feet of you. That space must be on the ground or on a floor. -# 275. - Shelter from Energy (V,S) level 6 Abjuration [UB] +# 276. - Shelter from Energy (V,S) level 6 Abjuration [UB] Choose one of the following damage types: acid, cold, fire, lightning, necrotic, radiant, or thunder, and then choose up to six willing creatures that you can see within range. For 1 hour, targets have resistance to that damage type. When you cast this spell using a spell slot of 7th level or higher, you may target up to one additional willing creature for each slot level above 6th. -# 276. - Sunbeam (V,S) level 6 Evocation [Concentration] [SOL] +# 277. - Sunbeam (V,S) level 6 Evocation [Concentration] [SOL] You conjure a line of radiance which can burn and blind creatures in the line of effect; undead and oozes save with disadvantage. The beam can be retargeted each turn -# 277. - *Tasha's Otherworldly Guise* © (M,V,S) level 6 Transmutation [Concentration] [UB] +# 278. - *Tasha's Otherworldly Guise* © (M,V,S) level 6 Transmutation [Concentration] [UB] Uttering an incantation, you draw on the magic of the Lower Planes or Upper Planes (your choice) to transform yourself. -# 278. - *Tenser's Transformation* © (V,S) level 6 Transmutation [Concentration] [UB] +# 279. - *Tenser's Transformation* © (V,S) level 6 Transmutation [Concentration] [UB] You endow yourself with endurance and martial prowess fueled by magic. Until the spell ends, you can't cast spells, and you gain the following benefits: • You gain 50 temporary hit points. If any of these remain when the spell ends, they are lost. @@ -1150,170 +1154,170 @@ You endow yourself with endurance and martial prowess fueled by magic. Until the • You can attack twice, instead of once, when you take the Attack action on your turn. Immediately after the spell ends, you must succeed on a DC 15 Constitution saving throw or suffer one level of exhaustion. -# 279. - True Seeing (V,S) level 6 Divination [SOL] +# 280. - True Seeing (V,S) level 6 Divination [SOL] A creature you touch gains True Sight for one hour -# 280. - Wall of Thorns (V,S) level 6 Conjuration [Concentration] [SOL] +# 281. - Wall of Thorns (V,S) level 6 Conjuration [Concentration] [SOL] Creates a wall of tough of needle-sharp thorns, that hurts and slows every creature in it. -# 281. - Arcane Sword (M,V,S) level 7 Evocation [Concentration] [SOL] +# 282. - Arcane Sword (M,V,S) level 7 Evocation [Concentration] [SOL] Summon a weapon that fights for you. -# 282. - Conjure Celestial (V,S) level 7 Conjuration [Concentration] [SOL] +# 283. - Conjure Celestial (V,S) level 7 Conjuration [Concentration] [SOL] Conjures a celestial creature of challenge rating 4 that fights alongside you. If you lose concentration, the creature is dismissed. -# 283. - *Crown of Stars* © (V,S) level 7 Evocation [UB] +# 284. - *Crown of Stars* © (V,S) level 7 Evocation [UB] Seven star-like motes of light appear and orbit your head until the spell ends. You can use a bonus action to send one of the motes streaking toward one creature or object within 120 feet of you. When you do so, make a ranged spell attack. On a hit, the target takes 4d12 radiant damage. Whether you hit or miss, the mote is expended. The spell ends early if you expend the last mote. If you have four or more motes remaining, they shed bright light in a 30-foot radius and dim light for an additional 30 feet. If you have one to three motes remaining, they shed dim light in a 30-foot radius. When you cast this spell using a spell slot of 8th level or higher, the number of motes created increases by two for each slot level above 7th. -# 284. - Delayed Blast Fireball (V,S) level 7 Evocation [Concentration] [SOL] +# 285. - Delayed Blast Fireball (V,S) level 7 Evocation [Concentration] [SOL] Conjures a ball of fire that grows more powerful with time, detonating when a creature enters its space or when the spell ends. -# 285. - Divine Word (V) level 7 Evocation [SOL] +# 286. - Divine Word (V) level 7 Evocation [SOL] Utter a divine word that inflicts various negative conditions on enemies you can see, based on their HP. Also banishes all celestials, elementals, feys, and fiends if they fail their saving throws. -# 286. - *Draconic Transformation* © (M,V,S) level 7 Transmutation [Concentration] [UB] +# 287. - *Draconic Transformation* © (M,V,S) level 7 Transmutation [Concentration] [UB] With a roar, you draw on the magic of dragons to transform yourself, taking on draconic features. You gain the following benefits until the spell ends: • You have blindsight with a range of 30 feet. • When you cast this spell, and as a bonus action on subsequent turns for the duration, you can exhale shimmering energy in a 60-foot cone. Each creature in that area must make a Dexterity saving throw, taking 6d8 force damage on a failed save, or half as much damage on a successful one. • Incorporeal wings sprout from your back, giving you a flying speed of 60 feet. -# 287. - Finger of Death (V,S) level 7 Necromancy [SOL] +# 288. - Finger of Death (V,S) level 7 Necromancy [SOL] Send negative energy coursing through a creature within range. -# 288. - Fire Storm (V,S) level 7 Evocation [SOL] +# 289. - Fire Storm (V,S) level 7 Evocation [SOL] Causes a wide wall of roaring flames to burst up wherever you choose within range. -# 289. - Gravity Slam (V,S) level 7 Transmutation [SOL] +# 290. - Gravity Slam (V,S) level 7 Transmutation [SOL] Increase gravity to slam everyone in a specific area onto the ground. -# 290. - Prismatic Spray (V,S) level 7 Evocation [SOL] +# 291. - Prismatic Spray (V,S) level 7 Evocation [SOL] Each creature within the cone of effect is randomly affected by one or two (roll 8 on d8) rays with the following effects: -# 291. - Regenerate (V,S) level 7 Transmutation [SOL] +# 292. - Regenerate (V,S) level 7 Transmutation [SOL] Touch a creature and stimulate its natural healing ability. -# 292. - Rescue the Dying (V) level 7 Transmutation [UB] +# 293. - Rescue the Dying (V) level 7 Transmutation [UB] With a word, you call positive energy into the target's body to heal and ward it. The target regains a number of hit points equal to 4d10 + 30. It also gains temporary hit points equal to half that amount and resistance to all damage, both lasting until the end of your next turn. When you cast this spell using a spell slot of 8th level or higher, the healing increases by 2d10 for each slot level above 7th. -# 293. - Resurrection (M,V,S) level 7 Necromancy [SOL] +# 294. - Resurrection (M,V,S) level 7 Necromancy [SOL] Brings one creature back to life, up to 100 years after death. -# 294. - *Reverse Gravity* © (V,S) level 7 Transmutation [Concentration] [UB] +# 295. - *Reverse Gravity* © (V,S) level 7 Transmutation [Concentration] [UB] This spell reverses gravity in a 50-foot-radius, 100-foot-high cylinder centered on a point within range. -# 295. - Symbol (V,S) level 7 Abjuration [SOL] +# 296. - Symbol (V,S) level 7 Abjuration [SOL] Inscribe a glyph on a surface. When an enemy starts its turn in the area or enters it, the glyph's effect is applied in a sphere with a 12-cell radius. -# 296. - *Abi-Dalzim's Horrid Wilting* © (V,S) level 8 Necromancy [UB] +# 297. - *Abi-Dalzim's Horrid Wilting* © (V,S) level 8 Necromancy [UB] You draw the moisture from every creature in a 30-foot cube centered on a point you choose within range. Each creature in that area must make a Constitution saving throw. Constructs and undead aren't affected, and plants and ice elementals make this saving throw with disadvantage. A creature takes 10d8 necrotic damage on a failed save, or half as much damage on a successful one. -# 297. - Divine Blade (V,S) level 8 Evocation [Concentration] [SOL] +# 298. - Divine Blade (V,S) level 8 Evocation [Concentration] [SOL] A glowing blade of pure energy springs from your hand. On a hit, the target takes 6d8 radiant damage and must roll a Wisdom saving throw to avoid being stunned until the end of its next turn. -# 298. - Dominate Monster (V,S) level 8 Enchantment [Concentration] [SOL] +# 299. - Dominate Monster (V,S) level 8 Enchantment [Concentration] [SOL] Grants you control over an enemy creature of any type. -# 299. - Earthquake (V,S) level 8 Evocation [Concentration] [SOL] +# 300. - Earthquake (V,S) level 8 Evocation [Concentration] [SOL] You create a seismic disturbance that violently shakes the ground and the creatures standing on it for the duration of the spell. -# 300. - Feeblemind (V,S) level 8 Enchantment [SOL] +# 301. - Feeblemind (V,S) level 8 Enchantment [SOL] You blast the mind of one creature, attempting to shatter its intellect and personality. The target takes 4d6 psychic damage and must make an Intelligence saving throw. On a failed save, the creature's Intelligence, Charisma and Wisdom scores become 1 and it is unable to cast spells. These effects last for 1 minute. -# 301. - Holy Aura (V,S) level 8 Abjuration [Concentration] [SOL] +# 302. - Holy Aura (V,S) level 8 Abjuration [Concentration] [SOL] Allies within 6 cells of you when you cast Holy Aura gain advantage on all saving throws, and other creatures have disadvantage on attack rolls against them until the spell ends. In addition, when a fiend or an undead hits an affected creature with a melee attack, they must succeed on a Constitution saving throw or be blinded until the spell ends. -# 302. - Incendiary Cloud (V,S) level 8 Conjuration [Concentration] [SOL] +# 303. - Incendiary Cloud (V,S) level 8 Conjuration [Concentration] [SOL] A cloud of smoke appears in a sphere with a 4-cell radius. The cloud damages each creature inside it, and moves away from you each turn until the end of the spell's duration or until a moderate wind disperses the cloud. -# 303. - *Maddening Darkness* © (V) level 8 Evocation [Concentration] [UB] +# 304. - *Maddening Darkness* © (V) level 8 Evocation [Concentration] [UB] Magical darkness spreads from a point you choose within range to fill a 60-foot-radius sphere until the spell ends. Shrieks, gibbering, and mad laughter can be heard within the sphere. On activation, and whenever a creature ends its turn in the sphere, it must make a Wisdom saving throw, taking 6d8 psychic damage on a failed save, or half as much damage on a successful one. -# 304. - Maze (V,S) level 8 Abjuration [Concentration] [SOL] +# 305. - Maze (V,S) level 8 Abjuration [Concentration] [SOL] You banish a creature that you can see within range into a labyrinthine demiplane. The target remains there for the spell's duration or until it escapes the maze. -# 305. - *Mind Blank* © (V,S) level 8 Transmutation [UB] +# 306. - *Mind Blank* © (V,S) level 8 Transmutation [UB] Until the spell ends, one willing creature you touch is immune to psychic damage, any effect that would sense its emotions or read its thoughts, divination spells, and the charmed condition. -# 306. - Power Word Stun (V) level 8 Enchantment [SOL] +# 307. - Power Word Stun (V) level 8 Enchantment [SOL] Overwhelm the mind of a creature that has 150 hit points or fewer, leaving it stunned. -# 307. - Soul Expulsion (V,S) level 8 Necromancy [UB] +# 308. - Soul Expulsion (V,S) level 8 Necromancy [UB] You blast a foe's soul with magical power, causing it to glow with otherwordly light. Choose one creature that you can see within range, which must make a Charisma saving throw. On a failed saving throw, the target takes 11d8 necrotic damage and is stunned until the start of your next turn. On a successful saving throw, the target takes half damage and isn't stunned. Each enemy other than the target that is within 60 feet of the target must make a Wisdom saving throw. On a failed save, a creature takes 7d8 radiant damage and has disadvantage on attack rolls until the end of your next turn. On a successful saving throw a creature takes half damage and nothing else. When this spell targets undead, the spell ignores any resistance or immunity to necrotic damage, and the target has disadvantage on the saving throw. When you cast this spell using a spell slot of 9th level, both the necrotic damage and radiant damage increase by 2d8. -# 308. - Spell Ward (V,S) level 8 Abjuration [Concentration] [SOL] +# 309. - Spell Ward (V,S) level 8 Abjuration [Concentration] [SOL] Creates a mobile globe that is impenetrable to enemy spells cast from outside it. -# 309. - Sunburst (V,S) level 8 Evocation [SOL] +# 310. - Sunburst (V,S) level 8 Evocation [SOL] Brilliant sunlight blazes in a sphere with a 12-cell radius. Each creature that fails a Constitution saving throw takes radiant damage and is blinded for 1 minute. Any darkness created by a spell in the area is dispelled. -# 310. - Thunderstorm (V,S) level 8 Transmutation [SOL] +# 311. - Thunderstorm (V,S) level 8 Transmutation [SOL] You create a blast of thunder in a sphere that causes thunder and lightning damage to everyone, and can blind or stun those who fail a CON saving throw. -# 311. - Wild Shapes (V,S) level 8 Transmutation [Concentration] [SOL] +# 312. - Wild Shapes (V,S) level 8 Transmutation [Concentration] [SOL] Turns other creatures in to beasts for one day. -# 312. - *Foresight* © (V,S) level 9 Transmutation [UB] +# 313. - *Foresight* © (V,S) level 9 Transmutation [UB] You touch a willing creature and bestow a limited ability to see into the immediate future. For the duration, the target can't be surprised and has advantage on attack rolls, ability checks, and saving throws. Additionally, other creatures have disadvantage on attack rolls against the target for the duration. -# 313. - *Mass Heal* © (V,S) level 9 Transmutation [UB] +# 314. - *Mass Heal* © (V,S) level 9 Transmutation [UB] A flood of healing energy flows from you into injured creatures around you. You restore 120 hit points each to 6 creatures that you can see within range. Creatures healed by this spell are also cured of all diseases and any effect making them blinded or deafened. This spell has no effect on undead or constructs. -# 314. - *Meteor Swarm* © (V,S) level 9 Transmutation [UB] +# 315. - *Meteor Swarm* © (V,S) level 9 Transmutation [UB] Blazing orbs of fire plummet to the ground at a single point you can see within range. Each creature in a 40-foot-radius sphere centered on the point you choose must make a Dexterity saving throw. The sphere spreads around corners. A creature takes 20d6 fire damage and 20d6 bludgeoning damage on a failed save, or half as much damage on a successful one. A creature in the area of more than one fiery burst is affected only once. -# 315. - *Power Word Heal* © (V,S) level 9 Enchantment [UB] +# 316. - *Power Word Heal* © (V,S) level 9 Enchantment [UB] A wave of healing energy washes over the creature you touch. The target regains all its hit points. If the creature is charmed, frightened, paralyzed, or stunned, the condition ends. If the creature is prone, it can use its reaction to stand up. This spell has no effect on undead or constructs. -# 316. - *Power Word Kill* © (V,S) level 9 Transmutation [UB] +# 317. - *Power Word Kill* © (V,S) level 9 Transmutation [UB] You utter a word of power that can compel one creature you can see within range to die instantly. If the creature you choose has 100 hit points or fewer, it dies. Otherwise, the spell has no effect. -# 317. - *Shapechange* © (M,V,S) level 9 Transmutation [Concentration] [UB] +# 318. - *Shapechange* © (M,V,S) level 9 Transmutation [Concentration] [UB] You assume the form of a different creature for the duration. The new form can be of any creature with a challenge rating equal to your level or lower. -# 318. - *Time Stop* © (V) level 9 Transmutation [UB] +# 319. - *Time Stop* © (V) level 9 Transmutation [UB] You briefly stop the flow of time for everyone but yourself. No time passes for other creatures, while you take 1d4 + 1 turns in a row, during which you can use actions and move as normal. -# 319. - *Weird* © (V,S) level 9 Illusion [Concentration] [UB] +# 320. - *Weird* © (V,S) level 9 Illusion [Concentration] [UB] Drawing on the deepest fears of a group of creatures, you create illusory creatures in their minds, visible only to them. Each enemy in a 30-foot-radius sphere centered on a point of your choice within range must make a Wisdom saving throw. On a failed save, a creature becomes frightened for the duration. The illusion calls on the creature's deepest fears, manifesting its worst nightmares as an implacable threat. At the end of each of the frightened creature's turns, it must succeed on a Wisdom saving throw or take 4d10 psychic damage. On a successful save, the spell ends for that creature. diff --git a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs index 7b205b4326..274d79253d 100644 --- a/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs +++ b/SolastaUnfinishedBusiness/Api/DatabaseHelper-RELEASE.cs @@ -752,6 +752,8 @@ internal static class DeityDefinitions internal static class EffectProxyDefinitions { + internal static EffectProxyDefinition ProxyIndomitableLight { get; } = + GetDefinition("ProxyIndomitableLight"); internal static EffectProxyDefinition ProxyDelayedBlastFireball { get; } = GetDefinition("ProxyDelayedBlastFireball"); diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index bf1ee6e83b..a3ce6485f7 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,11 +1,11 @@ 1.5.97.20: -- added official variant spell points rules +- added official variant spell points rules and Sickening Radiance spell - fixed Export Hero and RESPEC auras, infusions, etc. effects termination -- fixed Martial Arcane Archer arcane shot causing a soft lock if enemy dead -- fixed Martial Battle Master initial pool set to 3 instead of 4 -- fixed Ring of Knifes spell missing to-hit modifiers on power -- fixed Scatter spell not allowing enemies selection +- fixed Martial Arcane Archer arcane shot soft lock if enemy already dead +- fixed Martial Battle Master initial pool amount to 4 +- fixed Ring of Knifes spell to-hit modifiers on power +- fixed Scatter spell, and Sorcerous Field Manipulator displacement targets selection KNOWN ISSUES: diff --git a/SolastaUnfinishedBusiness/Displays/_ModUi.cs b/SolastaUnfinishedBusiness/Displays/_ModUi.cs index 65aa68988e..29d7244fb7 100644 --- a/SolastaUnfinishedBusiness/Displays/_ModUi.cs +++ b/SolastaUnfinishedBusiness/Displays/_ModUi.cs @@ -249,6 +249,7 @@ internal static class ModUi "ShadowBlade", "ShadowOfMoil", "Shapechange", + "SickeningRadiance", "SkinOfRetribution", "SorcerousDivineHeart", "SnillocSnowballStorm", diff --git a/SolastaUnfinishedBusiness/Models/SpellsContext.cs b/SolastaUnfinishedBusiness/Models/SpellsContext.cs index 76fbe3f455..997014eef8 100644 --- a/SolastaUnfinishedBusiness/Models/SpellsContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpellsContext.cs @@ -344,6 +344,7 @@ internal static void LateLoad() RegisterSpell(BuildIrresistiblePerformance(), 0, SpellListBard); RegisterSpell(BuildPsychicLance(), 0, SpellListBard, SpellListSorcerer, SpellListWarlock, SpellListWizard); RegisterSpell(BuildPsionicBlast(), 0, SpellListSorcerer, SpellListWarlock, SpellListWizard); + RegisterSpell(BuildSickeningRadiance(), 0, SpellListSorcerer, SpellListWarlock, SpellListWizard); RegisterSpell(StaggeringSmite, 0, SpellListPaladin); RegisterSpell(VitriolicSphere, 0, SpellListSorcerer, SpellListWizard); diff --git a/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs b/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs index 1b98f17aad..b0468192dc 100644 --- a/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs +++ b/SolastaUnfinishedBusiness/Properties/Resources.Designer.cs @@ -4252,6 +4252,16 @@ public static byte[] ShieldExpert { } } + ///