using System;
namespace DesertPaintCodex.Models
{
public class Reagent
{
private uint _cost;
private uint _recipeMax = 10;
public bool IsCatalyst { get; }
public PaintColor? Color { get; }
public string Name { get; }
public string PracticalPaintName { get; }
public bool Enabled { get; set; }
public int Index { get; private set; }
public uint Cost
{
get => _cost;
set => _cost = Math.Max(1, value);
}
public uint RecipeMax
{
get => _recipeMax;
set
{
if (!IsCatalyst)
{
_recipeMax = Math.Max(0, value);
}
}
}
// catalyst
public Reagent(string name, string ppName, int index)
{
Name = name;
PracticalPaintName = ppName;
Cost = 2;
Enabled = true;
RecipeMax = 1;
IsCatalyst = true;
Index = index;
}
public Reagent(string name, string ppName, byte red, byte green, byte blue, int index)
{
Color = new PaintColor(red, green, blue);
Name = name;
PracticalPaintName = ppName;
Cost = 1;
RecipeMax = 10;
Enabled = true;
IsCatalyst = false;
Index = index;
}
public override string ToString()
{
if (IsCatalyst)
{
return "[" + Name + ", catalyst]";
}
else
{
return "[" + Name + ", " + Color + "]";
}
}
}
}