From 8c277730bfcacb4f769fe3e69abeab8ce7636889 Mon Sep 17 00:00:00 2001 From: NovaRain Date: Thu, 5 Oct 2023 09:26:35 +0800 Subject: [PATCH] Updated NPC combat control mod for player's Jinxed trait/perk * controlled critters will now be "Jinxed" as well --- .../gl_partycontrol_lite.int | Bin 5420 -> 5530 bytes .../gl_partycontrol_lite.ssl | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/artifacts/example_mods/PartyControl_Lite/gl_partycontrol_lite.int b/artifacts/example_mods/PartyControl_Lite/gl_partycontrol_lite.int index 4e3681f8adfc2936cfdfae5d6d82dbe350b4d0ae..09d964b3d4f1874acca2b14a19ad10e794ff4a56 100644 GIT binary patch delta 827 zcmZ3ZHA{QK%la)03=GT+3=B04D1b)_%AEwIp_H%)l(7a%Ln+}7DB}o}hEgIhb8bNe zpp?ij2xD^w<2Ozo?imLd85kHC8-yD4Cs%PRbMrPxHfS|yHt;maOkTyU%=lvRIqtKP zXTYkM8jKDwf|NHHH%Nm-cy>(Q!lN&_0mNoN$eKW8c^M}E;gRJvX^?2pZ;%41;nkU} z#;eXaZ?Ye+K4ahHI$jSZLA}W*cr|1MltA(fj15K;Ko+<(l{J_&=!3-g;wJO(U1jW= z{D?1?F>7)Fzh~-&1{RPE{~Hj=zy#9)=5aQBhS<)3ra_{?6=pL71B$A$hR+bwK{kT* zF@VW3Fv-}+)F3r^4!^Nv3B)FW60kTcD3m}ffvCxKyegCXgxDqv35W>^s(}Owcrm#_AX@Sd#7x0FuqL>ff;p4F2l w04FSHQW4pPkQLcBSx+Qevk9yc?gCK_hzh6+7+|)EI!!(#qRH4a`HhGJ0J-A6B>(^b delta 672 zcmbQGy+&)o%lcys3=GT+3=B04D1b)?%AEwIp_I@vC}RzjhEl>(P{t7`4W)!(>TW>= zpp-}tgt0k;@f)WM17m~G0Y;EWgK>j2h{ZjpL88I6LBBz2au&BTFGOrhg9KP)2DdWf zugQD3&r03{sbyelFgm~p(hk$jb87M;9(~C}XtE{{vw4Lkzv7YQb%U4&Qp0OES%g=e zal>RAUVX*|lXG}Im;~-k-o~rJ#D8h>171nSg2}&luQJY=e1R{Qv1YOzzbEsf2A0Wh z_>Co18dyLk2&jNa2G$0l27M4qfNOFNugc^Y0U05IYajszPPkOe!r!?$uWB`Zc zLRd%&S4}=6Jk`1ctbw_~2;x=|DMZ*oLZ5+wff1%h!~-EK;xT!SNVcX3SU=oCkzEiK XjZeVh3~-%SCL4%qGKx%&5_JFoBGi`2 diff --git a/artifacts/example_mods/PartyControl_Lite/gl_partycontrol_lite.ssl b/artifacts/example_mods/PartyControl_Lite/gl_partycontrol_lite.ssl index 66a97c87..06310dd4 100644 --- a/artifacts/example_mods/PartyControl_Lite/gl_partycontrol_lite.ssl +++ b/artifacts/example_mods/PartyControl_Lite/gl_partycontrol_lite.ssl @@ -15,7 +15,7 @@ Requires sfall 3.8.40 or higher - version 1.3 + version 1.4 */ @@ -47,8 +47,12 @@ variable dudeLightInt, dudeLightDist; +// returns non-zero for a controlled NPC procedure AllowControl(variable pid) begin - return ((pidList == 0 or scan_array(pidList, pid bwand 0xFFFFFF) != -1) and (party_member_obj(pid))); + if (pidList) then begin + return scan_array(pidList, pid bwand 0xFFFFFF) != -1; + end + return party_member_obj(pid); end procedure SetLight(variable critter, variable lInt, variable lDist) begin @@ -102,6 +106,10 @@ procedure CombatTurn_Handler begin level := has_trait(TRAIT_PERK, real_dude_obj, perkID); if (level) then critter_add_trait(critter, TRAIT_PERK, perkID, level); end + // special handling if dude has Jinxed trait/perk + if (has_trait(TRAIT_TRAIT, real_dude_obj, TRAIT_jinxed) or has_trait(TRAIT_PERK, real_dude_obj, PERK_jinxed_perk)) then begin + critter_add_trait(critter, TRAIT_PERK, PERK_jinxed_perk, 1); + end intface_redraw; obj_set_light_level(critter, 100, 4); @@ -141,6 +149,8 @@ procedure CombatTurn_Handler begin level := has_trait(TRAIT_PERK, real_dude_obj, perkID); if (level) then critter_rm_trait(critter, TRAIT_PERK, perkID, level); end + // special handling for Jinxed + critter_rm_trait(critter, TRAIT_PERK, PERK_jinxed_perk, -1); end if (status < 0) then begin @@ -155,6 +165,7 @@ procedure GameModeChange_Handler begin inControl := false; npcControl := 0; move_to(dude_obj, dude_tile, dude_elevation); + DEBUGMSG("Move to dude after NPC control.") end end