From 3de50b63b0b7caa255e2be30fe1a96e14d269ddd Mon Sep 17 00:00:00 2001 From: tulpenkiste Date: Sun, 2 Jul 2023 17:24:35 +0200 Subject: [PATCH] Port to C# dotNET 4.7.2, impl OnlyNegative responses --- README.md | 2 +- UltraShellMommy.csproj | 23 +++++++++++++++++------ src/commands/mommy.cs | 8 +++++--- src/plugin.cs | 7 +++++++ 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 6b640d5..4e01eee 100644 --- a/README.md +++ b/README.md @@ -11,4 +11,4 @@ Anything in `{arguments}` depends on the command being used.
Place `UltraShellMommy.dll` in the `BepInEx/plugins` folder in your ULTRAKILL installation folder. # Building Create a file called UltraShellMommy.csproj.user and fill in the data from the template then place it next to UltraShellMommy.
-Then, run `dotnet build` in the directory with UltraShellMommy.csproj. \ No newline at end of file +Then, run `msbuild` in the directory with UltraShellMommy.csproj (note: official builds use mono-msbuild). \ No newline at end of file diff --git a/UltraShellMommy.csproj b/UltraShellMommy.csproj index 0b3bdc5..1718e88 100644 --- a/UltraShellMommy.csproj +++ b/UltraShellMommy.csproj @@ -1,12 +1,12 @@ - - + + Library - netstandard2.0 + v4.7.2 UltraShellMommy UltraShellMommy enable - latest + true @@ -74,7 +74,7 @@ $(ULTRAKILLPath)\ULTRAKILL_Data\Managed\UnityEngine.ImageConversionModule.dll - + $(ULTRAKILLPath)\ULTRAKILL_Data\Managed\Unity.Addressables.dll @@ -93,6 +93,11 @@ $(ULTRAKILLPath)\ULTRAKILL_Data\Managed\Newtonsoft.Json.dll + + False + $(ManagedDir)\netstandard.dll + False + $(ULTRAKILLPath)\ULTRAKILL_Data\Managed\ @@ -105,8 +110,13 @@ + + + + + - + @@ -116,4 +126,5 @@ + diff --git a/src/commands/mommy.cs b/src/commands/mommy.cs index 681c9cc..cf8a80a 100644 --- a/src/commands/mommy.cs +++ b/src/commands/mommy.cs @@ -17,6 +17,8 @@ along with this program. If not, see . using GameConsole; using System; +using System.Collections.Generic; +using System.Linq; namespace UltraShellMommy { public class ShellMommy : ICommand { @@ -41,7 +43,7 @@ namespace UltraShellMommy { cmd.Execute(con, newArgs.ToArray()); DoResponse(con, true); } else { - UnityEngine.Debug.LogWarning("Unrecognized command: \"CMD\"".Replace("CMD", args[0])); + UnityEngine.Debug.LogWarning("Unrecognized command: '%CMD'".Replace("%CMD", args[0])); DoResponse(con, false); } } @@ -57,7 +59,7 @@ namespace UltraShellMommy { string mommyRole = _mommy.MommysRole[random.Next(_mommy.MommysRole.Length)]; 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)]; // Replace text in the response @@ -65,7 +67,7 @@ namespace UltraShellMommy { response = response.Replace("MOMMYS_PRONOUN", mommyPronoun); response = response.Replace("MOMMYS_ROLE", mommyRole); - if (isPositive) con.PrintLine(response); + if (isPositive && !_mommy.MommyOnlyNegative) con.PrintLine(response); else UnityEngine.Debug.LogWarning(response); } diff --git a/src/plugin.cs b/src/plugin.cs index 868a561..a0dcf9b 100644 --- a/src/plugin.cs +++ b/src/plugin.cs @@ -24,6 +24,8 @@ using System.Collections; using GameConsole; using BepInEx.Configuration; +using System.Collections.Generic; + namespace UltraShellMommy { [BepInPlugin("UltraShellMommy", "Ultra Shell Mommy", "1.0.0")] [BepInProcess("ULTRAKILL.exe")] @@ -35,10 +37,12 @@ namespace UltraShellMommy { private ConfigEntry CfgMommysPronouns; private ConfigEntry CfgMommysPositiveResponses; private ConfigEntry CfgMommysNegativeResponses; + private ConfigEntry CfgMommyOnlyNegative; public String[] MommysLittle; public String[] MommysRole; public String[] MommysPronouns; + public Boolean MommyOnlyNegative; public String[] MommyPositiveResponses; public String[] MommyNegativeResponses; @@ -57,6 +61,8 @@ namespace UltraShellMommy { CfgMommysRole = Config.Bind("Mommy", "MommysRole", "mommy", "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~ ❤️", "Sets the possible negative responses that mommy will use. "); @@ -67,6 +73,7 @@ namespace UltraShellMommy { MommysLittle = CfgMommysLittle.Value.Split('/'); MommysPronouns = CfgMommysPronouns.Value.Split('/'); MommysRole = CfgMommysRole.Value.Split('/'); + MommyOnlyNegative = CfgMommyOnlyNegative.Value; MommyPositiveResponses = CfgMommysPositiveResponses.Value.Split('/'); MommyNegativeResponses = CfgMommysNegativeResponses.Value.Split('/');