From bd8538b83f96b148f68aab528c3cb4e1d7edb168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Majdand=C5=BEi=C4=87?= Date: Mon, 10 Apr 2023 17:52:17 +0200 Subject: [PATCH] Implement energy regen patch --- Projects/TerraTech/TerraTech/Class1.cs | 116 +++++++++++------- .../TerraTech/bin/Debug/TerraTech.dll | Bin 10240 -> 10752 bytes .../TerraTech/bin/Debug/TerraTech.pdb | Bin 24064 -> 22016 bytes .../TerraTech/obj/Debug/TerraTech.dll | Bin 10240 -> 10752 bytes .../TerraTech/obj/Debug/TerraTech.pdb | Bin 24064 -> 22016 bytes 5 files changed, 69 insertions(+), 47 deletions(-) diff --git a/Projects/TerraTech/TerraTech/Class1.cs b/Projects/TerraTech/TerraTech/Class1.cs index 058573a..a80f3c8 100644 --- a/Projects/TerraTech/TerraTech/Class1.cs +++ b/Projects/TerraTech/TerraTech/Class1.cs @@ -11,6 +11,7 @@ using UnityEngine; // TODO: Make more energy generate // TODO: Make attractor more range // TODO: Make battery bigger +// TODO: Make shield and repair bigger namespace TerraTech { [BepInPlugin(pluginGuid, pluginName, pluginVersion)] @@ -35,7 +36,7 @@ namespace TerraTech { allProjectilesHoming = Config.Bind("General", "Make All Projectiles Home", false); shootingSpeedMultiplier.SettingChanged += (sender, args) => WeaponPropertiesManager.DoPatch(); - WeaponPropertiesManager.DoPatch(); + energyGenMultiplier.SettingChanged += (sender, args) => GeneratorPropertiesManager.DoPatch(); Logger.LogInfo("Cyka mod loaded"); HarmonyFileLog.Enabled = true; @@ -59,15 +60,6 @@ namespace TerraTech { } } - [HarmonyPatch(typeof(ModuleEnergy), "Supply")] - public class EnergyGenerationMultiplierPatch { - static void Prefix(EnergyRegulator.EnergyType type, ref float energyAmount) { - if (energyAmount > 0) { - energyAmount *= Main.energyGenMultiplier.Value; - } - } - } - [HarmonyPatch(typeof(Projectile), "Fire")] public class HomingProjectilePatch { private static Dictionary patchedObjects = new Dictionary(); @@ -88,57 +80,34 @@ namespace TerraTech { private static Dictionary weapons = new Dictionary(); [HarmonyPostfix] - [HarmonyPatch(typeof(ModuleWeaponGun), "OnPool")] - static void Postfix1WeaponCreate(ModuleWeaponGun __instance) { - AddIfMissing(__instance); - } - - [HarmonyPostfix] - [HarmonyPatch(typeof(ModuleWeaponGun), "OnSpawn")] - static void Postfix2WeaponCreate(ModuleWeaponGun __instance) { - AddIfMissing(__instance); - } - - private static void AddIfMissing(ModuleWeaponGun weaponGun) { - if (!weapons.ContainsKey(weaponGun)) { - weapons.Add(weaponGun, weaponGun.m_ShotCooldown); - if (ShouldPatch()) { - DoPatchSingle(weaponGun); - } + [HarmonyPatch(typeof(ModuleWeaponGun), "OnAttached")] + static void PostfixCreate(ModuleWeaponGun __instance) { + if (!weapons.ContainsKey(__instance)) { + weapons.Add(__instance, __instance.m_ShotCooldown); + DoPatchSingle(__instance); } } [HarmonyPostfix] - [HarmonyPatch(typeof(ModuleWeaponGun), "OnRecycle")] - static void Postfix1WeaponDestroy(ModuleWeaponGun __instance) { + [HarmonyPatch(typeof(ModuleWeaponGun), "OnDetaching")] + static void PostfixDestroy(ModuleWeaponGun __instance) { + DoRestoreSingle(__instance); weapons.Remove(__instance); } - // [HarmonyPrefix] - // [HarmonyPatch(typeof(ModuleWeaponGun), "ProcessFiring")] - // static void PrefixProcessFiring(ModuleWeaponGun __instance, ref bool firing) { - // if (firing) { - // Console.WriteLine("" + cooldowns.ContainsKey(__instance) + " " + __instance.m_ShotCooldown); - // } - // } - public static void DoPatch() { Console.WriteLine("Modifying " + weapons.Count + " weapons"); - Console.WriteLine("Should patch: " + ShouldPatch()); foreach (KeyValuePair keyValuePair in weapons) { - if (ShouldPatch()) { - DoPatchSingle(keyValuePair.Key); - } else { - DoRestoreSingle(keyValuePair.Key); - } + DoRestoreSingle(keyValuePair.Key); + DoPatchSingle(keyValuePair.Key); } } static void DoPatchSingle(ModuleWeaponGun weapon) { - // Console.WriteLine("Patching " + weapon.name); - // Console.WriteLine("Old value " + weapon.m_ShotCooldown); + Console.WriteLine("Patching " + weapon.name); + Console.WriteLine("Old value " + weapon.m_ShotCooldown); weapon.m_ShotCooldown /= Main.shootingSpeedMultiplier.Value; - // Console.WriteLine("New value " + weapon.m_ShotCooldown); + Console.WriteLine("New value " + weapon.m_ShotCooldown); } static void DoRestoreSingle(ModuleWeaponGun weapon) { @@ -146,9 +115,62 @@ namespace TerraTech { weapon.m_ShotCooldown = weapons[weapon]; } } + } + + [HarmonyPatch] + public class GeneratorPropertiesManager { + private static Dictionary generators = new Dictionary(); + + [HarmonyPostfix] + [HarmonyPatch(typeof(ModuleEnergy), "OnAttached")] + static void PostfixCreate(ModuleEnergy __instance) { + if (!generators.ContainsKey(__instance)) { + generators.Add(__instance, GetValue(__instance)); + if (ShouldPatch()) { + DoPatchSingle(__instance); + } + } + } + + [HarmonyPostfix] + [HarmonyPatch(typeof(ModuleEnergy), "OnDetaching")] + static void PostfixDestroy(ModuleEnergy __instance) { + DoRestoreSingle(__instance); + generators.Remove(__instance); + } + + public static void DoPatch() { + Console.WriteLine("Modifying " + generators.Count + " generators"); + Console.WriteLine("Should patch: " + ShouldPatch()); + foreach (KeyValuePair keyValuePair in generators) { + DoRestoreSingle(keyValuePair.Key); + DoPatchSingle(keyValuePair.Key); + } + } + + static void DoPatchSingle(ModuleEnergy moduleEnergy) { + Console.WriteLine("Patching " + moduleEnergy.name); + Console.WriteLine("Old value " + GetValue(moduleEnergy)); + SetValue(moduleEnergy, GetValue(moduleEnergy) * Main.energyGenMultiplier.Value); + Console.WriteLine("New value " + GetValue(moduleEnergy)); + } + + static void DoRestoreSingle(ModuleEnergy moduleEnergy) { + if (generators.ContainsKey(moduleEnergy)) { + SetValue(moduleEnergy, generators[moduleEnergy]); + } + } static bool ShouldPatch() { - return Math.Abs(Main.shootingSpeedMultiplier.Value - 1f) > 0.0001f; + return Math.Abs(Main.energyGenMultiplier.Value - 1f) > 0.0001f; + } + + private static float GetValue(ModuleEnergy moduleEnergy) { + return Traverse.Create(moduleEnergy).Field("m_OutputPerSecond").GetValue() as float? ?? 0f; + } + + private static void SetValue(ModuleEnergy moduleEnergy, float value) { + Traverse.Create(moduleEnergy).Field("m_OutputPerSecond").SetValue(value); } } } \ No newline at end of file diff --git a/Projects/TerraTech/TerraTech/bin/Debug/TerraTech.dll b/Projects/TerraTech/TerraTech/bin/Debug/TerraTech.dll index 3575c8737b2dd8dd2eeec11abcc5833b497e3836..ddc9f7c3cd6e26a66dd9655d048a766dfff0ee45 100644 GIT binary patch delta 4448 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 G_5T8j3Idq` delta 3777 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 diff --git a/Projects/TerraTech/TerraTech/bin/Debug/TerraTech.pdb b/Projects/TerraTech/TerraTech/bin/Debug/TerraTech.pdb index a5d811ec94e62ac2d502e875503708eebeb5a763..15066e8200999473c44f00b8fb97fd6c4747c6ad 100644 GIT binary patch literal 22016 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 Gz`p?)A&}+( literal 24064 zcmeI33viUzb;rL2X$2S&#H$!TDv%)9V4)R4;0NX*fx$+xFppqIwOOPU+90%eSB#-e zn{`SYCm|l1IBh(2W2l+hZJL?PggAC$Bz(p&8nd7pN;}`AhD-*xuJF&mf+Pmkqq1ukR>l+ypyivBNTl^4wI^&J~me6!~Jb%!wrU-!(_LGb#x_0Meolfjk$*!!^!PrSPN`FqokJtVUs_*Ag< z=>KHCb>JJ{`N83v7cTC8E0%Q|?HfQ@n<)6}U_Ce+tN|y0mw>WKk0FXeXWMd2FvcsPRicO{!Ro(Vs~Z3WvgX>z3r9VmHkzj_{cuX4wtjxDwiGCSSs+& zNZ=(Y2k_LU&i>c09Z{iRD>xs#>|dHA_g#1JX`SyX+XAXA0aoDMA%QnvdGi(N=Fc>o zp6j}|WD@C2_p09A$-!i1C>C}f4Jwuu9)rmdH!Nk7qFk^EfosMr# z^z?V3xsk{@dCV@t;Rpl12 zvMMlQ322XIsa;pSZvJ2G`eDTT^CM*->Fewe6$4Z{_lC{2S_j_m6Iu z{uN8T6*!yzzxd?WHxH-(zx>j%?dq>H=m=V%RWKCFPk=7d1Z(kWHjq;PA0Uq0NO}@J z&xGIg_*R|McAPV@m6^?+)n{zs~5?_j%HFl;0=*V{|M=#mL_E z*)j@!wz+v8a!S3<^)15Kq7!|et9pCa_jM*SndIP3%4P&(>t2R-(@t%Cy(@!yBR874 zZBrGrZ)$99YzC;OwL3D|*!5m4n<^PrKz_0ZeDLU6Kh8pZbR;;iQ~TeZK90FQm-!B% z^dH?E_L)ww1UUSA5}C}}WZH_z$Y>mOvY^`f`sYhVEl!tDx?}%H-gtR06g}w2+mY&u z5B2n`SbBVt`~$R6eP2go)RG`OUynvc}v&$+(dFTM^CTJ*EIzHVb3rqT)Do0a=~+C2=aov(Yo)`pkMzG^$bIewtfDU9_g zKh{nCsl5Ze1?%H^#@InSwej`Jj5Frf$H?_pxX+uMOkZ&0RNU-g2IKsZA7@if4-!2m zz3J@Kxo2&7#KiOJ1J;3Tl%SiXt99}lP@QvkLe~a2aTd-qXQAg|ZE|TII~kS|4P~0M-nS^N^?*6g%BK7#RCD_+=+@wa z^f8l^-f_=j+`9|LUC*GbZHpK?r+TcXV45)oLGat~(Btnw=R!XUT>;JVf2E_hKsA<5 zmsYfu<^NXbz0kX$Do5`ojoyQgk-rD}yHI3f%8`jl%eOc{K5c`KL#Z3w2c@pz`)R27 zJ>uwL=qD(ehsBVORvWAWrvU3Rjv&q*V`FGOq zcF@|$NN79t?#uQN1fQgT$>~$jUxPBnYzy=tbUpMl&|c^R(CgV{wXEveU=6t5P~VT% zfVFuMWB*7Ntbs$cS3kc8)q0m4rn)pfLGW4frKit9=RqHYF2`%DwO{41k7La9deYW+ z)!ek_t^JA^TSl^A&;LF=)aM^S>!DwOHn0tu0C~I4D2>u*=4m=4?WH6234d7;Q4|qQ)pZ_@c0(c6P{m{Pf zfPA8Qfx&+cwzqC4k#iVh9D~It4X=o7kpb;%*)0Kk!pLj`RCiCB_Y|no(ieNhtdkEw zwL5Qx%3oAH#T-g2c0nd)A8mwc{oDpkKsP}j2@a!!7^#4GXfb-7XY^X@R%jpAu#OgW zSh0M4H&frrp|q}8uX(ysZ&p`TP=5{`Rwm%*uIF*c$I666m+}3KAEkC$*Q)Ew%bb&M z+aLDht1?P1)c^Fisei2>A7fsO`bWQZ??5MmjqI-*K>6Ye zyR_WGb?^qyI=ci?(S)F}Zp)_qnW4mP-t&jgP3@_H0bU^{Q-hhNn-YVGbg~C)oh#pv z9MrLa6(f(=jOz#2$W(B`<`U(4%gaIdxVr1&>D{Tp{Tq@y7!!4K>88!8)IbIv zrk^c?$)Wvg26yuQQhcTNmXXA+)Rk-yhj|ZR{XH8q%O(kyJE~_MqmqZoG9t6GT1Lik zP<4IzEEgk?Rj0OsemfoPwv9{j%Tnni!;cSiCWiV`y%{ryk@@p4nb<-4^y^(p)IRq9 zaw{DPye{>u{UK_KD*As9>;H{{*ik-$*~CV-kx=Ja=tAfW=rvIJ4NcH1=(X0wE}hUj!Mnh?qr0Gs94>$^1?#~T;H}2* zIYmFkHt_&LISlIE!Ly*3+qLvZw~A$q-*!DzzE~|*rPMn_$>?#~9|uo>r^HK6{jU(l z)A#G(kHKZ2zVQ$hd>71u+rVmYEU5J$-OKNjA13>e?pf5A97tpqaes7Pu6op|6EsiO zQu;xtOrQbI0i`^_3mX@!Nd<^{D=rr1a zp81a<=<3`%FqG8e$b62%cZj~9=fnWW?}u?jxA=ZKQ-g{9wySgLM`x7cUpwwd*pJqy zx81EQUCn6;RO_z|dPndf*5v|YyFCv(rqVpl#s2?<{qhDljlnd7qa8Ext)ubpysUN3 z2p+S<{AJ%oZzf;!m;QZxb=Z{JZ!z7Y_Hwk(>!n2e*FZ&IKH77U@9BNjfv}&5duwNH z%XT-=l}?|lpt39SS+u^CmR(s5oegb=&VhD7x9|q3)*Kp|b0h0yCF%0_f9ufKb`a4y z(8@88b<~htd6*lPk44}G<&+@a5F%2@SwWW6z!|mGzJR~4>1k29&ih&87ri!_LCDXE zQ%~dhF@Hp#B2RQZ^A?@!(!X@{^W-UC{+y`CyLr&_a+miHuKrw?kFRIS|J0>_=FBv1J)Gr>ks zXUjTpGq@d;ZQ2JO01tr=gO7v9z~kVv;0f?2;H#kCmne>z2G)ZMLA@K$dDR8>gF|2z zJO~PO$5$ORx9Ms*7L#u^*BqbEntb=-lX^3PtMc+)eGWNapXw}WXUKV;rmgumf1G3 zX88eD9=a!0o8n7U-_Dl1cB}(0N8MXi2Za}!zKtz&ZCY~k`3NynXt9`2G5E8==a|P9L`1wae4}DbudBK5Ut7Bi;M?=zhG~Ut%CrKOdX#>bK_VOCR}r+1I!EZcNK^ z^^cnRg|?zpe_9uzt-&$&;~S0s7(!sj;pT&F^7;|~NKp8aF@H`GZ~u_N6t`bwHzR?4 z$?EIcJU9P5TPgly@`4y&-{!mei*w_VT^|$V1tX+=8(Zeu6zODao_+Q8)yG&j{$^w< zu)nIY&w87pGeMwx4n1zGxjQ`A!%u6Q)}{D1cc=UMme(%!^Mxgg7cXsD9YdNHJa6q` z<@mHMoe(smV}Z)=86Pv>{Sk{lFgaM)U=9%W%8LwQA$78<=s+?3rRMqP$6Z#)yL4X@ zgV)`>w2$?8Xp8xIk!hZrS7$sq7+kw-bz7`$wS6h($6T6kZScGsz!#w6``qSIe2sh( znPAD%mbTVaZSA(v@VqCPHL98iK=FRHB=0p`V(i>+?lR1Mgo#=A3?%tn+I)1hq@|^O zaces^S1^2^XX?MJq?|@a|1UcIXIYq<-=30v*^lm6YkLyup=2V{86S-AOr(R3HEpeJ z%a$^)YyP6?HMJM$m0U5XO!@iuBfgHx4v$VU?RJke@S z4b>ZirK^Jaf2Ly5pY!ok1OHnFH{4v08k~jkTt4{cl0R1%5s%A59=Sf=qfZYu#Ug(= zzO`5TY~S<$+WM6b{o>{)p8Dz|Gyd%x-@2E)MO@16T0hvA3Kk81hY#rybaNhg2I@4%-R{yoe`!0F0 znEce567hu1cYWb2c>hQ~YFNL7{~Gqe@tNKQ{T`#;OrTfw6|%SYG;^&9J4Xg54`chCSv!Fq5usPXCi(0$WHP!>jZxZM4L z?hdAb(?Rd6_%(1jdE7~w-y(7+8D14#%=&Lc4&k~%@qVo-MyV+iPueoKK6wf5;{(Mh zHD%(Lun!I{U!Urn6}fj2`M&ZP?9-{#x;&3S9+sHuM@f1B_4qniqh zjs#?@75~Zi!v}a^3h|$8=!>kw`$5_ELwQ|!o5~H#ai2YWTytjpH~;8=Nc{%RJ^q`d z@4+n({<6)2lYd-_ue-F&i^^i{tFB$Pwtd90a&bTRm+U9^o*=KQHG|RF)s#h8u}|mF35`g=JI6DZahRajFhZ zhQ*O!>bM35;N#TdvKVFdosYy?*iQGzkCoy1+A!@VFex9W7W33y-kdT#H&N!})WUZB zZiO;GKlzXzB$rQ6=I2*j_Ib+W-wKM$o}uiBEjpv@P9*5%Qrzwy%KZF_%f3jNpI>p= zamxJs^2%G< diff --git a/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.dll b/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.dll index 3575c8737b2dd8dd2eeec11abcc5833b497e3836..ddc9f7c3cd6e26a66dd9655d048a766dfff0ee45 100644 GIT binary patch delta 4448 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 G_5T8j3Idq` delta 3777 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 diff --git a/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.pdb b/Projects/TerraTech/TerraTech/obj/Debug/TerraTech.pdb index a5d811ec94e62ac2d502e875503708eebeb5a763..15066e8200999473c44f00b8fb97fd6c4747c6ad 100644 GIT binary patch literal 22016 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 Gz`p?)A&}+( literal 24064 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