generate method
Generates an item of type T
Implementation
@override
Npc generate() {
final genderGenerator = ListItemGenerator(Gender.values);
genderGenerator.seed(_seed);
final gender = genderGenerator.generate();
final companionsNumberGenerator = WeightedGenerator({0: 15, 1: 5, 2: 1});
companionsNumberGenerator.seed((_seed + 1) % SeedGenerator.maxSeed);
final companionsNumber = companionsNumberGenerator.generate();
final companionArgsGenerator = RepeatedGenerator(
BatchGenerator({
"type": ListItemGenerator(CompanionManager().activeTypes),
"gender": ListItemGenerator(Gender.values),
}),
companionsNumber,
);
companionArgsGenerator.seed((_seed + 2) % SeedGenerator.maxSeed);
final companionArgs = companionArgsGenerator.generate();
final companionsGenerator = ListBatchGenerator(
companionArgs
.map((e) => CompanionGenerator(e["type"], e["gender"]))
.toList(),
);
companionsGenerator.seed((_seed + 3) % SeedGenerator.maxSeed);
final companions = companionsGenerator.generate();
final generator = BatchGenerator(_getBatch(_race, gender, companions));
generator.seed((_seed + 4) % SeedGenerator.maxSeed);
final result = generator.generate();
return Npc.fromShallowMap(result);
}