diff --git a/1.3/Assemblies/RJW_PlasticSurgeries.dll b/1.3/Assemblies/RJW_PlasticSurgeries.dll index 2761384..1777e8f 100644 Binary files a/1.3/Assemblies/RJW_PlasticSurgeries.dll and b/1.3/Assemblies/RJW_PlasticSurgeries.dll differ diff --git a/1.4/Assemblies/RJW_PlasticSurgeries.dll b/1.4/Assemblies/RJW_PlasticSurgeries.dll index 512eb3e..30f5e3c 100644 Binary files a/1.4/Assemblies/RJW_PlasticSurgeries.dll and b/1.4/Assemblies/RJW_PlasticSurgeries.dll differ diff --git a/1.5/Assemblies/RJW_PlasticSurgeries.dll b/1.5/Assemblies/RJW_PlasticSurgeries.dll index 717f787..310d315 100644 Binary files a/1.5/Assemblies/RJW_PlasticSurgeries.dll and b/1.5/Assemblies/RJW_PlasticSurgeries.dll differ diff --git a/About/Manifest.xml b/About/Manifest.xml index cb4e292..320abaa 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -2,5 +2,5 @@ RJW PlasticSurgeries - 5400.0.1.8 - \ No newline at end of file + 5603.0.1.8 + diff --git a/Source/RJW_PlasticSurgeries.sln b/Source/RJW_PlasticSurgeries.sln index 9b720f4..a8eb130 100644 --- a/Source/RJW_PlasticSurgeries.sln +++ b/Source/RJW_PlasticSurgeries.sln @@ -15,12 +15,12 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EB363145-6DB4-42CB-B2CB-82DA7AE02A97}.Debug|Any CPU.ActiveCfg = Release|Any CPU - {EB363145-6DB4-42CB-B2CB-82DA7AE02A97}.Debug|Any CPU.Build.0 = Release|Any CPU + {EB363145-6DB4-42CB-B2CB-82DA7AE02A97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB363145-6DB4-42CB-B2CB-82DA7AE02A97}.Debug|Any CPU.Build.0 = Debug|Any CPU {EB363145-6DB4-42CB-B2CB-82DA7AE02A97}.Release|Any CPU.ActiveCfg = Release|Any CPU {EB363145-6DB4-42CB-B2CB-82DA7AE02A97}.Release|Any CPU.Build.0 = Release|Any CPU - {F17C6B3F-BA9D-4133-A201-1265A64BCB72}.Debug|Any CPU.ActiveCfg = Release|Any CPU - {F17C6B3F-BA9D-4133-A201-1265A64BCB72}.Debug|Any CPU.Build.0 = Release|Any CPU + {F17C6B3F-BA9D-4133-A201-1265A64BCB72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F17C6B3F-BA9D-4133-A201-1265A64BCB72}.Debug|Any CPU.Build.0 = Debug|Any CPU {F17C6B3F-BA9D-4133-A201-1265A64BCB72}.Release|Any CPU.ActiveCfg = Release|Any CPU {F17C6B3F-BA9D-4133-A201-1265A64BCB72}.Release|Any CPU.Build.0 = Release|Any CPU {02AA6D85-913F-44B8-9C32-6E8024261824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU diff --git a/Source/RJW_PlasticSurgeries/1.5/Recipe_Surgery_Mammoplasty.cs b/Source/RJW_PlasticSurgeries/1.5/Recipe_Surgery_Mammoplasty.cs new file mode 100644 index 0000000..549373c --- /dev/null +++ b/Source/RJW_PlasticSurgeries/1.5/Recipe_Surgery_Mammoplasty.cs @@ -0,0 +1,198 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using rjw; +using Verse; + +namespace RJW_PlasticSurgeries +{ + public abstract class Recipe_Surgery_Mammoplasty : Recipe_Plastic_Surgery + { + protected override BodyPartRecord GetPartCandidate(Pawn pawn) + { + return Genital_Helper.get_genitalsBPR(pawn); + } + + protected override bool HasPart(Pawn pawn, List hediffs) + { + return Genital_Helper.has_breasts(pawn, hediffs) && + pawn.GetBreastList().Any(hed => hed.Severity >= 0.02f); + } + + protected override List GetHediffs(Pawn pawn) + { + throw new NotSupportedException(); + } + + protected void SurgeryCupX(Pawn pawn, int stage) + { + pawn.GetBreastList().ForEach(hed => + { + float severity; + if (TryGetSeverityFromSize(hed, stage, out severity)) hed.Severity = severity; + }); + } + + private static bool TryGetSeverityFromSize(Hediff hediff, float cupSize, out float severity) + { + var list = (hediff.def as HediffDef_SexPart)?.sizeProfile.cupSizes; + + if (list == null) + { + severity = 0f; + return false; + } + + var curve = new SimpleCurve(hediff.def.stages.Zip(list, + (stage, s) => new CurvePoint(s, stage.minSeverity))); + severity = curve.Evaluate(cupSize); + return true; + } + + protected override (HediffDef, float) GetLicentiaDamage() => throw new NotSupportedException(); + } + + public class Recipe_Surgery_Mammoplasty_A : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 1); + } + } + + public class Recipe_Surgery_Mammoplasty_B : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 2); + } + } + + public class Recipe_Surgery_Mammoplasty_C : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 3); + } + } + + public class Recipe_Surgery_Mammoplasty_D : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 4); + } + } + + public class Recipe_Surgery_Mammoplasty_E : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 6); + } + } + + public class Recipe_Surgery_Mammoplasty_F : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 7); + } + } + + public class Recipe_Surgery_Mammoplasty_G : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 9); + } + } + + public class Recipe_Surgery_Mammoplasty_H : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 11); + } + } + + public class Recipe_Surgery_Mammoplasty_J : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 13); + } + } + + public class Recipe_Surgery_Mammoplasty_K : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 15); + } + } + + public class Recipe_Surgery_Mammoplasty_L : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 17); + } + } + + public class Recipe_Surgery_Mammoplasty_M : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 19); + } + } + + public class Recipe_Surgery_Mammoplasty_N : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 21); + } + } + + public class Recipe_Surgery_Mammoplasty_O : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 23); + } + } + + public class Recipe_Surgery_Mammoplasty_P : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 25); + } + } + + public class Recipe_Surgery_Mammoplasty_Q : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 27); + } + } + + public class Recipe_Surgery_Mammoplasty_R : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 29); + } + } + + public class Recipe_Surgery_Mammoplasty_Unknown : Recipe_Surgery_Mammoplasty + { + protected override void SurgeryResult(Pawn pawn) + { + SurgeryCupX(pawn, 31); + } + } +} \ No newline at end of file diff --git a/Source/RJW_PlasticSurgeries/About/Manifest.xml b/Source/RJW_PlasticSurgeries/About/Manifest.xml index cb4e292..320abaa 100644 --- a/Source/RJW_PlasticSurgeries/About/Manifest.xml +++ b/Source/RJW_PlasticSurgeries/About/Manifest.xml @@ -2,5 +2,5 @@ RJW PlasticSurgeries - 5400.0.1.8 - \ No newline at end of file + 5603.0.1.8 + diff --git a/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.3.csproj b/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.3.csproj index 71b95a0..9497018 100644 --- a/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.3.csproj +++ b/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.3.csproj @@ -15,8 +15,8 @@ 11 ©2024 Stardust3D Stardust3D - 5400.0.1.8 - 5400.0.1.8 + 5603.0.1.8 + 5603.0.1.8 true RJW_PlasticSurgeries.snk Surgically alter pawn's genitals. @@ -51,4 +51,4 @@ - \ No newline at end of file + diff --git a/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.4.csproj b/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.4.csproj index ea6ba56..33812dd 100644 --- a/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.4.csproj +++ b/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.4.csproj @@ -15,8 +15,8 @@ 11 ©2024 Stardust3D Stardust3D - 5400.0.1.8 - 5400.0.1.8 + 5603.0.1.8 + 5603.0.1.8 true RJW_PlasticSurgeries.snk Surgically alter pawn's genitals. diff --git a/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.5.csproj b/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.5.csproj index 8961655..cb606b2 100644 --- a/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.5.csproj +++ b/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries_1.5.csproj @@ -8,15 +8,15 @@ Properties RJW_PlasticSurgeries RJW_PlasticSurgeries - net472 + net48 512 11 ©2024 Stardust3D Stardust3D - 5400.0.1.8 - 5400.0.1.8 + 5603.0.1.8 + 5603.0.1.8 true RJW_PlasticSurgeries.snk Surgically alter pawn's genitals. @@ -32,7 +32,7 @@ - + @@ -48,6 +48,7 @@ + diff --git a/Source/build.gradle.kts b/Source/build.gradle.kts index 8e3c668..69624a0 100644 --- a/Source/build.gradle.kts +++ b/Source/build.gradle.kts @@ -3,7 +3,7 @@ plugins { alias(libs.plugins.versions) } -version = "5400.0.1.8" +version = "5603.0.1.8" val friendlyName = "rjw-plasticsurgeries" tasks.register("buildC#_1.3") { @@ -12,7 +12,7 @@ tasks.register("buildC#_1.3") { // or a project file (.csproj or .vbproj) projectFile = file("${rootProject.name}/${rootProject.name}_1.3.csproj") - targets = listOf("Clean", "Rebuild") + targets = listOf("Restore", "Clean", "Rebuild") configuration = "Release" // destinationDir = "build/msbuild/bin" @@ -24,7 +24,7 @@ tasks.register("buildC#_1.4") { // or a project file (.csproj or .vbproj) projectFile = file("${rootProject.name}/${rootProject.name}_1.4.csproj") - targets = listOf("Clean", "Rebuild") + targets = listOf("Restore", "Clean", "Rebuild") configuration = "Release" // destinationDir = "build/msbuild/bin" @@ -36,7 +36,7 @@ tasks.register("buildC#_1.5") { // or a project file (.csproj or .vbproj) projectFile = file("${rootProject.name}/${rootProject.name}_1.5.csproj") - targets = listOf("Clean", "Rebuild") + targets = listOf("Restore", "Clean", "Rebuild") configuration = "Release" // destinationDir = "build/msbuild/bin" @@ -45,7 +45,7 @@ tasks.register("buildC#_1.5") { tasks.register("sign_1.3") { dependsOn("buildC#_1.3") workingDir = project.projectDir.resolve("${rootProject.name}/bin/Release/1.3/net472") - executable = "H:\\Windows Kits\\10\\bin\\10.0.22621.0\\x64\\signtool.exe" + executable = "H:\\Windows Kits\\10\\bin\\10.0.26100.0\\x64\\signtool.exe" args = listOf( "sign", "/seal", @@ -63,7 +63,7 @@ tasks.register("sign_1.3") { tasks.register("sign_1.4") { dependsOn("buildC#_1.4") workingDir = project.projectDir.resolve("${rootProject.name}/bin/Release/1.4/net472") - executable = "H:\\Windows Kits\\10\\bin\\10.0.22621.0\\x64\\signtool.exe" + executable = "H:\\Windows Kits\\10\\bin\\10.0.26100.0\\x64\\signtool.exe" args = listOf( "sign", "/seal", @@ -80,8 +80,8 @@ tasks.register("sign_1.4") { tasks.register("sign_1.5") { dependsOn("buildC#_1.5") - workingDir = project.projectDir.resolve("${rootProject.name}/bin/Release/1.5/net472") - executable = "H:\\Windows Kits\\10\\bin\\10.0.22621.0\\x64\\signtool.exe" + workingDir = project.projectDir.resolve("${rootProject.name}/bin/Release/1.5/net48") + executable = "H:\\Windows Kits\\10\\bin\\10.0.26100.0\\x64\\signtool.exe" args = listOf( "sign", "/seal", @@ -149,7 +149,7 @@ tasks.register("copyDll_1.4") { tasks.register("copyDll_1.5") { dependsOn("sign_1.5") - from(project.projectDir.resolve("${rootProject.name}/bin/Release/1.5/net472/${rootProject.name}.dll")) + from(project.projectDir.resolve("${rootProject.name}/bin/Release/1.5/net48/${rootProject.name}.dll")) into(project.projectDir.parentFile.resolve("1.5/Assemblies")) } diff --git a/Source/global.json b/Source/global.json index 2ddda36..93681ff 100644 --- a/Source/global.json +++ b/Source/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.0", + "version": "9.0.0", "rollForward": "latestMinor", "allowPrerelease": false } diff --git a/Source/gradle/libs.versions.toml b/Source/gradle/libs.versions.toml index de22e81..a650f84 100644 --- a/Source/gradle/libs.versions.toml +++ b/Source/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] versions = "0.51.0" -msbuild = "4.6" +msbuild = "4.7" [libraries] diff --git a/Source/gradle/wrapper/gradle-wrapper.jar b/Source/gradle/wrapper/gradle-wrapper.jar index e644113..a4b76b9 100644 Binary files a/Source/gradle/wrapper/gradle-wrapper.jar and b/Source/gradle/wrapper/gradle-wrapper.jar differ diff --git a/Source/gradle/wrapper/gradle-wrapper.properties b/Source/gradle/wrapper/gradle-wrapper.properties index a441313..e2847c8 100644 --- a/Source/gradle/wrapper/gradle-wrapper.properties +++ b/Source/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/Source/gradlew b/Source/gradlew index b740cf1..f5feea6 100644 --- a/Source/gradlew +++ b/Source/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/Source/gradlew.bat b/Source/gradlew.bat index 25da30d..9d21a21 100644 --- a/Source/gradlew.bat +++ b/Source/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ##########################################################################