diff --git a/.editorconfig b/.editorconfig
index 017cd3a..1561783 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,2 +1,6 @@
[*.{cs,vb}]
-dotnet_diagnostic.CA1707.severity = none
\ No newline at end of file
+dotnet_diagnostic.CA1707.severity = none
+dotnet_diagnostic.CS1591.severity = none
+dotnet_diagnostic.S125.severity = none
+dotnet_diagnostic.SA1615.severity = none
+dotnet_diagnostic.SA1611.severity = none
\ No newline at end of file
diff --git a/MiraAPI/Events/Vanilla/Map/UpdateSystemEvent.cs b/MiraAPI/Events/Vanilla/Map/UpdateSystemEvent.cs
index 6b6d907..5b70090 100644
--- a/MiraAPI/Events/Vanilla/Map/UpdateSystemEvent.cs
+++ b/MiraAPI/Events/Vanilla/Map/UpdateSystemEvent.cs
@@ -24,6 +24,7 @@ public class UpdateSystemEvent : MiraCancelableEvent
/// Initializes a new instance of the class.
///
/// The SystemType being updated.
+ /// The player that is updating the system.
/// Amount to update System to.
public UpdateSystemEvent(SystemTypes systemType, PlayerControl player, byte amount)
{
diff --git a/MiraAPI/GameModes/CustomGameModeManager.cs b/MiraAPI/GameModes/CustomGameModeManager.cs
index e4305f5..5ce22e0 100644
--- a/MiraAPI/GameModes/CustomGameModeManager.cs
+++ b/MiraAPI/GameModes/CustomGameModeManager.cs
@@ -21,7 +21,7 @@ public static class CustomGameModeManager
}
///
- /// Current gamemode.
+ /// Gets the current gamemode.
///
public static CustomGameMode? ActiveMode { get; internal set; } = new DefaultMode();
diff --git a/MiraAPI/GameOptions/ModdedOptionsManager.cs b/MiraAPI/GameOptions/ModdedOptionsManager.cs
index 7aaa154..c3e7e22 100644
--- a/MiraAPI/GameOptions/ModdedOptionsManager.cs
+++ b/MiraAPI/GameOptions/ModdedOptionsManager.cs
@@ -45,7 +45,9 @@ public static class ModdedOptionsManager
pluginInfo.OptionGroups.Add(group);
typeof(OptionGroupSingleton<>).MakeGenericType(type)
+#pragma warning disable S3011
.GetField("_instance", BindingFlags.Static | BindingFlags.NonPublic)!
+#pragma warning restore S3011
.SetValue(null, group);
return true;
diff --git a/MiraAPI/GameOptions/ModifierOptionGroup.cs b/MiraAPI/GameOptions/ModifierOptionGroup.cs
index cfa2eff..3db6566 100644
--- a/MiraAPI/GameOptions/ModifierOptionGroup.cs
+++ b/MiraAPI/GameOptions/ModifierOptionGroup.cs
@@ -2,7 +2,9 @@
namespace MiraAPI.GameOptions;
+#pragma warning disable CA1852
internal class ModifierOptionGroup : AbstractOptionGroup
+#pragma warning restore CA1852
{
public override string GroupName { get; }
diff --git a/MiraAPI/GameOptions/OptionTypes/ModdedEnumOption.cs b/MiraAPI/GameOptions/OptionTypes/ModdedEnumOption.cs
index ff422f5..0ae41bd 100644
--- a/MiraAPI/GameOptions/OptionTypes/ModdedEnumOption.cs
+++ b/MiraAPI/GameOptions/OptionTypes/ModdedEnumOption.cs
@@ -129,7 +129,7 @@ public class ModdedEnumOption : ModdedOption where T : Enum
Enum.GetNames(typeof(T)).Select(CustomStringName.CreateAndRegister).ToArray()
: values.Select(CustomStringName.CreateAndRegister).ToArray();
- data.Index = Convert.ToInt32(Value);
+ data.Index = Convert.ToInt32(Value, NumberFormatInfo.InvariantInfo);
}
///
diff --git a/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs b/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs
index 83048f7..93b5b5f 100644
--- a/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs
+++ b/MiraAPI/GameOptions/OptionTypes/ModdedOption.cs
@@ -32,9 +32,9 @@ public abstract class ModdedOption : IModdedOption
public StringNames StringName { get; }
///
- /// Gets the BaseGameSetting data of the option.
+ /// Gets or sets the BaseGameSetting data of the option.
///
- public BaseGameSetting Data { get; protected init; }
+ public BaseGameSetting Data { get; protected set; } = null!;
///
/// Gets or sets the parent mod of the option.
diff --git a/MiraAPI/Hud/CustomActionButton.cs b/MiraAPI/Hud/CustomActionButton.cs
index e215fda..7e0c0e2 100644
--- a/MiraAPI/Hud/CustomActionButton.cs
+++ b/MiraAPI/Hud/CustomActionButton.cs
@@ -180,7 +180,7 @@ public abstract class CustomActionButton
if (!moveButton) return;
- if (HudManagerPatches._bottomLeft == null || HudManagerPatches._bottomRight == null)
+ if (HudManagerPatches.BottomLeft == null || HudManagerPatches.BottomRight == null)
{
return;
}
@@ -188,17 +188,17 @@ public abstract class CustomActionButton
switch (location)
{
case ButtonLocation.BottomLeft:
- var gridArrange = HudManagerPatches._bottomLeft.GetComponent();
- var aspectPosition = HudManagerPatches._bottomLeft.GetComponent();
+ var gridArrange = HudManagerPatches.BottomLeft.GetComponent();
+ var aspectPosition = HudManagerPatches.BottomLeft.GetComponent();
- Button.transform.SetParent(HudManagerPatches._bottomLeft.transform);
+ Button.transform.SetParent(HudManagerPatches.BottomLeft.transform);
gridArrange.Start();
gridArrange.ArrangeChilds();
aspectPosition.AdjustPosition();
break;
case ButtonLocation.BottomRight:
- Button.transform.SetParent(HudManagerPatches._bottomRight);
+ Button.transform.SetParent(HudManagerPatches.BottomRight);
break;
}
}
@@ -435,11 +435,11 @@ public abstract class CustomActionButton
{
if (CanUse())
{
- Button.SetEnabled();
+ Button!.SetEnabled();
}
else
{
- Button.SetDisabled();
+ Button!.SetDisabled();
}
if (EffectActive)
diff --git a/MiraAPI/Hud/CustomButtonManager.cs b/MiraAPI/Hud/CustomButtonManager.cs
index dd10f6c..69c4b92 100644
--- a/MiraAPI/Hud/CustomButtonManager.cs
+++ b/MiraAPI/Hud/CustomButtonManager.cs
@@ -31,7 +31,9 @@ public static class CustomButtonManager
CustomButtons.Add(button);
pluginInfo.Buttons.Add(button);
typeof(CustomButtonSingleton<>).MakeGenericType(buttonType)
+#pragma warning disable S3011
.GetField("_instance", BindingFlags.Static | BindingFlags.NonPublic)!
+#pragma warning restore S3011
.SetValue(null, button);
ButtonEventTypes.Add(buttonType, typeof(MiraButtonClickEvent<>).MakeGenericType(buttonType));
diff --git a/MiraAPI/Hud/CustomButtonSingleton.cs b/MiraAPI/Hud/CustomButtonSingleton.cs
index b338e61..daa5467 100644
--- a/MiraAPI/Hud/CustomButtonSingleton.cs
+++ b/MiraAPI/Hud/CustomButtonSingleton.cs
@@ -1,4 +1,5 @@
-using System.Linq;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
namespace MiraAPI.Hud;
@@ -13,7 +14,6 @@ public static class CustomButtonSingleton where T : CustomActionButton
///
/// Gets the instance of the button.
///
-#pragma warning disable CA1000
+ [SuppressMessage("Design", "CA1000:Do not declare static members on generic types", Justification = "This is a utility class to get the instance of a custom action button.")]
public static T Instance => _instance ??= CustomButtonManager.CustomButtons.OfType().Single();
-#pragma warning restore CA1000
}
diff --git a/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs b/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs
index fe23ecc..f1a614e 100644
--- a/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs
+++ b/MiraAPI/Modifiers/ModifierDisplay/ModifierDisplayComponent.cs
@@ -17,7 +17,7 @@ namespace MiraAPI.Modifiers.ModifierDisplay;
/// The code used to display Mira modifiers.
///
[RegisterInIl2Cpp]
-public class ModifierDisplayComponent(nint ptr) : MonoBehaviour(ptr)
+public class ModifierDisplayComponent(nint cppPtr) : MonoBehaviour(cppPtr)
{
///
/// Gets the instance of the Modifier Display.
@@ -34,8 +34,8 @@ public class ModifierDisplayComponent(nint ptr) : MonoBehaviour(ptr)
private PassiveButton _nextButton = null!;
private PassiveButton _backButton = null!;
- private int _currentPage = 0;
- private const int _itemsPerPage = 3;
+ private int _currentPage;
+ private const int ItemsPerPage = 3;
private readonly Dictionary _modifiers = [];
@@ -142,10 +142,10 @@ public class ModifierDisplayComponent(nint ptr) : MonoBehaviour(ptr)
private void UpdatePage()
{
- var totalPages = Mathf.CeilToInt((float)_modifiers.Count / _itemsPerPage);
+ var totalPages = Mathf.CeilToInt((float)_modifiers.Count / ItemsPerPage);
_currentPage = Mathf.Clamp(_currentPage, 0, Mathf.Max(0, totalPages - 1));
- if (_modifiers.Count <= _itemsPerPage)
+ if (_modifiers.Count <= ItemsPerPage)
{
_modifiers.Do(x => x.Value.gameObject.SetActive(true));
_pagination.gameObject.SetActive(false);
@@ -162,8 +162,8 @@ public class ModifierDisplayComponent(nint ptr) : MonoBehaviour(ptr)
_backButton.gameObject.SetActive(true);
_modifiers.Do(x => x.Value.gameObject.SetActive(false));
- var start = _currentPage * _itemsPerPage;
- var end = Mathf.Min(start + _itemsPerPage, _modifiers.Count);
+ var start = _currentPage * ItemsPerPage;
+ var end = Mathf.Min(start + ItemsPerPage, _modifiers.Count);
var modifiers = _modifiers.ToArray();
for (var i = start; i < end; i++)
diff --git a/MiraAPI/Modifiers/ModifierDisplay/ModifierUiComponent.cs b/MiraAPI/Modifiers/ModifierDisplay/ModifierUiComponent.cs
index a17dcc3..ef8b0bb 100644
--- a/MiraAPI/Modifiers/ModifierDisplay/ModifierUiComponent.cs
+++ b/MiraAPI/Modifiers/ModifierDisplay/ModifierUiComponent.cs
@@ -9,7 +9,7 @@ namespace MiraAPI.Modifiers.ModifierDisplay;
/// The code placed on every Modifier HUD object. Used to handle updating.
///
[RegisterInIl2Cpp]
-public class ModifierUiComponent(nint ptr) : MonoBehaviour(ptr)
+public class ModifierUiComponent(nint cppPtr) : MonoBehaviour(cppPtr)
{
///
/// Gets the modifier which this component is for.
@@ -17,12 +17,13 @@ public class ModifierUiComponent(nint ptr) : MonoBehaviour(ptr)
[HideFromIl2Cpp]
public BaseModifier? Modifier { get; internal set; }
+ // ReSharper disable InconsistentNaming
private SpriteRenderer modBg = null!;
private TextMeshPro desc = null!;
private SpriteRenderer icon = null!;
private TextMeshPro nameText = null!;
private RectTransform descRect = null!;
-
+ // ReSharper restore InconsistentNaming
private void Awake()
{
if (Modifier == null) return;
diff --git a/MiraAPI/Modifiers/ModifierFactory.cs b/MiraAPI/Modifiers/ModifierFactory.cs
index 8f8d005..4f84db0 100644
--- a/MiraAPI/Modifiers/ModifierFactory.cs
+++ b/MiraAPI/Modifiers/ModifierFactory.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Linq.Expressions;
using MiraAPI.Utilities;
@@ -11,7 +12,7 @@ namespace MiraAPI.Modifiers;
///
public static class ModifierFactory
{
- private static readonly Dictionary<(Type, Type[]), Func