diff --git a/DungeonBasement/DungeonBasement/DungeonBasement.csproj b/DungeonBasement/DungeonBasement/DungeonBasement.csproj
index cb23502..f733e5b 100644
--- a/DungeonBasement/DungeonBasement/DungeonBasement.csproj
+++ b/DungeonBasement/DungeonBasement/DungeonBasement.csproj
@@ -62,6 +62,7 @@
+
diff --git a/DungeonBasement/DungeonBasement/Patch.cs b/DungeonBasement/DungeonBasement/Patch.cs
new file mode 100644
index 0000000..f73442a
--- /dev/null
+++ b/DungeonBasement/DungeonBasement/Patch.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using UnityEngine;
+
+namespace DungeonBasement
+{
+ public class Patch {
+ public static void Activate(){
+ // the entire purpose this plugin is so I have a unique assembly for Lethal Config
+ var assemblyPath = Assembly.GetExecutingAssembly().Location;
+ var path = Path.Combine(Path.GetDirectoryName(assemblyPath), "basement.png");
+ var texture2D = LoadTexture(path);
+ var icon = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), Vector2.zero);
+
+ LethalConfig.LethalConfigManager.SetModIcon(icon);
+ LethalConfig.LethalConfigManager.SetModDescription("This is the config for the Scarlet Devil Mansion's Basement dungeon variant.");
+ }
+
+ static Texture2D LoadTexture(string FilePath) {
+ Texture2D Tex2D;
+ byte[] FileData;
+
+ if (File.Exists(FilePath)){
+ FileData = File.ReadAllBytes(FilePath);
+ Tex2D = new Texture2D(2, 2);
+ Tex2D.LoadImage(FileData);
+ return Tex2D;
+ }
+ return null;
+ }
+ }
+}
diff --git a/DungeonBasement/DungeonBasement/Plugin.cs b/DungeonBasement/DungeonBasement/Plugin.cs
index 6f2c4bc..ab56ca5 100644
--- a/DungeonBasement/DungeonBasement/Plugin.cs
+++ b/DungeonBasement/DungeonBasement/Plugin.cs
@@ -10,16 +10,23 @@ using UnityEngine;
using System.Reflection;
using BepInEx.Logging;
using HarmonyLib.Tools;
+using BepInEx.Bootstrap;
+using HarmonyLib;
namespace DungeonBasement {
- [BepInDependency("ainavt.lc.lethalconfig", "1.4.2")]
+
[BepInPlugin(modGUID, modName, modVersion)]
+ [BepInDependency(targetModGUID, BepInDependency.DependencyFlags.SoftDependency)]
public class Plugin : BaseUnityPlugin {
public const string modGUID = "dev.ladyalice.scarletmansion.basement";
private const string modName = "Scarlet Basement";
private const string modVersion = "1.0.0";
+ public const string targetModGUID = "ainavt.lc.lethalconfig";
+ public const string targetModVersion = "1.4.2";
+
+ public readonly Harmony harmony = new Harmony(modGUID);
public static ManualLogSource logger { get; internal set; }
void Awake(){
@@ -27,27 +34,23 @@ namespace DungeonBasement {
logger = BepInEx.Logging.Logger.CreateLogSource(modGUID);
logger.LogInfo($"Plugin {modName} has been added!");
- // the entire purpose this plugin is so I have a unique assembly for Lethal Config
- var assemblyPath = Assembly.GetExecutingAssembly().Location;
- var path = Path.Combine(Path.GetDirectoryName(assemblyPath), "basement.png");
- var texture2D = LoadTexture(path);
- var icon = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), Vector2.zero);
-
- LethalConfig.LethalConfigManager.SetModIcon(icon);
- LethalConfig.LethalConfigManager.SetModDescription("This is the config for the Scarlet Devil Mansion's Basement dungeon variant.");
- }
+ var modLoaded = Chainloader.PluginInfos.ContainsKey(targetModGUID);
+ if (!modLoaded) return;
- Texture2D LoadTexture(string FilePath) {
- Texture2D Tex2D;
- byte[] FileData;
+ bool validVersion;
+ var pluginInfo = Chainloader.PluginInfos[targetModGUID];
+ var loadedVersion = pluginInfo.Metadata.Version;
+ if (string.IsNullOrWhiteSpace(targetModVersion)){
+ validVersion = true;
+ } else {
+ var requiredVersion = new Version(targetModVersion);
+ validVersion = loadedVersion >= requiredVersion;
+ }
- if (File.Exists(FilePath)){
- FileData = File.ReadAllBytes(FilePath);
- Tex2D = new Texture2D(2, 2);
- Tex2D.LoadImage(FileData);
- return Tex2D;
- }
- return null;
+ if (validVersion){
+ logger.LogInfo($"Lethal config compability patch added!");
+ Patch.Activate();
+ }
}
}
diff --git a/DungeonFoyer/DungeonFoyer/DungeonFoyer.csproj b/DungeonFoyer/DungeonFoyer/DungeonFoyer.csproj
index 90a92b7..d743e8c 100644
--- a/DungeonFoyer/DungeonFoyer/DungeonFoyer.csproj
+++ b/DungeonFoyer/DungeonFoyer/DungeonFoyer.csproj
@@ -63,6 +63,7 @@
+
diff --git a/DungeonFoyer/DungeonFoyer/Patch.cs b/DungeonFoyer/DungeonFoyer/Patch.cs
new file mode 100644
index 0000000..14c4e4c
--- /dev/null
+++ b/DungeonFoyer/DungeonFoyer/Patch.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using UnityEngine;
+
+namespace DungeonFoyer
+{
+ public class Patch {
+ public static void Activate(){
+ // the entire purpose this plugin is so I have a unique assembly for Lethal Config
+ var assemblyPath = Assembly.GetExecutingAssembly().Location;
+ var path = Path.Combine(Path.GetDirectoryName(assemblyPath), "foyer.png");
+ var texture2D = LoadTexture(path);
+ var icon = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), Vector2.zero);
+
+ LethalConfig.LethalConfigManager.SetModIcon(icon);
+ LethalConfig.LethalConfigManager.SetModDescription("This is the config for the Scarlet Devil Mansion's Foyer dungeon variant.");
+ }
+
+ static Texture2D LoadTexture(string FilePath) {
+ Texture2D Tex2D;
+ byte[] FileData;
+
+ if (File.Exists(FilePath)){
+ FileData = File.ReadAllBytes(FilePath);
+ Tex2D = new Texture2D(2, 2);
+ Tex2D.LoadImage(FileData);
+ return Tex2D;
+ }
+ return null;
+ }
+ }
+}
diff --git a/DungeonFoyer/DungeonFoyer/Plugin.cs b/DungeonFoyer/DungeonFoyer/Plugin.cs
index 654dcd8..fbff9bd 100644
--- a/DungeonFoyer/DungeonFoyer/Plugin.cs
+++ b/DungeonFoyer/DungeonFoyer/Plugin.cs
@@ -10,17 +10,23 @@ using UnityEngine;
using System.Reflection;
using BepInEx.Logging;
using HarmonyLib.Tools;
+using HarmonyLib;
+using BepInEx.Bootstrap;
namespace DungeonFoyer {
- [BepInDependency("ainavt.lc.lethalconfig", "1.4.2")]
[BepInPlugin(modGUID, modName, modVersion)]
+ [BepInDependency(targetModGUID, BepInDependency.DependencyFlags.SoftDependency)]
public class Plugin : BaseUnityPlugin {
public const string modGUID = "dev.ladyalice.scarletmansion.foyer";
private const string modName = "Scarlet Foyer";
private const string modVersion = "1.0.0";
+ public const string targetModGUID = "ainavt.lc.lethalconfig";
+ public const string targetModVersion = "1.4.2";
+
+ public readonly Harmony harmony = new Harmony(modGUID);
public static ManualLogSource logger { get; internal set; }
void Awake(){
@@ -28,28 +34,26 @@ namespace DungeonFoyer {
logger = BepInEx.Logging.Logger.CreateLogSource(modGUID);
logger.LogInfo($"Plugin {modName} has been added!");
- // the entire purpose this plugin is so I have a unique assembly for Lethal Config
- var assemblyPath = Assembly.GetExecutingAssembly().Location;
- var path = Path.Combine(Path.GetDirectoryName(assemblyPath), "foyer.png");
- var texture2D = LoadTexture(path);
- var icon = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), Vector2.zero);
-
- LethalConfig.LethalConfigManager.SetModIcon(icon);
- LethalConfig.LethalConfigManager.SetModDescription("This is the config for the Scarlet Devil Mansion's Foyer dungeon variant.");
+ var modLoaded = Chainloader.PluginInfos.ContainsKey(targetModGUID);
+ if (!modLoaded) return;
+
+ bool validVersion;
+ var pluginInfo = Chainloader.PluginInfos[targetModGUID];
+ var loadedVersion = pluginInfo.Metadata.Version;
+ if (string.IsNullOrWhiteSpace(targetModVersion)){
+ validVersion = true;
+ } else {
+ var requiredVersion = new Version(targetModVersion);
+ validVersion = loadedVersion >= requiredVersion;
+ }
+
+ if (validVersion){
+ logger.LogInfo($"Lethal config compability patch added!");
+ Patch.Activate();
+ }
}
- Texture2D LoadTexture(string FilePath) {
- Texture2D Tex2D;
- byte[] FileData;
- if (File.Exists(FilePath)){
- FileData = File.ReadAllBytes(FilePath);
- Tex2D = new Texture2D(2, 2);
- Tex2D.LoadImage(FileData);
- return Tex2D;
- }
- return null;
- }
}
}
diff --git a/MimicsPatch/ScarletMansionMimicsPatch/Plugin.cs b/MimicsPatch/ScarletMansionMimicsPatch/Plugin.cs
index 5478907..85e5ea5 100644
--- a/MimicsPatch/ScarletMansionMimicsPatch/Plugin.cs
+++ b/MimicsPatch/ScarletMansionMimicsPatch/Plugin.cs
@@ -40,7 +40,7 @@ namespace ScarletMansionMimicsPatch {
logger = BepInEx.Logging.Logger.CreateLogSource(modGUID);
- var modLoaded = Chainloader.PluginInfos.ContainsKey(targetModGUID);
+ var modLoaded = Chainloader.PluginInfos.ContainsKey(targetModGUID);
if (!modLoaded) return;
bool validVersion;