From 4211eec5de279dbdfd0c1b6a37a59fd2edad5289 Mon Sep 17 00:00:00 2001 From: ThyWolf Date: Sun, 1 Dec 2024 08:56:55 -0800 Subject: [PATCH] prepare for `1.5.97.40` release --- .../ChangelogHistory.txt | 6 ++++-- SolastaUnfinishedBusiness/Info.json | 2 +- .../Models/SpeechContext.cs | 10 ++++------ .../Models/Tabletop2024Context.cs | 14 +++++++++----- .../Resources/UI/ContentPack.png | Bin 4123 -> 3947 bytes .../Settings/zappastuff.xml | 7 ++----- .../SolastaUnfinishedBusiness.csproj | 2 +- 7 files changed, 21 insertions(+), 20 deletions(-) diff --git a/SolastaUnfinishedBusiness/ChangelogHistory.txt b/SolastaUnfinishedBusiness/ChangelogHistory.txt index 1912e63152..f6a1f15d6a 100644 --- a/SolastaUnfinishedBusiness/ChangelogHistory.txt +++ b/SolastaUnfinishedBusiness/ChangelogHistory.txt @@ -1,4 +1,6 @@ -1.5.97.40: +1.5.97.40 - 3 Years CE/UB anniversary has a lot to say: + +ATTENTION: Check "The Forsaken Isle" and "Morrows Deep" from Artyoan, updated with NPCs text-to-speech data - added 'Enable Fighter Studied Attacks at 13' setting [ADV if previous attack in turn against same target missed] - added 'Enable Fighter Tactical Mind, and Tactical Shift at 2 and 5' setting [augment second wind scenarios] @@ -19,7 +21,7 @@ - fixed 'Enable Second Wind to use 5e 2024 usages progression' forcing max usage to zero when off - fixed Defensive Duelist triggering on any attack roll instead of melee attacks only - fixed Grapple interaction with teleporting enemies -- fixed Martial Arcane Archer Beguiling Arrow charmed condition application time +- fixed Martial Arcane Archer Beguiling Arrow charmed condition application time, and improved all arrows impact SFX - fixed Patron Hexblade interaction with 5e 2024 pact of blades invocation [by BradS] - fixed Staff of Fire not granting fire damage resistance to wielder [VANILLA] - fixed True Strike 2024 version not allowing ranged or thrown, and enforcing concentration diff --git a/SolastaUnfinishedBusiness/Info.json b/SolastaUnfinishedBusiness/Info.json index bd2946f4c4..8b535a0087 100644 --- a/SolastaUnfinishedBusiness/Info.json +++ b/SolastaUnfinishedBusiness/Info.json @@ -1,7 +1,7 @@ { "Id": "SolastaUnfinishedBusiness", "DisplayName": "[Un] Finished Business", - "Version": "1.5.97.39", + "Version": "1.5.97.40", "GameVersion": "1.5.97", "ManagerVersion": "0.24.0", "AssemblyName": "SolastaUnfinishedBusiness.dll", diff --git a/SolastaUnfinishedBusiness/Models/SpeechContext.cs b/SolastaUnfinishedBusiness/Models/SpeechContext.cs index 19262d0bdd..dcd8951d5f 100644 --- a/SolastaUnfinishedBusiness/Models/SpeechContext.cs +++ b/SolastaUnfinishedBusiness/Models/SpeechContext.cs @@ -350,10 +350,9 @@ private static void InitPiper() ZipFile.ExtractToDirectory(fullZipFile, Main.ModFolder); File.Delete(fullZipFile); - if (!TryGetExecutablePath(out var executablePath)) + if (!TryGetExecutablePath(out _)) { - message = - $"Piper successfully downloaded but failed to find executable at {executablePath}."; + message = "Piper successfully downloaded but failed to extract executable."; } } } @@ -367,8 +366,8 @@ private static void InitPiper() internal static void RefreshAvailableVoices() { - var directoryInfo = new DirectoryInfo(VoicesFolder); - var voices = directoryInfo.GetFiles("*.onnx").Select(x => x.Name.Replace(".onnx", string.Empty)); + var voices = new DirectoryInfo(VoicesFolder) + .GetFiles("*.onnx").Select(x => x.Name.Replace(".onnx", string.Empty)); VoiceNames = new List { DefaultVoice }.Union(voices).ToArray(); } @@ -568,7 +567,6 @@ internal static async void Speak(string inputText, int heroId, bool forceUseCamp if (!TryGetExecutablePath(out var executablePath)) { - Main.Info($"Speech system cannot find executable path: {executablePath}"); return; } diff --git a/SolastaUnfinishedBusiness/Models/Tabletop2024Context.cs b/SolastaUnfinishedBusiness/Models/Tabletop2024Context.cs index 4197014432..05ffbb6e9c 100644 --- a/SolastaUnfinishedBusiness/Models/Tabletop2024Context.cs +++ b/SolastaUnfinishedBusiness/Models/Tabletop2024Context.cs @@ -1346,17 +1346,21 @@ internal static bool IsRestActivityMemorizeSpellAvailable( (Main.Settings.EnableWizardMemorizeSpell && hero.GetClassLevel(Wizard) >= 5); } - internal static bool IsMemorizeSpellPreparation(RulesetCharacter rulesetCharacter) + private static bool TryGetMemorizeSpellCondition(RulesetCharacter character, out RulesetCondition condition) { - return rulesetCharacter.HasConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, ConditionMemorizeSpell.Name); + return character.TryGetConditionOfCategoryAndType( + AttributeDefinitions.TagEffect, ConditionMemorizeSpell.Name, out condition); + } + + internal static bool IsMemorizeSpellPreparation(RulesetCharacter character) + { + return TryGetMemorizeSpellCondition(character, out _); } internal static bool IsInvalidMemorizeSelectedSpell( SpellRepertoirePanel spellRepertoirePanel, RulesetCharacter rulesetCharacter, SpellDefinition spell) { - if (!rulesetCharacter.TryGetConditionOfCategoryAndType( - AttributeDefinitions.TagEffect, ConditionMemorizeSpell.Name, out var activeCondition)) + if (!TryGetMemorizeSpellCondition(rulesetCharacter, out var activeCondition)) { return false; } diff --git a/SolastaUnfinishedBusiness/Resources/UI/ContentPack.png b/SolastaUnfinishedBusiness/Resources/UI/ContentPack.png index b898a8800cc19a7cd3fb79b423f11669b44b61c3..06f0d0adc2e8d0ea493b04c3123a0445b2844090 100644 GIT binary patch delta 3437 zcmV-z4U+PkAnP8GBo5F}OjJbx0000A5C8-RkuMn+79s;2DF6u$At50sOkh`6R{#$e zu(7d`Zc%?6bQP%!QS8BfrNyMjE%?0$*X}CUqlzr($oL{|8sSA zfnXTc*VjcW2|6JNB?kZtF-3hv5G@-AZ%z zYHLATYEoZi#h*h<8w8Vf0Wg!S0Zx)X000aeNklrYZ) z9LLp=Ax$fqIjeU$TeWcxmvcC9xLFWU;|>MXBD)ZQh+RfVjV?H&A}w%bG+S(4oG)4# zYu%`67dLBJv$ooDv&`0u`XBl|hf&$RFJtG`=kxr2-{%ZUewS&pYAegjn3Pv?OQ)Co zSEki}ma~@3uV2jJu-RrFXYqoX>N4)Ef5uD8tLE36d3w^!X0w$NwnV0sN!W{*l-2$d zURzdOZ*C?yJhPs|7O_Q2iA1TC$&_NTq>ja%_V?4P7m);q)2!$5I2@h`A_iIsJVd#G z#r^Z{6;<^lL6XfJz23|-o0~);iAW+A%MfpWGMPY8Q(pR~woFiq27Kuy$D{Hn`}Di=XE>(S|EqAv;=OeanPw0rMvlPnE? zDGH!VF#LSJ#bdF^34$Qy)|Qsp(a1oml}aSKZ{6ySqyqHo-Mhz|!i5QxzcAER0S$o# z=|th1R`B&#Eap*s;l^+f0hS$Byd@QkG76=#{C8= zd(KZ$l)(^>CzBy4L42_b8Dx-}sdrI-KDQts zaq~T-yk+x@NdrvZwpxQ1gE7$<{n=zFKr4G(PKJjirWYHmLJL?tE~0P4j6VM@DyxO# zae)9A6a^66PCZe8!DMqf3xWj|UmJ9T0r8EeqFMjgZAt~KPyhx-P)yO_8k8V|NCYDk z8sI}_?e)LOYwbed zivk807F0r`LNOE>Nri%GGyt2!Lhs`=7M}?WaC*D@{Jwqd8sMi0FpUN_f~U#|g49SP z;}ikUX4jOW3gPr6tn~ci<*Ho7YB- z8;^{saI`$;i+LYq`q$`xb|`E^j}nPYzg^KWyk4c1+CnKhHGu_lB1j$gYXyXL-BNz% z#*GIwNPw-6`MfcoQ1|qByS=+L66*1(+O?_%wN~owebhS=dGVO3aS^M8yRcA!WyRX1 zjfOLEg%Al~0GrqA>p$`F%85hjOl!g>TsN`9fotscm@+W_$^4;zLnLZyGV80M!$Jj~ zm0On{e)FDk;Ltq?ytY`(rf$%EzQ6y(vO8DRYFn!m!-R_LlU|yB{@j8E(Qh`puB43V z(1irsUnoY$7y*WL*le*(rbm6@!rivEEjoPH&U?$2_v1o^!FUvv=*C?+_}dZ{1q5jU z!QIi2VmW$whI>MPkM3rM9**i7)?iq}p$5&ibE^*aNHrRx!DxR*r=CCVIGjWGP%}j! zeLIj>0sms}*{fc~j)MnRtTCMed{0n`-YCTq;pWtqvbIB7z2# zjybsG{93lY%hV{6cGdOBd#Kz&r7D9=P9x9>yUt#Iv;|5pFWArPe(wd zgpHb)jRh)ygU+PW>1?)kX^#r#)Kf`p1({6PMI`NdaCiSbDCg3V3tP8=04u_Mv|t}g zhAmF(J(ik;)KqBNUup{2CS8Y4Q=zkcC}7mN3m9B#3Pg4i=*?$q4!^k%wS@xgSoPyG z?%oFaAdB%KFPYfgpZm&WYB$u4bx6lL+BMF1?z$m=<+c1Y3Ix%e*?UPfdxTF0pi7xY zjvn2*3N%tUz=8{46e`7<-exr5pV5x9dpJgG0b3`RPurDLIG|QuyEsvjlx9hz?`dup z-oFo(XI|L0ZR66}R!&df*Or6#`9=w^`_P#Y{~(Gonhh$>;F!Kg>8^+1LDZ6$dn`G* zwlIKNoM3r)oB==U)@6@Wy3^cua}q`2?r!wF$dDh%@2@LM zMJyJ*$w7svR!%8lFKN%j)szw_=~8AnP$5fyfpm*pw&fsG5_75{S1Zpm-)taK7z}X{ zXd}_9_KwE9dI}mGbSdp!^<21?P)fhCXQBiefO2kSUH~hzp3i~5vmm&<0MTC)ixgh-q~NY_rj$jl6tATqR6<5_&(9Z&0j zh+O~Z=piTx_2;#o9Bv4}`L8t2iuVeoXZzDerQ70csoj-ECliIly>v#l=Q7A(Yxshl zH-D2%GNsjzO+Fema*e2>sVmSJ5GVtGvnH z)Mb62Yhd>)d+MKO7ZFn_!epr0=c`nep1Hj`E_{NxgblRg>1E^o$?kfwCs!H}Jsue` zRGE!In{9e}`paAH$En~HJ1JwDK|)f5CD41Z= zE7d;M`bAY9xW(2~7{ZrqaYMy_d59`kG3cqO_o2$1B63M7hk1HENB{sNkQj5f1`YI& z2V7+;PoCZ|eyz&$jH|a57RntC`8%ih<3$d!r-!o_p`n$x5j*s2y zeCF~`HfS3hurdE!f4;eIMw$%UoP`dyT&`~_G>W-IwwgmHQiT%laT=C?#^QHYOX4x# z)y2BipWoWt-AcWC5Uz(fsM*}FRT!y`CbgPvD3oiP)DXmlhZq?}srT@BJWqhb2?RXW z25^8d=EiP%@b>H5GO^fd1>2V+=5Q!RYLeJtSF4p;Fh+$GNIW={feD4UYEYL3ZhX;WJXZy~$Avi{YAl1Cd(bRI4pY{j0({ZqNmj$r(Z(KC4s0 zWU}~tR*3&Iz*-y*>-BD{=y=)tve$0uBC$U-HgMc?2ZmuC4wv=D zFO`moE;1{RAE#x1?YpxzhS|~*1AYU@czo6m`iez=dyS}t;7j1J_?#<1s3s<2e;_L- z^lq7q59r0S^u>#2J=@ILwl$s3jN-CUWk& z*bSSPtysKb#p2b=)~{R?5sjJmKgSwo0rtG`KLGGx`NGKgVfP>TKllF)N3-b_oX{&! P00000NkvXXu0mjfz(i^H delta 3644 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 O0000 - 1 + 2 0 0 false @@ -730,6 +730,7 @@ true true + true true true false @@ -1866,8 +1867,4 @@ false true true - 0 - false - false - false \ No newline at end of file diff --git a/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj b/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj index ff40781297..48f0d3d5b5 100644 --- a/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj +++ b/SolastaUnfinishedBusiness/SolastaUnfinishedBusiness.csproj @@ -3,7 +3,7 @@ 12 net481 - 1.5.97.39 + 1.5.97.40 https://github.com/SolastaMods/SolastaUnfinishedBusiness git Debug Install;Release Install