Compare commits

...

6 Commits

Author SHA1 Message Date
6133df6cfb ㄹㅈ러대ㅓㅑㅈㄹ 2025-06-02 13:49:31 +09:00
7a7db6adb2 Merge branch 'master' of https://a4plane.duckdns.org/a4plane/psycastDontNeedPsyfocus 2025-06-02 13:47:09 +09:00
99456cc383 ㅓㅑㅐ허ㅑ커냐ㅐ호ㅓ속애허내ㅓㄱ 2025-06-02 13:46:56 +09:00
aef927763c qwdqwd 2025-06-02 13:46:05 +09:00
377f440c46 커밋 중간 2025-05-30 13:47:01 +09:00
6ee74a928c 됨? => 안됨
vpe 호환 => 메서드를 찾지를 못함 타입 한번 봐야할듯
바닐라 => 망가짐 위와 비슷한 이유일듯
2025-05-28 14:09:32 +09:00
6 changed files with 116 additions and 25 deletions

View File

@@ -0,0 +1,30 @@
name: build dll
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup NuGet
uses: NuGet/setup-nuget@v1.1.1
- name: Restore NuGet packages
run: nuget restore psycastDontNeedPsyfocus.sln
- name: Build with MSBuild
run: msbuild psycastDontNeedPsyfocus.csproj /p:Configuration=Release
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: mod-dll
path: bin\Release\psycastDontNeedPsyfocus.dll

13
.idea/.idea.psycastDontNeedPsyfocus/.idea/.gitignore generated vendored Normal file
View File

@@ -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

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@@ -11,32 +11,66 @@ 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");
}
MethodBase Vmethod = typeof(AbilityDef).GetProperty(nameof(AbilityDef.PsyfocusCost)).GetGetMethod();
Log.Message(Vmethod.ToString());
//메서드는 발견한듯?
harmony.Patch(Vmethod, postfix: new HarmonyMethod(typeof(HarmonyPatches), 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;
// // }
// //}
//}
}

View File

@@ -18,7 +18,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\1.5\Assemblies\</OutputPath>
<OutputPath>..\..\..\Program Files %28x86%29\Steam\steamapps\common\RimWorld\Mods\PsycastDontNeedPsyfocus\1.5\Assemblies\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>