Port to C# dotNET 4.7.2, impl OnlyNegative responses
This commit is contained in:
parent
2dfb600b57
commit
3de50b63b0
|
@ -11,4 +11,4 @@ Anything in `{arguments}` depends on the command being used.<br>
|
||||||
Place `UltraShellMommy.dll` in the `BepInEx/plugins` folder in your ULTRAKILL installation folder.
|
Place `UltraShellMommy.dll` in the `BepInEx/plugins` folder in your ULTRAKILL installation folder.
|
||||||
# Building
|
# Building
|
||||||
Create a file called UltraShellMommy.csproj.user and fill in the data from the template then place it next to UltraShellMommy.<br>
|
Create a file called UltraShellMommy.csproj.user and fill in the data from the template then place it next to UltraShellMommy.<br>
|
||||||
Then, run `dotnet build` in the directory with UltraShellMommy.csproj.
|
Then, run `msbuild` in the directory with UltraShellMommy.csproj (note: official builds use mono-msbuild).
|
|
@ -1,12 +1,12 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Library</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
<TargetFramework>netstandard2.0</TargetFramework>
|
<TargetFramework>v4.7.2</TargetFramework>
|
||||||
<RootNamespace>UltraShellMommy</RootNamespace>
|
<RootNamespace>UltraShellMommy</RootNamespace>
|
||||||
<AssemblyName>UltraShellMommy</AssemblyName>
|
<AssemblyName>UltraShellMommy</AssemblyName>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<LangVersion>latest</LangVersion>
|
<Deterministic>true</Deterministic>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Assembly-CSharp">
|
<Reference Include="Assembly-CSharp">
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="UnityEngine.ImageConversionModule">
|
<Reference Include="UnityEngine.ImageConversionModule">
|
||||||
<HintPath>$(ULTRAKILLPath)\ULTRAKILL_Data\Managed\UnityEngine.ImageConversionModule.dll</HintPath>
|
<HintPath>$(ULTRAKILLPath)\ULTRAKILL_Data\Managed\UnityEngine.ImageConversionModule.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="UnityEngine.Addressables">
|
<Reference Include="UnityEngine.Addressables">
|
||||||
<HintPath>$(ULTRAKILLPath)\ULTRAKILL_Data\Managed\Unity.Addressables.dll</HintPath>
|
<HintPath>$(ULTRAKILLPath)\ULTRAKILL_Data\Managed\Unity.Addressables.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
@ -93,6 +93,11 @@
|
||||||
<Reference Include="NewtonsoftJson">
|
<Reference Include="NewtonsoftJson">
|
||||||
<HintPath>$(ULTRAKILLPath)\ULTRAKILL_Data\Managed\Newtonsoft.Json.dll</HintPath>
|
<HintPath>$(ULTRAKILLPath)\ULTRAKILL_Data\Managed\Newtonsoft.Json.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>$(ManagedDir)\netstandard.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ManagedDir>$(ULTRAKILLPath)\ULTRAKILL_Data\Managed\</ManagedDir>
|
<ManagedDir>$(ULTRAKILLPath)\ULTRAKILL_Data\Managed\</ManagedDir>
|
||||||
|
@ -105,8 +110,13 @@
|
||||||
<ModDlls Include="$(OutDir)/$(AssemblyName).dll" />
|
<ModDlls Include="$(OutDir)/$(AssemblyName).dll" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="src/plugin.cs" />
|
||||||
|
<Compile Include="src/commands/mommy.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<Target Name="WarnBeforeBuild" BeforeTargets="BeforeBuild">
|
<Target Name="WarnBeforeBuild" BeforeTargets="BeforeBuild">
|
||||||
<Error Condition="!Exists($(ULTRAKILLPath))" Text="ULTRAKILLPath not set, create a ultrashell-mommy.csproj.user file that sets this property to compile" />
|
<Error Condition="!Exists($(ULTRAKILLPath))" Text="ULTRAKILLPath not set, create a UltraShellMommy.csproj.user file that sets this property to compile" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<Target Name="CopyModDlls" AfterTargets="AfterBuild">
|
<Target Name="CopyModDlls" AfterTargets="AfterBuild">
|
||||||
|
@ -116,4 +126,5 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="LICENSE" />
|
<None Include="LICENSE" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -17,6 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
using GameConsole;
|
using GameConsole;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace UltraShellMommy {
|
namespace UltraShellMommy {
|
||||||
public class ShellMommy : ICommand {
|
public class ShellMommy : ICommand {
|
||||||
|
@ -41,7 +43,7 @@ namespace UltraShellMommy {
|
||||||
cmd.Execute(con, newArgs.ToArray<string>());
|
cmd.Execute(con, newArgs.ToArray<string>());
|
||||||
DoResponse(con, true);
|
DoResponse(con, true);
|
||||||
} else {
|
} else {
|
||||||
UnityEngine.Debug.LogWarning("Unrecognized command: \"CMD\"".Replace("CMD", args[0]));
|
UnityEngine.Debug.LogWarning("Unrecognized command: '%CMD'".Replace("%CMD", args[0]));
|
||||||
DoResponse(con, false);
|
DoResponse(con, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,7 +59,7 @@ namespace UltraShellMommy {
|
||||||
string mommyRole = _mommy.MommysRole[random.Next(_mommy.MommysRole.Length)];
|
string mommyRole = _mommy.MommysRole[random.Next(_mommy.MommysRole.Length)];
|
||||||
string response;
|
string response;
|
||||||
|
|
||||||
if (isPositive) response = _mommy.MommyPositiveResponses[random.Next(_mommy.MommyPositiveResponses.Length)];
|
if (isPositive && !_mommy.MommyOnlyNegative) response = _mommy.MommyPositiveResponses[random.Next(_mommy.MommyPositiveResponses.Length)];
|
||||||
else response = _mommy.MommyNegativeResponses[random.Next(_mommy.MommyNegativeResponses.Length)];
|
else response = _mommy.MommyNegativeResponses[random.Next(_mommy.MommyNegativeResponses.Length)];
|
||||||
|
|
||||||
// Replace text in the response
|
// Replace text in the response
|
||||||
|
@ -65,7 +67,7 @@ namespace UltraShellMommy {
|
||||||
response = response.Replace("MOMMYS_PRONOUN", mommyPronoun);
|
response = response.Replace("MOMMYS_PRONOUN", mommyPronoun);
|
||||||
response = response.Replace("MOMMYS_ROLE", mommyRole);
|
response = response.Replace("MOMMYS_ROLE", mommyRole);
|
||||||
|
|
||||||
if (isPositive) con.PrintLine(response);
|
if (isPositive && !_mommy.MommyOnlyNegative) con.PrintLine(response);
|
||||||
else UnityEngine.Debug.LogWarning(response);
|
else UnityEngine.Debug.LogWarning(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,8 @@ using System.Collections;
|
||||||
using GameConsole;
|
using GameConsole;
|
||||||
using BepInEx.Configuration;
|
using BepInEx.Configuration;
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace UltraShellMommy {
|
namespace UltraShellMommy {
|
||||||
[BepInPlugin("UltraShellMommy", "Ultra Shell Mommy", "1.0.0")]
|
[BepInPlugin("UltraShellMommy", "Ultra Shell Mommy", "1.0.0")]
|
||||||
[BepInProcess("ULTRAKILL.exe")]
|
[BepInProcess("ULTRAKILL.exe")]
|
||||||
|
@ -35,10 +37,12 @@ namespace UltraShellMommy {
|
||||||
private ConfigEntry<String> CfgMommysPronouns;
|
private ConfigEntry<String> CfgMommysPronouns;
|
||||||
private ConfigEntry<String> CfgMommysPositiveResponses;
|
private ConfigEntry<String> CfgMommysPositiveResponses;
|
||||||
private ConfigEntry<String> CfgMommysNegativeResponses;
|
private ConfigEntry<String> CfgMommysNegativeResponses;
|
||||||
|
private ConfigEntry<Boolean> CfgMommyOnlyNegative;
|
||||||
|
|
||||||
public String[] MommysLittle;
|
public String[] MommysLittle;
|
||||||
public String[] MommysRole;
|
public String[] MommysRole;
|
||||||
public String[] MommysPronouns;
|
public String[] MommysPronouns;
|
||||||
|
public Boolean MommyOnlyNegative;
|
||||||
public String[] MommyPositiveResponses;
|
public String[] MommyPositiveResponses;
|
||||||
public String[] MommyNegativeResponses;
|
public String[] MommyNegativeResponses;
|
||||||
|
|
||||||
|
@ -57,6 +61,8 @@ namespace UltraShellMommy {
|
||||||
CfgMommysRole = Config.Bind("Mommy", "MommysRole", "mommy",
|
CfgMommysRole = Config.Bind("Mommy", "MommysRole", "mommy",
|
||||||
"Sets the role that mommy will have.");
|
"Sets the role that mommy will have.");
|
||||||
|
|
||||||
|
CfgMommyOnlyNegative = Config.Bind("Mommy", "MommyOnlyNegative", false, "If set to true, mommy will provide encouragement (on non-fail status) but not praise.");
|
||||||
|
|
||||||
CfgMommysPositiveResponses = Config.Bind("Mommy", "MommysPositiveResponses", "*pets your head*/awe, what a good AFFECTIONATE_TERM~\nMOMMYS_ROLE knew you could do it~ ❤️/good AFFECTIONATE_TERM~\nMOMMYS_ROLE's so proud of you~ ❤️/Keep up the good work, my love~ ❤️/MOMMYS_ROLE is proud of the progress you've made~ ❤️/MOMMYS_ROLE is so grateful to have you as MOMMYS_PRONOUN little AFFECTIONATE_TERM~ ❤️/I'm so proud of you, my love~ ❤️/MOMMYS_ROLE is so proud of you~ ❤️/MOMMYS_ROLE loves seeing MOMMYS_PRONOUN little AFFECTIONATE_TERM succeed~ ❤️/MOMMYS_ROLE thinks MOMMYS_PRONOUN little AFFECTIONATE_TERM earned a big hug~ ❤️/that's a good AFFECTIONATE_TERM~ ❤️/you did an amazing job, my dear~ ❤️/you're such a smart cookie~ ❤️",
|
CfgMommysPositiveResponses = Config.Bind("Mommy", "MommysPositiveResponses", "*pets your head*/awe, what a good AFFECTIONATE_TERM~\nMOMMYS_ROLE knew you could do it~ ❤️/good AFFECTIONATE_TERM~\nMOMMYS_ROLE's so proud of you~ ❤️/Keep up the good work, my love~ ❤️/MOMMYS_ROLE is proud of the progress you've made~ ❤️/MOMMYS_ROLE is so grateful to have you as MOMMYS_PRONOUN little AFFECTIONATE_TERM~ ❤️/I'm so proud of you, my love~ ❤️/MOMMYS_ROLE is so proud of you~ ❤️/MOMMYS_ROLE loves seeing MOMMYS_PRONOUN little AFFECTIONATE_TERM succeed~ ❤️/MOMMYS_ROLE thinks MOMMYS_PRONOUN little AFFECTIONATE_TERM earned a big hug~ ❤️/that's a good AFFECTIONATE_TERM~ ❤️/you did an amazing job, my dear~ ❤️/you're such a smart cookie~ ❤️",
|
||||||
"Sets the possible negative responses that mommy will use. ");
|
"Sets the possible negative responses that mommy will use. ");
|
||||||
|
|
||||||
|
@ -67,6 +73,7 @@ namespace UltraShellMommy {
|
||||||
MommysLittle = CfgMommysLittle.Value.Split('/');
|
MommysLittle = CfgMommysLittle.Value.Split('/');
|
||||||
MommysPronouns = CfgMommysPronouns.Value.Split('/');
|
MommysPronouns = CfgMommysPronouns.Value.Split('/');
|
||||||
MommysRole = CfgMommysRole.Value.Split('/');
|
MommysRole = CfgMommysRole.Value.Split('/');
|
||||||
|
MommyOnlyNegative = CfgMommyOnlyNegative.Value;
|
||||||
MommyPositiveResponses = CfgMommysPositiveResponses.Value.Split('/');
|
MommyPositiveResponses = CfgMommysPositiveResponses.Value.Split('/');
|
||||||
MommyNegativeResponses = CfgMommysNegativeResponses.Value.Split('/');
|
MommyNegativeResponses = CfgMommysNegativeResponses.Value.Split('/');
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue