generate method

  1. @override
Deity generate()
override

Generates an item of type T

Implementation

@override
Deity generate() {
  final genderGenerator = _deityType.getGenderGenerator();
  genderGenerator.seed(_seed);
  final gender = genderGenerator.generate();

  final raceGenerator = _deityType.getWorshipedByGenerator();
  raceGenerator.seed((_seed + 1) % SeedGenerator.maxSeed);
  final worshipedBy = raceGenerator.generate();

  final domainCountGenerator = NumberGenerator(_minDomains, _maxDomains + 1);
  domainCountGenerator.seed((_seed + 2) % SeedGenerator.maxSeed);
  final domainCount = domainCountGenerator.generate();

  final generator = BatchGenerator(_getBatch(
    gender,
    worshipedBy,
    _alignment,
    domainCount,
  ));
  generator.seed((_seed + 3) % SeedGenerator.maxSeed);
  Deity deity = Deity.fromShallowMap(generator.generate());

  if (_deityType is Fixable<Deity>) {
    deity = (_deityType as Fixable).getFixed(deity);
  }
  return deity;
}