From 97ded2fc3270d58627e780442bc81ab03162c3f2 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:53:08 -0400 Subject: [PATCH] some updates to example mod --- .../Buttons/Freezer/FreezeButton.cs | 8 +++++--- .../Buttons/Teleporter/TeleportButton.cs | 4 ++-- .../Options/Roles/CustomRole2Settings.cs | 16 --------------- .../Options/Roles/FreezerRoleSettings.cs | 20 +++++++++++++++++++ .../Options/Roles/TeleporterOptions.cs | 8 ++++---- 5 files changed, 31 insertions(+), 25 deletions(-) delete mode 100644 MiraAPI.Example/Options/Roles/CustomRole2Settings.cs create mode 100644 MiraAPI.Example/Options/Roles/FreezerRoleSettings.cs diff --git a/MiraAPI.Example/Buttons/Freezer/FreezeButton.cs b/MiraAPI.Example/Buttons/Freezer/FreezeButton.cs index f8de0ab..d357932 100644 --- a/MiraAPI.Example/Buttons/Freezer/FreezeButton.cs +++ b/MiraAPI.Example/Buttons/Freezer/FreezeButton.cs @@ -1,5 +1,7 @@ using MiraAPI.Example.Modifiers.Freezer; +using MiraAPI.Example.Options.Roles; using MiraAPI.Example.Roles; +using MiraAPI.GameOptions; using MiraAPI.Hud; using MiraAPI.Utilities; using MiraAPI.Utilities.Assets; @@ -11,9 +13,9 @@ namespace MiraAPI.Example.Buttons.Freezer; public class FreezeButton : CustomActionButton { public override string Name => "Freeze"; - public override float Cooldown => 5f; + public override float Cooldown => OptionGroupSingleton.Instance.FreezeDuration; public override float EffectDuration => 0f; - public override int MaxUses => 0; + public override int MaxUses => (int)OptionGroupSingleton.Instance.FreezeUses; public override LoadableAsset Sprite => ExampleAssets.ExampleButton; protected override void OnClick() @@ -23,7 +25,7 @@ public class FreezeButton : CustomActionButton public override PlayerControl? GetTarget() { - return PlayerControl.LocalPlayer.GetClosestPlayer(true, Distance, false); + return PlayerControl.LocalPlayer.GetClosestPlayer(true, Distance); } public override void SetOutline(bool active) diff --git a/MiraAPI.Example/Buttons/Teleporter/TeleportButton.cs b/MiraAPI.Example/Buttons/Teleporter/TeleportButton.cs index 99199b8..3a8d810 100644 --- a/MiraAPI.Example/Buttons/Teleporter/TeleportButton.cs +++ b/MiraAPI.Example/Buttons/Teleporter/TeleportButton.cs @@ -13,7 +13,7 @@ public class TeleportButton : CustomActionButton { public override string Name => "Teleport"; - public override float Cooldown => OptionGroupSingleton.Instance.TeleportCooldown; + public override float Cooldown => OptionGroupSingleton.Instance.TeleportCooldown.Value; public override float EffectDuration => OptionGroupSingleton.Instance.TeleportDuration; @@ -22,7 +22,7 @@ public class TeleportButton : CustomActionButton public override LoadableAsset Sprite => ExampleAssets.TeleportButton; public static bool IsZoom { get; private set; } - public override bool Enabled(RoleBehaviour role) + public override bool Enabled(RoleBehaviour? role) { return role is TeleporterRole; } diff --git a/MiraAPI.Example/Options/Roles/CustomRole2Settings.cs b/MiraAPI.Example/Options/Roles/CustomRole2Settings.cs deleted file mode 100644 index e10931b..0000000 --- a/MiraAPI.Example/Options/Roles/CustomRole2Settings.cs +++ /dev/null @@ -1,16 +0,0 @@ -using MiraAPI.Example.Roles; -using MiraAPI.GameOptions; -using MiraAPI.GameOptions.Attributes; -using System; - -namespace MiraAPI.Example.Options.Roles; - -public class CustomRole2Settings : AbstractOptionGroup -{ - public override string GroupName => "Custom Role"; - - public override Type AdvancedRole => typeof(FreezerRole); - - [ModdedToggleOption("Teleportation ability")] public bool Teleport { get; set; } = true; - -} \ No newline at end of file diff --git a/MiraAPI.Example/Options/Roles/FreezerRoleSettings.cs b/MiraAPI.Example/Options/Roles/FreezerRoleSettings.cs new file mode 100644 index 0000000..0e26665 --- /dev/null +++ b/MiraAPI.Example/Options/Roles/FreezerRoleSettings.cs @@ -0,0 +1,20 @@ +using MiraAPI.Example.Roles; +using MiraAPI.GameOptions; +using MiraAPI.GameOptions.Attributes; +using System; +using MiraAPI.Utilities; + +namespace MiraAPI.Example.Options.Roles; + +public class FreezerRoleSettings : AbstractOptionGroup +{ + public override string GroupName => "Custom Role"; + + public override Type AdvancedRole => typeof(FreezerRole); + + [ModdedNumberOption("Freeze Duration", 1, 15, 1, MiraNumberSuffixes.Seconds)] + public float FreezeDuration { get; set; } = 5; + + [ModdedNumberOption("Freeze Uses", 1, 5)] + public float FreezeUses { get; set; } = 1; +} diff --git a/MiraAPI.Example/Options/Roles/TeleporterOptions.cs b/MiraAPI.Example/Options/Roles/TeleporterOptions.cs index b8bb823..34ccb94 100644 --- a/MiraAPI.Example/Options/Roles/TeleporterOptions.cs +++ b/MiraAPI.Example/Options/Roles/TeleporterOptions.cs @@ -1,8 +1,9 @@ -using MiraAPI.Example.Roles; +using System; +using MiraAPI.Example.Roles; using MiraAPI.GameOptions; using MiraAPI.GameOptions.Attributes; +using MiraAPI.GameOptions.OptionTypes; using MiraAPI.Utilities; -using System; namespace MiraAPI.Example.Options.Roles; @@ -12,8 +13,7 @@ public class TeleporterOptions : AbstractOptionGroup public override Type AdvancedRole => typeof(TeleporterRole); - [ModdedNumberOption("Teleport Cooldown", 5, 60, 2.5f, MiraNumberSuffixes.Seconds)] - public float TeleportCooldown { get; set; } = 5; + public ModdedNumberOption TeleportCooldown { get; set; } = new("Teleport Cooldown", 10, 5, 60, 2.5f, MiraNumberSuffixes.Seconds); [ModdedNumberOption("Teleport Duration", 5, 25, 1, MiraNumberSuffixes.Seconds)] public float TeleportDuration { get; set; } = 10;