|
| 1 | +using MiraAPI.GameOptions; |
| 2 | +using MiraAPI.GameOptions.Attributes; |
| 3 | +using MiraAPI.GameOptions.OptionTypes; |
| 4 | +using MiraAPI.Utilities; |
| 5 | +using NewMod.Roles.NeutralRoles; |
| 6 | +using UnityEngine; |
| 7 | + |
| 8 | +namespace NewMod.Options.Roles.InjectorOptions; |
| 9 | + |
| 10 | +public class InjectorOptions : AbstractOptionGroup<InjectorRole> |
| 11 | +{ |
| 12 | + public override string GroupName => "Injector Settings"; |
| 13 | + |
| 14 | + [ModdedNumberOption("Serum Cooldown", min: 5, max: 60, suffixType: MiraNumberSuffixes.Seconds)] |
| 15 | + public float SerumCooldown { get; set; } = 20f; |
| 16 | + |
| 17 | + [ModdedNumberOption("Max Serum Uses", min: 1, max: 10)] |
| 18 | + public int MaxSerumUses { get; set; } = 3; |
| 19 | + |
| 20 | + [ModdedNumberOption("Injections Required to Win", min: 1, max: 10)] |
| 21 | + public int RequiredInjectCount { get; set; } = 3; |
| 22 | + |
| 23 | + [ModdedNumberOption("Adrenaline Effect (+% Speed)", min: 10, max: 200, increment: 5, suffixType: MiraNumberSuffixes.Percent)] |
| 24 | + public float AdrenalineSpeedBoost { get; set; } = 10f; |
| 25 | + |
| 26 | + [ModdedNumberOption("Immobilize Duration", min: 1, max: 10, suffixType: MiraNumberSuffixes.Seconds)] |
| 27 | + public float ParalysisDuration { get; set; } = 4f; |
| 28 | + |
| 29 | + [ModdedNumberOption("Bounce Force (Horizontal)", min: 0f, max: 2f, increment: 0.1f)] |
| 30 | + public float BounceForceHorizontal { get; set; } = 0.5f; |
| 31 | + |
| 32 | + [ModdedNumberOption("Bounce Force (Vertical)", min: 0f, max: 2f, increment: 0.1f)] |
| 33 | + public float BounceForceVertical { get; set; } = 0.5f; |
| 34 | + |
| 35 | + [ModdedToggleOption("Enable Random Bounce Effects")] |
| 36 | + public bool EnableBounceVariants { get; set; } = true; |
| 37 | + |
| 38 | + [ModdedNumberOption("Bounce Duration", min: 1, max: 10, suffixType: MiraNumberSuffixes.Seconds)] |
| 39 | + public float BounceDuration { get; set; } = 10f; |
| 40 | + |
| 41 | + public ModdedNumberOption BounceRotateEffect { get; } = new("Bounce Rotate Effect", 180f, min: 0f, max: 180f, increment: 10f, suffixType: MiraNumberSuffixes.None) |
| 42 | + { |
| 43 | + Visible = () => OptionGroupSingleton<InjectorOptions>.Instance.EnableBounceVariants |
| 44 | + }; |
| 45 | + public ModdedNumberOption BounceStretchScale { get; } = new("Bounce Stretch Scale", 1.5f, min: 1f, max: 1.5f, increment: 0.01f, suffixType: MiraNumberSuffixes.Multiplier) |
| 46 | + { |
| 47 | + Visible = () => OptionGroupSingleton<InjectorOptions>.Instance.EnableBounceVariants |
| 48 | + }; |
| 49 | + |
| 50 | + [ModdedNumberOption("Repel Duration", min: 1, max: 10, suffixType: MiraNumberSuffixes.Seconds)] |
| 51 | + public float RepelDuration { get; set; } = 10f; |
| 52 | + |
| 53 | + [ModdedNumberOption("Repel Range", min: 0.5f, max: 4f, increment: 0.1f)] |
| 54 | + public float RepelRange { get; set; } = 2f; |
| 55 | + |
| 56 | + [ModdedNumberOption("Repel Force", min: 0.1f, max: 2f, increment: 0.1f, suffixType: MiraNumberSuffixes.Multiplier)] |
| 57 | + public float RepelForce { get; set; } = 0.3f; |
| 58 | +} |
| 59 | + |
| 60 | + |
0 commit comments