diff --git a/.idea/.idea.psycastDontNeedPsyfocus/.idea/.gitignore b/.idea/.idea.psycastDontNeedPsyfocus/.idea/.gitignore new file mode 100644 index 0000000..08fd53b --- /dev/null +++ b/.idea/.idea.psycastDontNeedPsyfocus/.idea/.gitignore @@ -0,0 +1,13 @@ +# 디폴트 무시된 파일 +/shelf/ +/workspace.xml +# Rider에서 무시된 파일 +/modules.xml +/.idea.psycastDontNeedPsyfocus.iml +/contentModel.xml +/projectSettingsUpdater.xml +# 에디터 기반 HTTP 클라이언트 요청 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.psycastDontNeedPsyfocus/.idea/indexLayout.xml b/.idea/.idea.psycastDontNeedPsyfocus/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.psycastDontNeedPsyfocus/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.psycastDontNeedPsyfocus/.idea/vcs.xml b/.idea/.idea.psycastDontNeedPsyfocus/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/.idea.psycastDontNeedPsyfocus/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/psycastDontNeedPsyfocus/HarmonyPatch.cs b/psycastDontNeedPsyfocus/HarmonyPatch.cs index a109427..ac15c1a 100644 --- a/psycastDontNeedPsyfocus/HarmonyPatch.cs +++ b/psycastDontNeedPsyfocus/HarmonyPatch.cs @@ -11,32 +11,64 @@ namespace psycastDontNeedPsyfocus static HarmonyPatches() { var harmony = new Harmony("com.a4plane.psycastDontNeedPsyfocus"); - harmony.PatchAll(Assembly.GetExecutingAssembly()); + //harmony.PatchAll(Assembly.GetExecutingAssembly()); + + var VPEMod = AccessTools.TypeByName("VanillaPsycastsExpanded.AbilityExtension"); + if (VPEMod != null) + { + Log.Message("find VPE"); + var method = AccessTools.Method(VPEMod, "GetPsyfocusUsedByPawn"); + if (method != null) + { + harmony.Patch(method, postfix: new HarmonyMethod(typeof(HarmonyPatches), nameof(Postfix_VPE))); + } + } + else + { + Log.Message("Cant find vpe"); + } + + var Vmethod = typeof(AbilityDef).GetProperty(nameof(AbilityDef.PsyfocusCost)).GetGetMethod(); + harmony.Patch(Vmethod, postfix: new HarmonyMethod(typeof(HarmonyPatch), nameof(Postfix_V))); + if (Vmethod != null) + { + Log.Message("find v method"); + } + } + + public static void Postfix_VPE(ref float __result) + { + Log.Message("qweqwwqe"); + __result = 0; + } + + public static void Postfix_V(ref float __result) + { + Log.Message("eweqw"); + __result = 0; } } - //def에서 초집중 값 읽어오는 부분 패치해서 됨 //todo ui에서 초집중 요소 날리기 - [HarmonyPatch] - class Patcher - { - public static MethodBase TargetMethod() - { - return typeof(AbilityDef).GetProperty(nameof(AbilityDef.PsyfocusCost)).GetGetMethod(); - } - - public static void Postfix(ref float __result) - { - //Log.Message("qewqwe"); - __result = 0f; - } - //public static class ValidateTarget_ValidateTarget_Patch - //{ - // static void postfix(ref bool __result/*,ref Ability ability*/) - // { - // Log.Message("aaa"); - // __result = true; - // } - //} - } + //[HarmonyPatch] + //class Patcher + //{ + // public static MethodBase TargetMethod() + // { + // return typeof(AbilityDef).GetProperty(nameof(AbilityDef.PsyfocusCost)).GetGetMethod(); + // } + // public static void Postfix(ref float __result) + // { + // //Log.Message("qewqwe"); + // __result = 0f; + // } + // //public static class ValidateTarget_ValidateTarget_Patch + // //{ + // // static void postfix(ref bool __result/*,ref Ability ability*/) + // // { + // // Log.Message("aaa"); + // // __result = true; + // // } + // //} + //} }