mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-22 07:10:42 -08:00
51 lines
1.2 KiB
C#
51 lines
1.2 KiB
C#
using System.Text;
|
|
using BugGame.Resources;
|
|
|
|
namespace BugGame.Parts;
|
|
|
|
internal class PartCollection
|
|
{
|
|
private readonly int _maxCount;
|
|
private readonly Message _addedMessage;
|
|
private readonly Message _fullMessage;
|
|
private int _count;
|
|
|
|
public PartCollection(int maxCount, Message addedMessage, Message fullMessage)
|
|
{
|
|
_maxCount = maxCount;
|
|
_addedMessage = addedMessage;
|
|
_fullMessage = fullMessage;
|
|
}
|
|
|
|
public bool IsComplete => _count == _maxCount;
|
|
|
|
public bool TryAddOne(out Message message)
|
|
{
|
|
if (_count < _maxCount)
|
|
{
|
|
_count++;
|
|
message = _addedMessage.ForValue(_count);
|
|
return true;
|
|
}
|
|
|
|
message = _fullMessage;
|
|
return false;
|
|
}
|
|
|
|
protected void AppendTo(StringBuilder builder, int offset, int length, char character)
|
|
{
|
|
if (_count == 0) { return; }
|
|
|
|
for (var i = 0; i < length; i++)
|
|
{
|
|
builder.Append(' ', offset);
|
|
|
|
for (var j = 0; j < _count; j++)
|
|
{
|
|
builder.Append(character).Append(' ');
|
|
}
|
|
builder.AppendLine();
|
|
}
|
|
}
|
|
}
|