-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from nsgolova/scoring
Experimental scoring
- Loading branch information
Showing
17 changed files
with
638 additions
and
166 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,9 @@ | ||
bin/ | ||
obj/ | ||
.idea/ | ||
/packages/ | ||
riderModule.iml | ||
/_ReSharper.Caches/ | ||
/_ReSharper.Caches/ | ||
.idea | ||
.vscode | ||
.vs | ||
bin | ||
obj | ||
./BeatLeaderModifiers/BeatLeaderModifiers.csproj.user |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,134 +1,150 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
<PropertyGroup> | ||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
<ProductVersion>8.0.30703</ProductVersion> | ||
<SchemaVersion>2.0</SchemaVersion> | ||
<ProjectGuid>{A652D071-E511-4BD2-B49A-992C12385342}</ProjectGuid> | ||
<OutputType>Library</OutputType> | ||
<AppDesignerFolder>Properties</AppDesignerFolder> | ||
<RootNamespace>BeatLeaderModifiers</RootNamespace> | ||
<AssemblyName>BeatLeaderModifiers</AssemblyName> | ||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> | ||
<FileAlignment>512</FileAlignment> | ||
<DebugSymbols>true</DebugSymbols> | ||
<DebugType>portable</DebugType> | ||
<LocalRefsDir Condition="Exists('..\Refs')">..\Refs</LocalRefsDir> | ||
<BeatSaberDir>$(LocalRefsDir)</BeatSaberDir> | ||
<AppOutputBase>$(MSBuildProjectDirectory)\</AppOutputBase> | ||
<!--<PathMap>$(AppOutputBase)=X:\$(AssemblyName)\</PathMap>--> | ||
<ErrorReport>prompt</ErrorReport> | ||
<WarningLevel>4</WarningLevel> | ||
<LangVersion>latest</LangVersion> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> | ||
<Optimize>false</Optimize> | ||
<OutputPath>bin\Debug\</OutputPath> | ||
<DefineConstants>DEBUG;TRACE</DefineConstants> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' "> | ||
<Optimize>true</Optimize> | ||
<OutputPath>bin\Release\</OutputPath> | ||
<ErrorReport>prompt</ErrorReport> | ||
<WarningLevel>4</WarningLevel> | ||
</PropertyGroup> | ||
<PropertyGroup Condition="$(DefineConstants.Contains('CIBuild')) OR '$(NCrunch)' == '1'"> | ||
<DisableCopyToPlugins>True</DisableCopyToPlugins> | ||
</PropertyGroup> | ||
<PropertyGroup Condition="'$(NCrunch)' == '1'"> | ||
<DisableCopyToPlugins>True</DisableCopyToPlugins> | ||
<DisableZipRelease>True</DisableZipRelease> | ||
</PropertyGroup> | ||
<ItemGroup> | ||
<Reference Include="0Harmony"> | ||
<HintPath>$(BeatSaberDir)\Libs\0Harmony.dll</HintPath> | ||
</Reference> | ||
<Reference Include="BeatmapCore"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\BeatmapCore.dll</HintPath> | ||
</Reference> | ||
<Reference Include="BSML"> | ||
<HintPath>$(BeatSaberDir)\Plugins\BSML.dll</HintPath> | ||
</Reference> | ||
<Reference Include="SiraUtil"> | ||
<HintPath>$(BeatSaberDir)\Plugins\SiraUtil.dll</HintPath> | ||
</Reference> | ||
<Reference Include="SongCore"> | ||
<HintPath>$(BeatSaberDir)\Plugins\SongCore.dll</HintPath> | ||
</Reference> | ||
<Reference Include="System" /> | ||
<Reference Include="System.Core" /> | ||
<Reference Include="System.Xml.Linq" /> | ||
<Reference Include="System.Data.DataSetExtensions" /> | ||
<Reference Include="System.Data" /> | ||
<Reference Include="System.Xml" /> | ||
<Reference Include="Main"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Main.dll</HintPath> | ||
</Reference> | ||
<Reference Include="HMLib"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\HMLib.dll</HintPath> | ||
</Reference> | ||
<Reference Include="HMUI"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\HMUI.dll</HintPath> | ||
</Reference> | ||
<Reference Include="IPA.Loader"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\IPA.Loader.dll</HintPath> | ||
</Reference> | ||
<Reference Include="Unity.TextMeshPro"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Unity.TextMeshPro.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.AssetBundleModule"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.AssetBundleModule.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.CoreModule"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.CoreModule.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.UI"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.UI.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.UIElementsModule"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.UIElementsModule.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.UIModule"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.UIModule.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.VRModule"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.VRModule.dll</HintPath> | ||
</Reference> | ||
<Reference Include="Zenject"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Zenject.dll</HintPath> | ||
</Reference> | ||
<Reference Include="Zenject-usage"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Zenject-usage.dll</HintPath> | ||
</Reference> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<Compile Include="HarmonyPatches\HarmonyHelper.cs" /> | ||
<Compile Include="HarmonyPatches\SetContentPatch.cs" /> | ||
<Compile Include="Installers\OnAppInitInstaller.cs" /> | ||
<Compile Include="Installers\OnGameplayCoreInstaller.cs" /> | ||
<Compile Include="Installers\OnMenuInstaller.cs" /> | ||
<Compile Include="Managers\CharacteristicsManager.cs" /> | ||
<Compile Include="Plugin.cs" /> | ||
<Compile Include="Properties\AssemblyInfo.cs" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<EmbeddedResource Include="manifest.json" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<None Include="Directory.Build.props" Condition="Exists('Directory.Build.props')" /> | ||
<None Include="Directory.Build.targets" Condition="Exists('Directory.Build.targets')" /> | ||
<None Include="BeatLeaderModifiers.csproj.user" Condition="Exists('BeatLeaderModifiers.csproj.user')" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<PackageReference Include="BeatSaberModdingTools.Tasks"> | ||
<Version>1.2.3</Version> | ||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||
<PrivateAssets>all</PrivateAssets> | ||
</PackageReference> | ||
</ItemGroup> | ||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | ||
<PropertyGroup> | ||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
<ProductVersion>8.0.30703</ProductVersion> | ||
<SchemaVersion>2.0</SchemaVersion> | ||
<ProjectGuid>{A652D071-E511-4BD2-B49A-992C12385342}</ProjectGuid> | ||
<OutputType>Library</OutputType> | ||
<AppDesignerFolder>Properties</AppDesignerFolder> | ||
<RootNamespace>BeatLeaderModifiers</RootNamespace> | ||
<AssemblyName>BeatLeaderModifiers</AssemblyName> | ||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> | ||
<FileAlignment>512</FileAlignment> | ||
<DebugSymbols>true</DebugSymbols> | ||
<DebugType>portable</DebugType> | ||
<LocalRefsDir Condition="Exists('..\Refs')">..\Refs</LocalRefsDir> | ||
<BeatSaberDir>$(LocalRefsDir)</BeatSaberDir> | ||
<AppOutputBase>$(MSBuildProjectDirectory)\</AppOutputBase> | ||
<!--<PathMap>$(AppOutputBase)=X:\$(AssemblyName)\</PathMap>--> | ||
<ErrorReport>prompt</ErrorReport> | ||
<WarningLevel>4</WarningLevel> | ||
<LangVersion>latest</LangVersion> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> | ||
<Optimize>false</Optimize> | ||
<OutputPath>bin\Debug\</OutputPath> | ||
<DefineConstants>DEBUG;TRACE</DefineConstants> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' "> | ||
<Optimize>true</Optimize> | ||
<OutputPath>bin\Release\</OutputPath> | ||
<ErrorReport>prompt</ErrorReport> | ||
<WarningLevel>4</WarningLevel> | ||
</PropertyGroup> | ||
<PropertyGroup Condition="$(DefineConstants.Contains('CIBuild')) OR '$(NCrunch)' == '1'"> | ||
<DisableCopyToPlugins>True</DisableCopyToPlugins> | ||
</PropertyGroup> | ||
<PropertyGroup Condition="'$(NCrunch)' == '1'"> | ||
<DisableCopyToPlugins>True</DisableCopyToPlugins> | ||
<DisableZipRelease>True</DisableZipRelease> | ||
</PropertyGroup> | ||
<ItemGroup> | ||
<Reference Include="0Harmony"> | ||
<HintPath>$(BeatSaberDir)\Libs\0Harmony.dll</HintPath> | ||
</Reference> | ||
<Reference Include="BeatmapCore"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\BeatmapCore.dll</HintPath> | ||
</Reference> | ||
<Reference Include="BSML"> | ||
<HintPath>$(BeatSaberDir)\Plugins\BSML.dll</HintPath> | ||
</Reference> | ||
<Reference Include="GameplayCore, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | ||
<Private>False</Private> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\GameplayCore.dll</HintPath> | ||
<SpecificVersion>False</SpecificVersion> | ||
</Reference> | ||
<Reference Include="SiraUtil"> | ||
<HintPath>$(BeatSaberDir)\Plugins\SiraUtil.dll</HintPath> | ||
</Reference> | ||
<Reference Include="SongCore"> | ||
<HintPath>$(BeatSaberDir)\Plugins\SongCore.dll</HintPath> | ||
</Reference> | ||
<Reference Include="System" /> | ||
<Reference Include="System.Core" /> | ||
<Reference Include="System.Xml.Linq" /> | ||
<Reference Include="System.Data.DataSetExtensions" /> | ||
<Reference Include="System.Data" /> | ||
<Reference Include="System.Xml" /> | ||
<Reference Include="Main"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Main.dll</HintPath> | ||
</Reference> | ||
<Reference Include="HMLib"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\HMLib.dll</HintPath> | ||
</Reference> | ||
<Reference Include="HMUI"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\HMUI.dll</HintPath> | ||
</Reference> | ||
<Reference Include="IPA.Loader"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\IPA.Loader.dll</HintPath> | ||
</Reference> | ||
<Reference Include="Unity.TextMeshPro"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Unity.TextMeshPro.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.AssetBundleModule"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.AssetBundleModule.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.CoreModule"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.CoreModule.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.UI"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.UI.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.UIElementsModule"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.UIElementsModule.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.UIModule"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.UIModule.dll</HintPath> | ||
</Reference> | ||
<Reference Include="UnityEngine.VRModule"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\UnityEngine.VRModule.dll</HintPath> | ||
</Reference> | ||
<Reference Include="Zenject"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Zenject.dll</HintPath> | ||
</Reference> | ||
<Reference Include="Zenject-usage"> | ||
<HintPath>$(BeatSaberDir)\Beat Saber_Data\Managed\Zenject-usage.dll</HintPath> | ||
</Reference> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<Compile Include="HarmonyPatches\CutScoreBufferPatch.cs" /> | ||
<Compile Include="HarmonyPatches\HarmonyHelper.cs" /> | ||
<Compile Include="HarmonyPatches\NoteControllerPatch.cs" /> | ||
<Compile Include="HarmonyPatches\SetContentPatch.cs" /> | ||
<Compile Include="HarmonyPatches\StandardLevelBlaBlaPatch.cs" /> | ||
<Compile Include="Installers\OnAppInitInstaller.cs" /> | ||
<Compile Include="Installers\OnGameplayCoreInstaller.cs" /> | ||
<Compile Include="Installers\OnMenuInstaller.cs" /> | ||
<Compile Include="Managers\SongCoreInteropManager.cs" /> | ||
<Compile Include="Managers\BeatLeaderInteropManager.cs" /> | ||
<Compile Include="Managers\CharacteristicsManager.cs" /> | ||
<Compile Include="Managers\CutInterpolationManager.cs" /> | ||
<Compile Include="Plugin.cs" /> | ||
<Compile Include="Properties\AssemblyInfo.cs" /> | ||
<Compile Include="Utils\HarmonyUtils.cs" /> | ||
<Compile Include="Utils\InterpolationUtils.cs" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<EmbeddedResource Include="manifest.json" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<None Include="Directory.Build.props" Condition="Exists('Directory.Build.props')" /> | ||
<None Include="Directory.Build.targets" Condition="Exists('Directory.Build.targets')" /> | ||
<None Include="BeatLeaderModifiers.csproj.user" Condition="Exists('BeatLeaderModifiers.csproj.user')" /> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<PackageReference Include="BeatSaberModdingTools.Tasks"> | ||
<Version>1.2.3</Version> | ||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||
<PrivateAssets>all</PrivateAssets> | ||
</PackageReference> | ||
</ItemGroup> | ||
<ItemGroup> | ||
<EmbeddedResource Include="Icons\RhythmGame.png" /> | ||
</ItemGroup> | ||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Threading.Tasks; | ||
using HarmonyLib; | ||
using IPA.Utilities; | ||
using JetBrains.Annotations; | ||
using UnityEngine; | ||
|
||
namespace BeatLeaderModifiers { | ||
|
||
[HarmonyPatch(typeof(CutScoreBuffer), "RefreshScores")] | ||
internal class CutScoreBufferPatch { | ||
|
||
//private static float beforeCutMaxScore = 40f; | ||
//private static float angleMaxScore = 30f; | ||
|
||
//private static float goodAngle = 7.5f; | ||
//private static float badAngle = 45f; | ||
|
||
private static float badTiming = 0.04f; | ||
private static float goodTiming = 0.045f; | ||
|
||
[UsedImplicitly] | ||
private static void Prefix( | ||
CutScoreBuffer __instance, | ||
SaberSwingRatingCounter ____saberSwingRatingCounter, | ||
int ____beforeCutScore, | ||
NoteCutInfo ____noteCutInfo) { | ||
|
||
if (StandardLevelBlaBlaPatch.customCharacterisitic == CustomCharacterisitic.betterScoring) { | ||
|
||
//int beforeCutScore = Mathf.RoundToInt(((float)____beforeCutScore / 70.0f) * beforeCutMaxScore); | ||
|
||
//float angleRating = 1f - Mathf.Clamp01((Mathf.Abs(Mathf.Abs(____noteCutInfo.cutAngle) - 90f) - goodAngle) / badAngle); | ||
//if (____noteCutInfo.noteData.cutDirection == NoteCutDirection.Any) { | ||
// angleRating = 1f; | ||
//} | ||
//int angleScore = Mathf.RoundToInt(angleRating * angleMaxScore); | ||
|
||
//Plugin.Log.Debug(beforeCutScore + " " + angleScore); | ||
|
||
//float beforeCutScoreRating = (float)(beforeCutScore + angleScore) / 70f; | ||
|
||
|
||
float timingRating = 1.0f - Mathf.Clamp01((Mathf.Abs(____noteCutInfo.timeDeviation) - goodTiming) / badTiming); | ||
|
||
____saberSwingRatingCounter.SetField<SaberSwingRatingCounter, float>("_afterCutRating", timingRating); | ||
____saberSwingRatingCounter.SetField<SaberSwingRatingCounter, float>("_beforeCutRating", timingRating); | ||
|
||
Plugin.Log.Debug(timingRating + " "); | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.