using System;
using System.Text;
namespace DanieleMarotta.RiversongCodeShowcase
{
public class TextFormatHelper
{
public string Pluralize(int value, string singular, string plural)
{
return value == 1 ? singular : plural;
}
public string FormatImportantText(string text)
{
return $"{text}";
}
public void FormatImportantText(StringBuilder sb, string text)
{
sb.Append("");
sb.Append(text);
sb.Append("");
}
public void FormatUnlockConditions(UnlockDefinition unlock, StringBuilder sb)
{
if (unlock.Type != UnlockType.UnlockBuilding || unlock.Conditions.Count <= 0) return;
sb.Append("To unlock the ");
FormatImportantText(sb, unlock.Building.BuildingName);
sb.AppendLine(", your village needs a little more:");
foreach (var condition in unlock.Conditions)
{
sb.AppendLine();
FormatUnlockCondition(sb, condition);
}
}
private void FormatUnlockCondition(StringBuilder sb, UnlockCondition condition)
{
sb.Append("\u2022 ");
switch (condition.Type)
{
case UnlockConditionType.BuildingPlaced:
sb.Append("Add a ");
FormatImportantText(sb, condition.Building.BuildingName);
sb.Append(" to your village");
return;
case UnlockConditionType.HouseCountAtTierOrAbove:
sb.Append("Grow ");
sb.Append(condition.HouseCount);
sb.Append(' ');
sb.Append(Pluralize(condition.HouseCount, "house", "houses"));
sb.Append(" to tier ");
sb.Append(condition.MinHouseTierIndex + 1);
return;
default:
throw new ArgumentOutOfRangeException();
}
}
}
}