Looks better
This commit is contained in:
parent
f2b5622562
commit
db300f950c
2 changed files with 12 additions and 22 deletions
|
|
@ -11,6 +11,7 @@ public sealed class Chain
|
|||
private readonly double _bucketSize;
|
||||
private Person _firstPerson;
|
||||
private int _availableBuckets;
|
||||
private int _usedBuckets;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new bucket chain based on the supplied parameters.
|
||||
|
|
@ -56,7 +57,12 @@ public sealed class Chain
|
|||
_fire.BurnHigher();
|
||||
|
||||
// step 3
|
||||
var bucket = new Bucket(_bucketSize);
|
||||
Bucket? bucket = null;
|
||||
if (_usedBuckets < _availableBuckets)
|
||||
{
|
||||
bucket = new Bucket(_bucketSize);
|
||||
_usedBuckets++;
|
||||
}
|
||||
_firstPerson.UseWell(_well, bucket);
|
||||
|
||||
// step 4
|
||||
|
|
|
|||
|
|
@ -113,7 +113,6 @@ public sealed class Person
|
|||
}
|
||||
|
||||
LastStepPerformed = currentStep;
|
||||
RightNeighbor.LastStepPerformed = currentStep;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -127,6 +126,7 @@ public sealed class Person
|
|||
var amount = _forwardBucket?.Empty();
|
||||
fire.GetHitByWater(amount ?? 0);
|
||||
_backwardBucket = _forwardBucket;
|
||||
_forwardBucket = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -145,7 +145,7 @@ public sealed class Person
|
|||
well.FillBucket(_forwardBucket);
|
||||
}
|
||||
// else fill backward bucket if empty
|
||||
else if (_backwardBucket is { IsEmpty: true })
|
||||
else if (_forwardBucket == null && _backwardBucket is { IsEmpty: true })
|
||||
{
|
||||
well.FillBucket(_backwardBucket);
|
||||
|
||||
|
|
@ -157,26 +157,10 @@ public sealed class Person
|
|||
}
|
||||
}
|
||||
// else add additional bucket
|
||||
else if (additionalBucket != null)
|
||||
else if (additionalBucket != null && _forwardBucket == null && _backwardBucket == null)
|
||||
{
|
||||
if (_forwardBucket == null)
|
||||
{
|
||||
_forwardBucket = additionalBucket;
|
||||
}
|
||||
else if (_backwardBucket == null)
|
||||
{
|
||||
_backwardBucket = additionalBucket;
|
||||
}
|
||||
|
||||
// try to fill the new bucket
|
||||
if (_forwardBucket is { IsEmpty: true })
|
||||
{
|
||||
well.FillBucket(_forwardBucket);
|
||||
}
|
||||
else if (_backwardBucket is { IsEmpty: true })
|
||||
{
|
||||
well.FillBucket(_backwardBucket);
|
||||
}
|
||||
_forwardBucket = additionalBucket;
|
||||
well.FillBucket(_forwardBucket);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue