From 28e8897d5e086cdf7ab9d5d23c5d6ad579e2792b Mon Sep 17 00:00:00 2001 From: doug1234 Date: Wed, 30 Dec 2020 11:21:41 -0500 Subject: [PATCH 1/4] Added Armor commander string entries. --- tpdata/tpmes/item_creation.mes | 1 + tpdata/tprules/craft_maa_specs.tab | 1 + 2 files changed, 2 insertions(+) diff --git a/tpdata/tpmes/item_creation.mes b/tpdata/tpmes/item_creation.mes index e5e70a49e..88a297d37 100644 --- a/tpdata/tpmes/item_creation.mes +++ b/tpdata/tpmes/item_creation.mes @@ -109,6 +109,7 @@ {1242}{Blurring} {1243}{Displacement} {1244}{Mobility} +{1245}{Commander} // shield bonuses {1400}{+1} diff --git a/tpdata/tprules/craft_maa_specs.tab b/tpdata/tprules/craft_maa_specs.tab index 5df206507..a2f46d563 100644 --- a/tpdata/tprules/craft_maa_specs.tab +++ b/tpdata/tprules/craft_maa_specs.tab @@ -78,6 +78,7 @@ 242 Armor Blurring IESF_ARMOR IESF_NONCORE 1 0 C5 'blur' 243 Armor Displacement IESF_ARMOR IESF_NONCORE 1 0 C5 'displacement' 244 Armor Mobility IESF_ENABLED IESF_ARMOR IESF_NONCORE IESF_LIGHT_ONLY 1 0 C5 'cats grace' +245 Armor Commander IESF_ENABLED IESF_ARMOR IESF_NONCORE 0 0 C5 'eagles splendor' 2000 400 Shield Enhancement Bonus IESF_ENABLED IESF_SHIELD IESF_PLUS_BONUS 1 1 C3 401 Shield Enhancement Bonus IESF_ENABLED IESF_SHIELD IESF_PLUS_BONUS 1 2 C6 400 402 Shield Enhancement Bonus IESF_ENABLED IESF_SHIELD IESF_PLUS_BONUS 1 3 C9 401 From 98f0601f1b3ae7105984432469c06dfc5e19aa6f Mon Sep 17 00:00:00 2001 From: doug1234 Date: Fri, 8 Jan 2021 23:04:03 -0500 Subject: [PATCH 2/4] Added silent moves and shadow armor for crafting (greater and improved versions also). --- TemplePlus/condition.cpp | 25 +++++++++++++++++++++++++ tpdata/co8infra.dat | Bin 1210117 -> 1210117 bytes tpdata/kotbfixes.dat | Bin 1114735 -> 1114735 bytes tpdata/tpgamefiles.dat | Bin 3558210 -> 3558210 bytes tpdata/tpmes/item_creation.mes | 4 ++++ tpdata/tprules/craft_maa_specs.tab | 10 +++++++--- 6 files changed, 36 insertions(+), 3 deletions(-) diff --git a/TemplePlus/condition.cpp b/TemplePlus/condition.cpp index 92579c3b8..a7e5491af 100644 --- a/TemplePlus/condition.cpp +++ b/TemplePlus/condition.cpp @@ -37,6 +37,7 @@ #include "gamesystems/d20/d20stats.h" #include "d20_race.h" #include "ai.h" +#include "ui/ui_systems.h" #define CB int(__cdecl)(DispatcherCallbackArgs) using DispCB = int(__cdecl )(DispatcherCallbackArgs); @@ -210,6 +211,7 @@ class ItemCallbacks static int __cdecl WeaponViciousBlowback(DispatcherCallbackArgs args); // TODO (need to replace the damage calculation function to do this right...) static int __cdecl WeaponWounding(DispatcherCallbackArgs args); static int __cdecl WeaponThundering(DispatcherCallbackArgs args); + static int __cdecl ArmorShadowSilentMovesSkillBonus(DispatcherCallbackArgs args); static int __cdecl WeaponDamageBonus(DispatcherCallbackArgs args); @@ -500,6 +502,9 @@ class ConditionFunctionReplacement : public TempleFix { // Fixes Weapon Damage Bonus for ammo items replaceFunction(0x100FFE90, itemCallbacks.WeaponDamageBonus); + // Allow silent moves and shadow armor to have multipe levels + replaceFunction(0x10102370, itemCallbacks.ArmorShadowSilentMovesSkillBonus); + // Cast Defensively Aoo Trigger Query, SpellInterrupted Query replaceFunction(0x100F8BE0, genericCallbacks.CastDefensivelyAooTrigger); replaceFunction(0x100F8CC0, genericCallbacks.CastDefensivelySpellInterrupted); @@ -5566,6 +5571,26 @@ int ItemCallbacks::WeaponWounding(DispatcherCallbackArgs args){ } +int __cdecl ItemCallbacks::ArmorShadowSilentMovesSkillBonus(DispatcherCallbackArgs args) +{ + GET_DISPIO(dispIoTypeObjBonus, DispIoObjBonus); + + auto inventoryIdx = args.GetCondArg(2); + auto value = args.GetCondArg(0); //Now supporting multiple values for improved and greater + value = std::max(value, 5); //In case this is an old cond which would possible have a 0 value instead of 5 + + auto item = inventory.GetItemAtInvIdx(args.objHndCaller, inventoryIdx); + + const char* desc = nullptr; + if (item != objHndl::null) { + desc = description.getDisplayName(item); + } + + dispIo->bonOut->AddBonusWithDesc(value, 34, 112, desc); + + return 0; +} + int ItemCallbacks::WeaponThundering(DispatcherCallbackArgs args){ GET_DISPIO(dispIOTypeDamage, DispIoDamage); diff --git a/tpdata/co8infra.dat b/tpdata/co8infra.dat index 75811b3d521b1ad3872d14a166119ece00a79198..f4fed52f8b62a844c9b68e0f0b789b9c35dc3487 100644 GIT binary patch delta 1520 zcmYLJSx8i26js|T+dOLdV0&nmR<>%3W$Db^(Q%wjof&l&opELy$7RN$9+IM8DI_Q; zrs$yv+mXN|A;N-+lCmCJh>D=Vdx#T=0+=8AbDNz4}u#6q!1EEdTF^rs}=6`L?qS}avX>HM6lq7CuR*drC2LMqDO z=N=Vplcpku1U3DGVhP<6o~vm+Cr_#=hkYwGl*eGy&~}Cs8rsV6KtnqiCN&)Cj4fAa zBZE!>JEWj#uR@#H_*S8;X;sNuTFTGaTFRa_`Ls~grA3oLEjoYG(m_tmETw%6-cs7n za9y&oQaZqFeHra!aF;=UZy7>HC1mO-pM4G;6);@TQ6a+z9g3xwBhp$9cA;GQBum#z zpB^JjouPsN^ki^R5MvKcsI- zC11o9E2-ogxMCfZ@byU;m9VS|avQ3k>{1mD`o0QsQ>r0JUyb?BR%1(Vq;ZiI0u?JF zyRF#SGb=8ZWJ67(4YQxO!T4Dk*VswJV+QRgeZ!6$eYK-QW(_)cB=pwEYu4ZnS+xLv zEd*Y!MfZ=jP@PtXVum_w;*4Y?btpaCfjo@^9ZoqAGUA}UEF#H?Jhg=5PMl-J3Gt~e zfZYY-RTor`yD-ryP3sM7C->IpZrpOO^>;Oh)P=aT?J5}VM^(1e9tY{EIq{7ufhmPipWARwb6RK{_^}z5o UTT1(#JabX8KQ%5cEiW$aFIXAXLI3~& delta 1520 zcmYLJTS${(7*;!3W`{Q|FSIk7We3YVbhdQczd7el>YO^AZf-i~VRO_)lJ+S@1VzOX zFN&};LYO2(MNm;u)1VxEW=^Th%YBNmESu}CZyOT^Ma`ja2o8UAUZ_;8$x68L$uiZ(@dgdeNezh5hITTX(9jNs2O7#`nAC7&M|h<| zTNv~T*kJ`t`xM&B#`g-P%&1zbr4{^~s-@H!lSd0xU0O65(xUTsEgj<2WF75iaO>y* z!*$8Vb##!~#sbP>a27y+Ujaf!B_!)9n|%&F9~bk|h|V z&w!e}284VuP#&kRE~0z}cM+)=`X!qzf-l<$U%L^$XGT(UNURA)vx)XFJ7c0<46jV2 zWms+|g`vs}cH2z5nT?wvcZ~&Lw_x38Eg18qWoC(KyttKCY)P>~;7KdCdDn`_AJVtH zm@m>9&M)R0bcWlC;p>+$Dj}%^a%)SV>{1C1`k@4Jmz6@2p%n9-FU6MLN#kN01S&Q} zcH6MC=Qdm{rVKSrWtjb98H``0ah;tsJf_c%(l_k5(TE)#lFQM-C84ieUb7r`NT~pL zD^46f;(06K5qGu0-j%4&-SZ=y2MBkYNYyWf3t|$Wu!=UWIcES3!JS zHNajCcKfuy;z9f3pU_|@0Vmb_3*XVL+8_aghV%>pRoZ8>21JEJ0{sSAACoA@ICRtx2TbH zyos_#82cJA!?#9ATII)kZS`Z!3w})WPO@c9$a6HI$}P#JnlR?}W+b#WV@re07xXf#pQ%(8?T@~^#4zHGem3I^g2XIi4WJ0>&8CK$$j|# W+{dXq)3?(txq05Wh=};~h={-I=kXi> diff --git a/tpdata/kotbfixes.dat b/tpdata/kotbfixes.dat index ada0e183c455af344afb3ef77a494391c82cb9d0..4a2f010d2f0863b8fbd4b5a46cdcadfb1660e462 100644 GIT binary patch delta 1003 zcmYL|J4{qT6o%&l0xFMl5!4uCltKkzakGlDqViZ&Fi{ISV*xS5P)G625cPs^CVIheYCYOD~-N)T0ua(NQK%NRg1Ka zUWG>rKNhK;gN0sdU>x+4ozd^5!;HsXaxmt+)XXUKA=Bm~8>>r7P57|sjE|Z)X!vL! zgBz;x?D5k!{%-M8-M`SNA6>cqDD=@!o$M3^=p@4xpf<+603Bhx3!v4!3bqB|-3`)F z_GW|B!mxsLg5d~Z`A7&UGfG(@<%N|OR$dr2lPcJ}L@r)_V~M&LpO)wpqjVYS+%mjL zr52Xq?KbH&r(7|SGHp^TtB^@f#@-0^Foq-4&3L0!ag>g+>WHGDOIcJ<>D%4`+OCXjwt0^ zgEzhgZ+;El_8gt%{VwMaoK`BEgV&XZ_aKjf%;(pK>@L^&Z{a?#^J{cZ>iits3wop0 z?HAp?DmA6)O{~6adL08VeM^B}>+BN+LWt@wni#(+#PtCZ43Yo)yYR3f cr{CV%J@v%;)i+T8+1}gk8YvTEXqOOw0JA@M-2eap delta 1003 zcmYL|OH5Ni6o%&(1XLd9B1B`1Q5I@diUdWes1%A1OmxG}=t7Yg77~Ic7|}==4GUvJ zNUe!3F(yP=H7@YIR*VZ5lDN?1(l^|`OIv6?{YPUr-~G>j=FFKhQ&T!k>AWX3X^|ze zRIZa{vRqck^>TyUC@W=^td=z%sy4Jfca1@fjAI7vV|+8H-hJ1gZT$Vzpo1#pVAL*B z5xokJ6@DzzUJjOcX+PtDmzo)uy>y82#7ixVFJ5Y8l=zTo^O23!MWrTu*wo{rCJq`t z+RfmG>fJm2w3)x#{AB$X8u6nmmmh^b`l*YZ(g2-cI0MwdxF4XyjCTRFT2R4`AiS|4 z9bs=SNNtQnkd8B2LRdZ=LW)PJL`ZpI<%N|OM$ME8wl0yAm)~BZZpNo2I?1S5hB~(l zZ%V0!Wq3PGI>jm1Or*@3)XpkolAWnJ80j{YB% zHAY)G&l$rF48<^^sXdL2Zl+OeE{$TDG}hTyFwIeg_bX^3 zxq=0@3{nO&*yv@3I=Psc!A31v6dTDxz0JZaDAkpNH<3dVUvo&QT}3Y!Rx#V>tC(~| zDf=3{@iln!Yw)(@=`8Qpmq&0`scarzcLCmH0Rx#Y6o>4p()n-UIcuaJ3`#*C&3VfzrTmS eE;YQkGTA*=>wYvd)PJM7*Wnzl6k>3@5PtxoQ+gEu diff --git a/tpdata/tpgamefiles.dat b/tpdata/tpgamefiles.dat index 2abb569c2fb8f7a40d61dac57660643be4dda56b..4c9f83dac25bba283d9436fb5ac2bb146499b745 100644 GIT binary patch delta 5885 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 bpW^m#>hA-q2SxuWJ!^bkt5)jnR;~UA5jn+I diff --git a/tpdata/tpmes/item_creation.mes b/tpdata/tpmes/item_creation.mes index 88a297d37..d87876f16 100644 --- a/tpdata/tpmes/item_creation.mes +++ b/tpdata/tpmes/item_creation.mes @@ -110,6 +110,10 @@ {1243}{Displacement} {1244}{Mobility} {1245}{Commander} +{1246}{Shadow, Imp} +{1247}{Shadow, Gtr} +{1248}{Silent Moves, Imp} +{1249}{Silent Moves, Gtr} // shield bonuses {1400}{+1} diff --git a/tpdata/tprules/craft_maa_specs.tab b/tpdata/tprules/craft_maa_specs.tab index a2f46d563..93745bfae 100644 --- a/tpdata/tprules/craft_maa_specs.tab +++ b/tpdata/tprules/craft_maa_specs.tab @@ -41,8 +41,8 @@ 205 Armor Light Fortification IESF_ARMOR 1 0 C3 206 Armor Glamered IESF_ARMOR 1 0 C3 207 Armor Slick IESF_ARMOR 1 0 C3 -208 Armor Shadow IESF_ARMOR 1 0 C3 -209 Armor Silent Moves IESF_ENABLED IESF_ARMOR 1 0 C3 +208 Armor Shadow IESF_ENABLED IESF_ARMOR IESF_INCREMENTAL 0 5 C5 'invisibility' 3750 +209 Armor Silent Moves IESF_ENABLED IESF_ARMOR IESF_INCREMENTAL 0 5 C5 'silence' 3750 210 Armor Spell Resistance IESF_ENABLED IESF_ARMOR IESF_INCREMENTAL 2 13 C15 'spell resistance' 211 Armor Spell Resistance IESF_ENABLED IESF_ARMOR IESF_INCREMENTAL 3 15 C15 'spell resistance' 210 212 Armor Spell Resistance IESF_ENABLED IESF_ARMOR IESF_INCREMENTAL 4 17 C15 'spell resistance' 211 @@ -78,7 +78,11 @@ 242 Armor Blurring IESF_ARMOR IESF_NONCORE 1 0 C5 'blur' 243 Armor Displacement IESF_ARMOR IESF_NONCORE 1 0 C5 'displacement' 244 Armor Mobility IESF_ENABLED IESF_ARMOR IESF_NONCORE IESF_LIGHT_ONLY 1 0 C5 'cats grace' -245 Armor Commander IESF_ENABLED IESF_ARMOR IESF_NONCORE 0 0 C5 'eagles splendor' 2000 +245 Armor Commander IESF_ARMOR IESF_NONCORE 0 0 C5 'eagles splendor' 2000 +246 Armor Shadow IESF_ENABLED IESF_ARMOR IESF_INCREMENTAL 0 10 C10 'invisibility' 208 15000 +247 Armor Shadow IESF_ENABLED IESF_ARMOR IESF_INCREMENTAL 0 15 C15 'invisibility' 246 33750 +248 Armor Silent Moves IESF_ENABLED IESF_ARMOR IESF_INCREMENTAL 0 10 C10 'silence' 209 15000 +249 Armor Silent Moves IESF_ENABLED IESF_ARMOR IESF_INCREMENTAL 0 15 C15 'silence' 248 33750 400 Shield Enhancement Bonus IESF_ENABLED IESF_SHIELD IESF_PLUS_BONUS 1 1 C3 401 Shield Enhancement Bonus IESF_ENABLED IESF_SHIELD IESF_PLUS_BONUS 1 2 C6 400 402 Shield Enhancement Bonus IESF_ENABLED IESF_SHIELD IESF_PLUS_BONUS 1 3 C9 401 From 06d7c14f4c9d879a4884b2f5e38af92dd7e2100a Mon Sep 17 00:00:00 2001 From: doug1234 Date: Fri, 8 Jan 2021 23:15:34 -0500 Subject: [PATCH 3/4] Now checking if the object is a PC or NPC for armor related functions. --- TemplePlus/condition.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TemplePlus/condition.cpp b/TemplePlus/condition.cpp index a7e5491af..8a52dcfc7 100644 --- a/TemplePlus/condition.cpp +++ b/TemplePlus/condition.cpp @@ -5389,7 +5389,7 @@ int __cdecl ItemCallbacks::MaxDexBonus(objHndl armor) auto parent = inventory.GetParent(armor); if (parent) { auto obj = objSystem->GetObject(parent); - if ((obj != nullptr) && (obj->GetInt32(obj_f_type) == obj_t_pc)) { + if ((obj != nullptr) && (obj->IsPC() || obj->IsNPC())) { auto adjustment = d20Sys.D20QueryPython(parent, "Max Dex Bonus Adjustment", armor); res += adjustment; } @@ -5408,7 +5408,7 @@ int __cdecl ItemCallbacks::ArmorCheckPenalty(objHndl armor) auto parent = inventory.GetParent(armor); if (parent) { auto obj = objSystem->GetObject(parent); - if ((obj != nullptr) && (obj->GetInt32(obj_f_type) == obj_t_pc)) { + if ((obj != nullptr) && (obj->IsPC() || obj->IsNPC())) { auto adjustment = d20Sys.D20QueryPython(parent, "Armor Check Penalty Adjustment", armor); res += adjustment; //The adjustment is a positive value, the penalty is a negative value res = std::min(res, 0); From 8c9ef5cc0178b87138c51a3c845ef229dd3ce821 Mon Sep 17 00:00:00 2001 From: doug1234 Date: Mon, 11 Jan 2021 21:16:04 -0500 Subject: [PATCH 4/4] Removed unnecessary include. --- TemplePlus/condition.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/TemplePlus/condition.cpp b/TemplePlus/condition.cpp index 8a52dcfc7..a6de25fe3 100644 --- a/TemplePlus/condition.cpp +++ b/TemplePlus/condition.cpp @@ -37,7 +37,6 @@ #include "gamesystems/d20/d20stats.h" #include "d20_race.h" #include "ai.h" -#include "ui/ui_systems.h" #define CB int(__cdecl)(DispatcherCallbackArgs) using DispCB = int(__cdecl )(DispatcherCallbackArgs);