diff --git a/Sources/Model/Dice/AbstractDie.cs b/Sources/Model/Dice/AbstractDie.cs index 2340067..d9c4626 100644 --- a/Sources/Model/Dice/AbstractDie.cs +++ b/Sources/Model/Dice/AbstractDie.cs @@ -5,7 +5,7 @@ using Model.Dice.Faces; namespace Model.Dice { - public abstract class AbstractDie : RandomnessHaver where T : AbstractDieFace + public abstract class AbstractDie : RandomnessHaver where T : AbstractDieFace { public IEnumerable ListFaces => listFaces; diff --git a/Sources/Model/Dice/ColorDie.cs b/Sources/Model/Dice/ColorDie.cs index 454e4d6..b5f016b 100644 --- a/Sources/Model/Dice/ColorDie.cs +++ b/Sources/Model/Dice/ColorDie.cs @@ -3,13 +3,14 @@ using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Model.Dice { - public class ColorDie : AbstractDie + public class ColorDie : AbstractDie { public ColorDie(params ColorDieFace[] faces) : base(faces) { diff --git a/Sources/Model/Dice/Faces/AbstractDieFace.cs b/Sources/Model/Dice/Faces/AbstractDieFace.cs index ae09083..3872a0f 100644 --- a/Sources/Model/Dice/Faces/AbstractDieFace.cs +++ b/Sources/Model/Dice/Faces/AbstractDieFace.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace Model.Dice.Faces { - public abstract class AbstractDieFace + public abstract class AbstractDieFace { /// /// every die face has a value, and they can all be represented by an int, @@ -14,9 +14,14 @@ namespace Model.Dice.Faces ///
/// USE GetPracticalValue for a Value specific to face type ///
- public int Value { get; protected set; } + public T Value { get; protected set; } - public abstract object GetPracticalValue(); + public abstract T GetPracticalValue(); + + public AbstractDieFace(T value) + { + Value = value; + } public override string ToString() { diff --git a/Sources/Model/Dice/Faces/ColorDieFace.cs b/Sources/Model/Dice/Faces/ColorDieFace.cs index 77b5d3c..4465203 100644 --- a/Sources/Model/Dice/Faces/ColorDieFace.cs +++ b/Sources/Model/Dice/Faces/ColorDieFace.cs @@ -1,45 +1,26 @@ using System; using System.Collections.Generic; +using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Model.Dice.Faces { - public class ColorDieFace : AbstractDieFace + public class ColorDieFace : AbstractDieFace { - private static readonly int MAX_HEX = 16777215; + /// - /// accepts hex strings like "ffbb84" and "#af567d" ([RRGGBB]) /// - /// hex string - public ColorDieFace(string hexValueString) - { - // https://stackoverflow.com/questions/1139957/convert-integer-to-hexadecimal-and-back-again - // we remove any initial '#' before parsing - if (hexValueString.StartsWith('#')) - { - hexValueString = hexValueString[1..]; - } - - int result = int.Parse(hexValueString, System.Globalization.NumberStyles.HexNumber); + /// Color type + public ColorDieFace(Color hexValueString):base(hexValueString) + {} - if (result < 0) Value = 0; - else if (result > MAX_HEX) Value = MAX_HEX; - else Value = result; - } - /// - /// accepts a decimal value that represents a color hex (0 is black, 65280 is green...) - /// - /// - public ColorDieFace(int decimalValue) - : this(decimalValue.ToString()) - { } - public override object GetPracticalValue() + public override Color GetPracticalValue() { // https://stackoverflow.com/questions/1139957/convert-integer-to-hexadecimal-and-back-again - return Value.ToString("X6").Insert(0, "#"); + return Value; } } } diff --git a/Sources/Model/Dice/Faces/ImageDieFace.cs b/Sources/Model/Dice/Faces/ImageDieFace.cs index 84d472b..671951f 100644 --- a/Sources/Model/Dice/Faces/ImageDieFace.cs +++ b/Sources/Model/Dice/Faces/ImageDieFace.cs @@ -7,21 +7,16 @@ using System.Threading.Tasks; namespace Model.Dice.Faces { - public class ImageDieFace : AbstractDieFace + public class ImageDieFace : AbstractDieFace { - public ImageDieFace(string uri) - { - Value = int.Parse(Path.GetFileNameWithoutExtension(uri)); - } + public ImageDieFace(Uri uri):base(uri) + {} + - public ImageDieFace(int code) - { - Value = code; - } - public override object GetPracticalValue() + public override Uri GetPracticalValue() { - return string.Format($"Assets/images/{Value}.png"); + return Value; } } } diff --git a/Sources/Model/Dice/Faces/NumberDieFace.cs b/Sources/Model/Dice/Faces/NumberDieFace.cs index 5aa7adf..3bb494e 100644 --- a/Sources/Model/Dice/Faces/NumberDieFace.cs +++ b/Sources/Model/Dice/Faces/NumberDieFace.cs @@ -6,14 +6,12 @@ using System.Threading.Tasks; namespace Model.Dice.Faces { - public class NumberDieFace : AbstractDieFace + public class NumberDieFace : AbstractDieFace { - public NumberDieFace(int value) - { - Value = value; - } + public NumberDieFace(int value):base(value) + {} - public override object GetPracticalValue() + public override int GetPracticalValue() { return Value; } diff --git a/Sources/Model/Dice/ImageDie.cs b/Sources/Model/Dice/ImageDie.cs index 7a8879b..c537221 100644 --- a/Sources/Model/Dice/ImageDie.cs +++ b/Sources/Model/Dice/ImageDie.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; namespace Model.Dice { - public class ImageDie : AbstractDie + public class ImageDie : AbstractDie { public ImageDie(params ImageDieFace[] faces) : base(faces) { diff --git a/Sources/Model/Dice/NumberDie.cs b/Sources/Model/Dice/NumberDie.cs index 013c5fa..bb8435e 100644 --- a/Sources/Model/Dice/NumberDie.cs +++ b/Sources/Model/Dice/NumberDie.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; namespace Model.Dice { - public class NumberDie : AbstractDie + public class NumberDie : AbstractDie { public NumberDie(params NumberDieFace[] faces) : base(faces) {