feat: AttractVideoPlayer

- Service Button : Pause the attract video
- L2/L3 Buttons : Previous/next to cycle through all the attract videos
- Saving the selected video for future game launches
This commit is contained in:
Jujuforce 2024-07-21 15:50:45 +02:00
parent 5d5692da0b
commit eb39217a0b
6 changed files with 229 additions and 22 deletions

View File

@ -0,0 +1,7 @@
<Project>
<PropertyGroup>
<AssemblyName>Assembly-CSharp.AttractVideoPlayer.mm</AssemblyName>
<Description>Forfeit (red menu) and restart (yellow menu)</Description>
</PropertyGroup>
<Import Project="..\Mu3Mods.csproj" />
</Project>

View File

@ -0,0 +1,54 @@
using MU3.Operation;
using MU3.SceneObject;
using MU3.Sequence;
using MU3.Util;
using System.Collections.ObjectModel;
using UnityEngine;
namespace MU3.Operation;
class patch_OperationManager: OperationManager
{
private static readonly string CurrentSongIndexFilePath = "BepInEx/monomod/AttractVideoPlayer.currentSongIndex.txt";
private ReadOnlyCollection<MovieData> _movieDataList;
public new MovieData movieData
{
get
{
if (_movieDataList.Count > 0)
{
int currentSongIndex = 0;
try
{
currentSongIndex = int.Parse(System.IO.File.ReadAllText(CurrentSongIndexFilePath));
}
catch (System.Exception)
{
saveCurrentSongIndex(0);
}
if (currentSongIndex < 0)
{
currentSongIndex = _movieDataList.Count - 1;
saveCurrentSongIndex(currentSongIndex);
}
if (currentSongIndex >= _movieDataList.Count)
{
currentSongIndex = 0;
saveCurrentSongIndex(currentSongIndex);
}
Debug.Log("currentSongIndex: " + currentSongIndex);
return _movieDataList[currentSongIndex];
}
return null;
}
}
private void saveCurrentSongIndex(int currentSongIndex)
{
System.IO.File.WriteAllText(CurrentSongIndexFilePath, currentSongIndex.ToString());
}
}

View File

@ -0,0 +1,22 @@
using Mono.Cecil;
using MU3.AM;
using MU3.Operation;
using MU3.SceneObject;
using MU3.Sequence;
using MU3.Util;
using UnityEngine;
namespace MU3.Sequence;
class patch_Advertise : Advertise
{
private bool checkButtonOrAime()
{
if (SingletonStateMachine<AMManager, AMManager.EState>.instance.aimeReader.advCheck())
{
Singleton<OperationManager>.instance.loginType = OperationManager.LoginType.Aime;
return true;
}
return false;
}
}

View File

@ -0,0 +1,66 @@
using Mono.Cecil;
using MU3.Operation;
using MU3.SceneObject;
using MU3.Sequence;
using MU3.Util;
using UnityEngine;
namespace MU3;
class patch_AdvManager : AdvManager
{
private static readonly string CurrentSongIndexFilePath = "BepInEx/monomod/AttractVideoPlayer.currentSongIndex.txt";
private static readonly float DelayBetweenButtonPress = 0.5f;
private float lastButtonPressedTime = 0f;
private GameObject objMovie;
private CriManaMovieMaterial movieController;
private extern bool orig_initMovie();
public new bool initMovie()
{
return orig_initMovie();
}
private extern bool orig_exec();
public new bool exec()
{
if (Time.time - lastButtonPressedTime > DelayBetweenButtonPress)
{
if (Singleton<UIInput>.instance.getStateOn(UIInput.Key.Service))
{
lastButtonPressedTime = Time.time;
movieController?.player.Pause(!movieController.player.IsPaused());
}
else if (Singleton<UIInput>.instance.getStateOn(UIInput.Key.L2))
{
lastButtonPressedTime = Time.time;
addOffsetToCurrentSongIndexAndPlayMovie(-1);
}
else if (Singleton<UIInput>.instance.getStateOn(UIInput.Key.L3))
{
lastButtonPressedTime = Time.time;
addOffsetToCurrentSongIndexAndPlayMovie(1);
}
}
return orig_exec();
}
public void addOffsetToCurrentSongIndexAndPlayMovie(int offset)
{
try
{
int currentSongIndex = int.Parse(System.IO.File.ReadAllText(CurrentSongIndexFilePath)) + offset;
System.IO.File.WriteAllText(CurrentSongIndexFilePath, currentSongIndex.ToString());
}
catch (System.Exception) { }
movieController?.Stop();
Utility.destroyGameObject(ref movieController);
Utility.destroyGameObject(ref objMovie);
initMovie();
}
}

View File

@ -3,6 +3,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.9.34728.123
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AttractVideoPlayer", "AttractVideoPlayer\AttractVideoPlayer.csproj", "{003AD3C6-07CA-4824-B4BD-4BEF6F3D8999}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BetterGiveUp", "BetterGiveUp\BetterGiveUp.csproj", "{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NaiveRating", "NaiveRating\NaiveRating.csproj", "{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}"
@ -39,76 +41,154 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnlockMemoryChapters", "Unl
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8999}.Debug|Any CPU.ActiveCfg = Debug|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8999}.Debug|Any CPU.Build.0 = Debug|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8999}.Debug|x64.ActiveCfg = Debug|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8999}.Debug|x64.Build.0 = Debug|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8999}.Release|Any CPU.ActiveCfg = Release|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8999}.Release|Any CPU.Build.0 = Release|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8999}.Release|x64.ActiveCfg = Release|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8999}.Release|x64.Build.0 = Release|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Debug|Any CPU.ActiveCfg = Debug|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Debug|Any CPU.Build.0 = Debug|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Debug|x64.ActiveCfg = Debug|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Debug|x64.Build.0 = Debug|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Release|Any CPU.ActiveCfg = Release|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Release|Any CPU.Build.0 = Release|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Release|x64.ActiveCfg = Release|x64
{003AD3C6-07CA-4824-B4BD-4BEF6F3D8997}.Release|x64.Build.0 = Release|x64
{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Debug|Any CPU.ActiveCfg = Debug|x64
{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Debug|Any CPU.Build.0 = Debug|x64
{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Debug|x64.ActiveCfg = Debug|x64
{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Debug|x64.Build.0 = Debug|x64
{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Release|Any CPU.ActiveCfg = Release|x64
{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Release|Any CPU.Build.0 = Release|x64
{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Release|x64.ActiveCfg = Release|x64
{1FEA698E-DF5E-46CF-8023-F2B2F57885C5}.Release|x64.Build.0 = Release|x64
{A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Debug|Any CPU.ActiveCfg = Debug|x64
{A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Debug|Any CPU.Build.0 = Debug|x64
{A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Debug|x64.ActiveCfg = Debug|x64
{A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Debug|x64.Build.0 = Debug|x64
{A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Release|Any CPU.ActiveCfg = Release|x64
{A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Release|Any CPU.Build.0 = Release|x64
{A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Release|x64.ActiveCfg = Release|x64
{A1F32CB9-56C2-458A-B369-C61BD3A6AFBB}.Release|x64.Build.0 = Release|x64
{BB9CB905-9989-466C-9A91-D2F323005237}.Debug|Any CPU.ActiveCfg = Debug|x64
{BB9CB905-9989-466C-9A91-D2F323005237}.Debug|Any CPU.Build.0 = Debug|x64
{BB9CB905-9989-466C-9A91-D2F323005237}.Debug|x64.ActiveCfg = Debug|x64
{BB9CB905-9989-466C-9A91-D2F323005237}.Debug|x64.Build.0 = Debug|x64
{BB9CB905-9989-466C-9A91-D2F323005237}.Release|Any CPU.ActiveCfg = Release|x64
{BB9CB905-9989-466C-9A91-D2F323005237}.Release|Any CPU.Build.0 = Release|x64
{BB9CB905-9989-466C-9A91-D2F323005237}.Release|x64.ActiveCfg = Release|x64
{BB9CB905-9989-466C-9A91-D2F323005237}.Release|x64.Build.0 = Release|x64
{990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Debug|Any CPU.ActiveCfg = Debug|x64
{990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Debug|Any CPU.Build.0 = Debug|x64
{990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Debug|x64.ActiveCfg = Debug|x64
{990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Debug|x64.Build.0 = Debug|x64
{990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Release|Any CPU.ActiveCfg = Release|x64
{990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Release|Any CPU.Build.0 = Release|x64
{990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Release|x64.ActiveCfg = Release|x64
{990DCB96-7A47-45B9-B7CB-A6B2A1B6864A}.Release|x64.Build.0 = Release|x64
{66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Debug|Any CPU.ActiveCfg = Debug|x64
{66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Debug|Any CPU.Build.0 = Debug|x64
{66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Debug|x64.ActiveCfg = Debug|x64
{66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Debug|x64.Build.0 = Debug|x64
{66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Release|Any CPU.ActiveCfg = Release|x64
{66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Release|Any CPU.Build.0 = Release|x64
{66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Release|x64.ActiveCfg = Release|x64
{66DE85AD-58AD-467C-B1C0-6B98BB27265D}.Release|x64.Build.0 = Release|x64
{627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Debug|Any CPU.ActiveCfg = Debug|x64
{627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Debug|Any CPU.Build.0 = Debug|x64
{627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Debug|x64.ActiveCfg = Debug|x64
{627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Debug|x64.Build.0 = Debug|x64
{627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Release|Any CPU.ActiveCfg = Release|x64
{627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Release|Any CPU.Build.0 = Release|x64
{627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Release|x64.ActiveCfg = Release|x64
{627B3AA0-25E2-4C3E-A211-66BAB0E997E2}.Release|x64.Build.0 = Release|x64
{70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Debug|Any CPU.ActiveCfg = Debug|x64
{70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Debug|Any CPU.Build.0 = Debug|x64
{70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Debug|x64.ActiveCfg = Debug|x64
{70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Debug|x64.Build.0 = Debug|x64
{70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Release|Any CPU.ActiveCfg = Release|x64
{70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Release|Any CPU.Build.0 = Release|x64
{70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Release|x64.ActiveCfg = Release|x64
{70C775D7-8C47-4CFE-B91D-6AAEB17389F2}.Release|x64.Build.0 = Release|x64
{0BF799DF-8837-4372-9F36-705CDC22374C}.Debug|Any CPU.ActiveCfg = Debug|x64
{0BF799DF-8837-4372-9F36-705CDC22374C}.Debug|Any CPU.Build.0 = Debug|x64
{0BF799DF-8837-4372-9F36-705CDC22374C}.Debug|x64.ActiveCfg = Debug|x64
{0BF799DF-8837-4372-9F36-705CDC22374C}.Debug|x64.Build.0 = Debug|x64
{0BF799DF-8837-4372-9F36-705CDC22374C}.Release|Any CPU.ActiveCfg = Release|x64
{0BF799DF-8837-4372-9F36-705CDC22374C}.Release|Any CPU.Build.0 = Release|x64
{0BF799DF-8837-4372-9F36-705CDC22374C}.Release|x64.ActiveCfg = Release|x64
{0BF799DF-8837-4372-9F36-705CDC22374C}.Release|x64.Build.0 = Release|x64
{56B75395-ED26-479B-B59F-DABB74513335}.Debug|Any CPU.ActiveCfg = Debug|x64
{56B75395-ED26-479B-B59F-DABB74513335}.Debug|Any CPU.Build.0 = Debug|x64
{56B75395-ED26-479B-B59F-DABB74513335}.Debug|x64.ActiveCfg = Debug|x64
{56B75395-ED26-479B-B59F-DABB74513335}.Debug|x64.Build.0 = Debug|x64
{56B75395-ED26-479B-B59F-DABB74513335}.Release|Any CPU.ActiveCfg = Release|x64
{56B75395-ED26-479B-B59F-DABB74513335}.Release|Any CPU.Build.0 = Release|x64
{56B75395-ED26-479B-B59F-DABB74513335}.Release|x64.ActiveCfg = Release|x64
{56B75395-ED26-479B-B59F-DABB74513335}.Release|x64.Build.0 = Release|x64
{3F05931E-4444-4616-A0AC-047809821B0E}.Debug|Any CPU.ActiveCfg = Debug|x64
{3F05931E-4444-4616-A0AC-047809821B0E}.Debug|Any CPU.Build.0 = Debug|x64
{3F05931E-4444-4616-A0AC-047809821B0E}.Debug|x64.ActiveCfg = Debug|x64
{3F05931E-4444-4616-A0AC-047809821B0E}.Debug|x64.Build.0 = Debug|x64
{3F05931E-4444-4616-A0AC-047809821B0E}.Release|Any CPU.ActiveCfg = Release|x64
{3F05931E-4444-4616-A0AC-047809821B0E}.Release|Any CPU.Build.0 = Release|x64
{3F05931E-4444-4616-A0AC-047809821B0E}.Release|x64.ActiveCfg = Release|x64
{3F05931E-4444-4616-A0AC-047809821B0E}.Release|x64.Build.0 = Release|x64
{965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Debug|Any CPU.ActiveCfg = Debug|x64
{965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Debug|Any CPU.Build.0 = Debug|x64
{965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Debug|x64.ActiveCfg = Debug|x64
{965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Debug|x64.Build.0 = Debug|x64
{965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Release|Any CPU.ActiveCfg = Release|x64
{965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Release|Any CPU.Build.0 = Release|x64
{965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Release|x64.ActiveCfg = Release|x64
{965FCDBC-12EA-4F31-AAF6-9C4C3B9F7022}.Release|x64.Build.0 = Release|x64
{0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Debug|Any CPU.ActiveCfg = Debug|x64
{0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Debug|Any CPU.Build.0 = Debug|x64
{0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Debug|x64.ActiveCfg = Debug|x64
{0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Debug|x64.Build.0 = Debug|x64
{0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Release|Any CPU.ActiveCfg = Release|x64
{0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Release|Any CPU.Build.0 = Release|x64
{0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Release|x64.ActiveCfg = Release|x64
{0C3E8145-F91B-4F1F-97D1-17E12D49891B}.Release|x64.Build.0 = Release|x64
{C8948C3E-0434-429E-AFE6-4FB2DF246872}.Debug|Any CPU.ActiveCfg = Debug|x64
{C8948C3E-0434-429E-AFE6-4FB2DF246872}.Debug|Any CPU.Build.0 = Debug|x64
{C8948C3E-0434-429E-AFE6-4FB2DF246872}.Debug|x64.ActiveCfg = Debug|x64
{C8948C3E-0434-429E-AFE6-4FB2DF246872}.Debug|x64.Build.0 = Debug|x64
{C8948C3E-0434-429E-AFE6-4FB2DF246872}.Release|Any CPU.ActiveCfg = Release|x64
{C8948C3E-0434-429E-AFE6-4FB2DF246872}.Release|Any CPU.Build.0 = Release|x64
{C8948C3E-0434-429E-AFE6-4FB2DF246872}.Release|x64.ActiveCfg = Release|x64
{C8948C3E-0434-429E-AFE6-4FB2DF246872}.Release|x64.Build.0 = Release|x64
{6C91EB92-3A30-43B5-8954-E84C610C1D67}.Debug|Any CPU.ActiveCfg = Debug|x64
{6C91EB92-3A30-43B5-8954-E84C610C1D67}.Debug|Any CPU.Build.0 = Debug|x64
{6C91EB92-3A30-43B5-8954-E84C610C1D67}.Debug|x64.ActiveCfg = Debug|x64
{6C91EB92-3A30-43B5-8954-E84C610C1D67}.Debug|x64.Build.0 = Debug|x64
{6C91EB92-3A30-43B5-8954-E84C610C1D67}.Release|Any CPU.ActiveCfg = Release|x64
{6C91EB92-3A30-43B5-8954-E84C610C1D67}.Release|Any CPU.Build.0 = Release|x64
{6C91EB92-3A30-43B5-8954-E84C610C1D67}.Release|x64.ActiveCfg = Release|x64
{6C91EB92-3A30-43B5-8954-E84C610C1D67}.Release|x64.Build.0 = Release|x64
{3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Debug|Any CPU.ActiveCfg = Debug|x64
{3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Debug|Any CPU.Build.0 = Debug|x64
{3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Debug|x64.ActiveCfg = Debug|x64
{3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Debug|x64.Build.0 = Debug|x64
{3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Release|Any CPU.ActiveCfg = Release|x64
{3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Release|Any CPU.Build.0 = Release|x64
{3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Release|x64.ActiveCfg = Release|x64
{3B9B843D-DCA0-41FE-B642-6BCB187BBD5D}.Release|x64.Build.0 = Release|x64
{3A217A12-6082-491B-89F6-C1D13AD69A19}.Debug|Any CPU.ActiveCfg = Debug|x64
{3A217A12-6082-491B-89F6-C1D13AD69A19}.Debug|Any CPU.Build.0 = Debug|x64
{3A217A12-6082-491B-89F6-C1D13AD69A19}.Debug|x64.ActiveCfg = Debug|x64
{3A217A12-6082-491B-89F6-C1D13AD69A19}.Debug|x64.Build.0 = Debug|x64
{3A217A12-6082-491B-89F6-C1D13AD69A19}.Release|Any CPU.ActiveCfg = Release|x64
{3A217A12-6082-491B-89F6-C1D13AD69A19}.Release|Any CPU.Build.0 = Release|x64
{3A217A12-6082-491B-89F6-C1D13AD69A19}.Release|x64.ActiveCfg = Release|x64
{3A217A12-6082-491B-89F6-C1D13AD69A19}.Release|x64.Build.0 = Release|x64
EndGlobalSection

View File

@ -1,22 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net35</TargetFramework>
<AssemblyName>Assembly-CSharp.UnlockAndSetJewelBoostNine.mm</AssemblyName>
<Company>7EVENDAYS⇔HOLIDAYS</Company>
<Description>Unlock and set the jewel boost to max</Description>
<Version>1.7.0</Version>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<LangVersion>latest</LangVersion>
<Platforms>x64</Platforms>
</PropertyGroup>
<ItemGroup>
<Reference Include="mscorlib"><HintPath>..\Common\mscorlib.dll</HintPath></Reference>
<Reference Include="UnityEngine"><HintPath>..\Common\UnityEngine.dll</HintPath></Reference>
<ProjectReference Include="..\Common\Assembly-CSharp_unpacked\Assembly-CSharp_unpacked.csproj" />
</ItemGroup>
<Target Name="CopyDLLs" AfterTargets="Build">
<Copy SourceFiles="$(TargetDir)$(AssemblyName).dll" DestinationFolder="..\Common\mu3\BepInEx\monomod" />
</Target>
</Project>