Skip to content

Commit 240d472

Browse files
make float argument preferPercent option
1 parent cd2204f commit 240d472

2 files changed

Lines changed: 25 additions & 14 deletions

File tree

Code/ArgumentSystem/Arguments/FloatArgument.cs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,13 @@ public class FloatArgument : Argument
1212
{
1313
private readonly float? _minValue;
1414
private readonly float? _maxValue;
15+
private readonly bool _preferPercent;
1516

16-
public FloatArgument(string name, float? minValue = null, float? maxValue = null) : base(name)
17+
public FloatArgument(
18+
string name,
19+
float? minValue = null,
20+
float? maxValue = null,
21+
bool preferPercent = false) : base(name)
1722
{
1823
if (minValue.HasValue && maxValue.HasValue && minValue.Value > maxValue.Value)
1924
{
@@ -23,30 +28,37 @@ public FloatArgument(string name, float? minValue = null, float? maxValue = null
2328

2429
_minValue = minValue;
2530
_maxValue = maxValue;
31+
_preferPercent = preferPercent;
2632
}
2733

34+
private string FormatNum(double number)
35+
{
36+
if (!_preferPercent) return number.ToString();
37+
return $"{number * 100}%";
38+
}
39+
2840
public override string InputDescription
2941
{
3042
get
3143
{
3244
if (_minValue.HasValue && _maxValue.HasValue)
3345
{
34-
return $"A number which is at least {_minValue} and most {_maxValue} e.g. " +
35-
$"{Math.Round((double)new Random().Next((int)_minValue.Value, (int)_maxValue.Value + 1))}";
46+
return $"A number which is at least {FormatNum(_minValue.Value)} and most {FormatNum(_maxValue.Value)} e.g. " +
47+
$"{FormatNum(Math.Round((double)new Random().Next((int)_minValue.Value, (int)_maxValue.Value + 1)))}";
3648
}
3749

3850
if (_minValue.HasValue)
3951
{
40-
return $"A number which is at least {_minValue} e.g. {_minValue + 2f}";
52+
return $"A number which is at least {FormatNum(_minValue.Value)} e.g. {FormatNum(_minValue.Value + 2f)}";
4153
}
4254

4355
// ReSharper disable once ConvertIfStatementToReturnStatement
4456
if (_maxValue.HasValue)
4557
{
46-
return $"A number which is at most {_maxValue} e.g. {_minValue + 2f}";
58+
return $"A number which is at most {FormatNum(_maxValue.Value)} e.g. {FormatNum(_minValue.Value + 2f)}";
4759
}
4860

49-
return "Any number e.g. 2.5";
61+
return $"Any number e.g. {FormatNum(1.5)}";
5062
}
5163
}
5264

Code/MethodSystem/Methods/PlayerMethods/StaminaMethod.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,15 @@ public class StaminaMethod : SynchronousMethod
1313

1414
public override Argument[] ExpectedArguments =>
1515
[
16-
new OptionsArgument("options", options:
17-
[
18-
new("add"),
19-
new("remove"),
20-
new("set"),
21-
]),
16+
new OptionsArgument("options",
17+
"add",
18+
"remove",
19+
"set"
20+
),
2221
new PlayersArgument("players"),
23-
new FloatArgument("stamina value", 0f, 1f)
22+
new FloatArgument("stamina value", 0f, 1f, true)
2423
{
25-
Description = "Stamina is valued from 0 to 1. 0 meaning an empty stamina bar and 1 meaning a full stamina bar."
24+
Description = "Stamina is valued from 0 to 100%. 0 meaning an empty stamina bar and 100% meaning a full stamina bar."
2625
},
2726
new BoolArgument("delay stamina regen")
2827
{

0 commit comments

Comments
 (0)