Files
psycastDontNeedPsyfocus/psycastDontNeedPsyfocus/HarmonyPatch.cs

41 lines
1.7 KiB
C#

using RimWorld;
using HarmonyLib;
using System.Reflection;
using Verse;
namespace psycastDontNeedPsyfocus
{
[StaticConstructorOnStartup]
public static class HarmonyPatches
{
static HarmonyPatches()
{
var harmony = new Harmony("com.a4plane.psycastDontNeedPsyfocus");
harmony.PatchAll(Assembly.GetExecutingAssembly());
}
}
//패치안됨 postfix해서 값 긴빠이해서 수정해서 넘기게 해봐야할듯
//초집중 계산 부분 다른곳에 있는 듯
//패치할 후보들
//abilityDef클래스에서 xml로 부터 값을 얻어서 값을 반환하는 psyfocusCost속성이 있음 코드가 매우 간결해서 인라인 처리됬을수도 아닐수도
//FinalPsyfocusCost메서드에서 위의 속성을 참조함 그외에 따로 psyfocusCostfortarget을 참조하는데 이건 위의 저 속성 참조안하고 그냥 0을 반환함(???)
//abilityDef클래스에서 위의 속성을 참조하는데 코드보면 퍼센트 표시해서 ui출력으로 쓰는것 같으므로 무시
//psycast클래스의 activate메서드에서 위의 속성을 참조해 시전가능한지 체크하고있음 => 이제보니까 제가 찾던 메서드 여기있네요
//CanCast속성도 한번 보면 좋을듯?
//def읽을때 focuscost부분을 0으로 고정시키게 해야겠음 아마 comp쪽에서 읽는듯
[HarmonyPatch(typeof(Verb_CastPsycast), nameof(Verb_CastPsycast.ValidateTarget))]
public static class ValidateTarget_ValidateTarget_Patch
{
static void postfix(ref bool __result/*,ref Ability ability*/)
{
Log.Message("aaa");
__result = true;
}
}
}