예제 #1
0
    internal Quadrant(
        QuadrantInfo info,
        Enterprise enterprise,
        IRandom random,
        Galaxy galaxy,
        IReadWrite io)
    {
        _info   = info;
        _random = random;
        _io     = io;
        Galaxy  = galaxy;

        info.MarkAsKnown();
        _sectors = new() { [enterprise.SectorCoordinates] = _enterprise = enterprise };
예제 #2
0
    internal Galaxy(IRandom random)
    {
        _quadrants = Enumerable
                     .Range(0, 8)
                     .Select(x => Enumerable
                             .Range(0, 8)
                             .Select(y => new Coordinates(x, y))
                             .Select(c => QuadrantInfo.Create(c, GetQuadrantName(c), random))
                             .ToArray())
                     .ToArray();

        if (StarbaseCount == 0)
        {
            var randomQuadrant = this[random.NextCoordinate()];
            randomQuadrant.AddStarbase();

            if (randomQuadrant.KlingonCount < 2)
            {
                randomQuadrant.AddKlingon();
            }
        }
    }