|
3 | 3 | using SER.Helpers.Exceptions; |
4 | 4 | using SER.Helpers.ResultSystem; |
5 | 5 | using SER.TokenSystem.Tokens; |
6 | | -using SER.TokenSystem.Tokens.Interfaces; |
7 | 6 | using SER.ValueSystem; |
8 | 7 | using UnityEngine; |
9 | 8 |
|
@@ -54,43 +53,21 @@ public override string InputDescription |
54 | 53 | [UsedImplicitly] |
55 | 54 | public DynamicTryGet<int> GetConvertSolution(BaseToken token) |
56 | 55 | { |
57 | | - if (token is NumberToken numberToken) |
| 56 | + if (token is NumberToken number) |
58 | 57 | { |
59 | | - return VerifyRange(numberToken.Value); |
| 58 | + return VerifyRange(number.Value.ExactValue); |
60 | 59 | } |
61 | | - |
62 | | - if (token is not IValueCapableToken<LiteralValue>) |
63 | | - { |
64 | | - return $"Value '{token.RawRep}' cannot represent a number."; |
65 | | - } |
66 | | - |
67 | | - if (TryParse(token).WasSuccessful(out var finalValue)) |
68 | | - { |
69 | | - return finalValue; |
70 | | - } |
71 | | - |
72 | | - return new(() => TryParse(token)); |
| 60 | + return new(() => token.TryGetLiteralValue<NumberValue>().OnSuccess(VerifyRange)); |
73 | 61 | } |
74 | 62 |
|
75 | | - private TryGet<int> TryParse(BaseToken token) |
76 | | - { |
77 | | - if (token.TryGetLiteralValue<NumberValue>().HasErrored(out var error, out var value)) |
78 | | - { |
79 | | - return new Result(false, error) + $"Value '{token.RawRep}' does not represent a valid number."; |
80 | | - } |
81 | | - |
82 | | - return VerifyRange(value); |
83 | | - } |
84 | | - |
85 | | - private TryGet<int> VerifyRange(NumberValue input) |
| 63 | + private TryGet<int> VerifyRange(NumberValue value) |
86 | 64 | { |
87 | | - var result = (int)input.ExactValue; |
88 | | - |
| 65 | + var result = (int)value.ExactValue; |
89 | 66 | if (result < _minValue) |
90 | | - return $"Value '{result}' is lower than allowed minimum value {_minValue}."; |
91 | | - |
| 67 | + return $"Value {value} is lower than allowed minimum value {_minValue}."; |
| 68 | + |
92 | 69 | if (result > _maxValue) |
93 | | - return $"Value '{result}' is higher than allowed maximum value {_maxValue}."; |
| 70 | + return $"Value {value} is higher than allowed maximum value {_maxValue}."; |
94 | 71 |
|
95 | 72 | return result; |
96 | 73 | } |
|
0 commit comments