Input players and coins to numbers

This commit is contained in:
Matt Nadareski
2020-09-03 22:28:48 -07:00
parent 33908e4e72
commit d204f8eb1f
8 changed files with 172 additions and 60 deletions

View File

@@ -303,7 +303,6 @@ namespace SabreTools.Library.DatItems
Condition newItem = item as Condition;
// Replace the fields
// TODO: Would this ever make sense to have these `else` statements?
if (fields.Contains(Field.DatItem_Tag))
Tag = newItem.Tag;
else if (fields.Contains(Field.DatItem_Condition_Tag))

View File

@@ -145,7 +145,7 @@ namespace SabreTools.Library.DatItems
Part.Interface = mappings[Field.DatItem_Part_Interface];
}
// TODO: Handle DatItem_Feature*
// TODO: Handle DatItem_Part_Feature*
#endregion
}
@@ -349,7 +349,7 @@ namespace SabreTools.Library.DatItems
if (filter.DatItem_Part_Interface.MatchesNegativeSet(Part?.Interface) == true)
return false;
// TODO: Handle DatItem_Feature*
// TODO: Handle DatItem_Part_Feature*
#endregion
@@ -412,7 +412,7 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Part_Interface) && Part != null)
Part.Interface = null;
// TODO: Handle DatItem_Feature*
// TODO: Handle DatItem_Part_Feature*
#endregion
}

View File

@@ -182,7 +182,7 @@ namespace SabreTools.Library.DatItems
Part.Interface = mappings[Field.DatItem_Part_Interface];
}
// TODO: Handle DatItem_Feature*
// TODO: Handle DatItem_Part_Feature*
}
#endregion
@@ -492,7 +492,7 @@ namespace SabreTools.Library.DatItems
if (filter.DatItem_Part_Interface.MatchesNegativeSet(Part?.Interface) == true)
return false;
// TODO: Handle DatItem_Feature*
// TODO: Handle DatItem_Part_Feature*
#endregion
@@ -555,7 +555,7 @@ namespace SabreTools.Library.DatItems
if (fields.Contains(Field.DatItem_Part_Interface) && Part != null)
Part.Interface = null;
// TODO: Handle DatItem_Feature*
// TODO: Handle DatItem_Part_Feature*
#endregion
}

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Linq;
using SabreTools.Library.Filtering;
@@ -31,13 +32,13 @@ namespace SabreTools.Library.DatItems
/// Number of players on the input
/// </summary>
[JsonProperty("players", DefaultValueHandling = DefaultValueHandling.Ignore)]
public string Players { get; set; } // TODO: Int32?
public long? Players { get; set; }
/// <summary>
/// Number of coins required
/// </summary>
[JsonProperty("coins", DefaultValueHandling = DefaultValueHandling.Ignore)]
public string Coins { get; set; } // TODO: Int32?
public long? Coins { get; set; }
/// <summary>
/// Set of controls for the input
@@ -66,10 +67,16 @@ namespace SabreTools.Library.DatItems
Tilt = mappings[Field.DatItem_Tilt].AsYesNo();
if (mappings.Keys.Contains(Field.DatItem_Players))
Players = mappings[Field.DatItem_Players];
{
if (Int64.TryParse(mappings[Field.DatItem_Players], out long players))
Players = players;
}
if (mappings.Keys.Contains(Field.DatItem_Coins))
Coins = mappings[Field.DatItem_Coins];
{
if (Int64.TryParse(mappings[Field.DatItem_Coins], out long coins))
Coins = coins;
}
if (Controls != null)
{
@@ -172,15 +179,19 @@ namespace SabreTools.Library.DatItems
return false;
// Filter on players
if (filter.DatItem_Players.MatchesPositiveSet(Players) == false)
if (filter.DatItem_Players.MatchesNeutral(null, Players) == false)
return false;
if (filter.DatItem_Players.MatchesNegativeSet(Players) == true)
else if (filter.DatItem_Players.MatchesPositive(null, Players) == false)
return false;
else if (filter.DatItem_Players.MatchesNegative(null, Players) == false)
return false;
// Filter on coins
if (filter.DatItem_Coins.MatchesPositiveSet(Coins) == false)
if (filter.DatItem_Coins.MatchesNeutral(null, Coins) == false)
return false;
if (filter.DatItem_Coins.MatchesNegativeSet(Coins) == true)
else if (filter.DatItem_Coins.MatchesPositive(null, Coins) == false)
return false;
else if (filter.DatItem_Coins.MatchesNegative(null, Coins) == false)
return false;
// Filter on individual controls
@@ -213,7 +224,7 @@ namespace SabreTools.Library.DatItems
Tilt = null;
if (fields.Contains(Field.DatItem_Players))
Players = null;
Players = 0;
if (fields.Contains(Field.DatItem_Coins))
Coins = null;

View File

@@ -419,7 +419,7 @@ namespace SabreTools.Library.DatItems
Part.Interface = mappings[Field.DatItem_Part_Interface];
}
// TODO: Handle DatItem_Feature*
// TODO: Handle DatItem_Part_Feature*
if (mappings.Keys.Contains(Field.DatItem_Value))
Value = mappings[Field.DatItem_Value];