private IEnumerable <Unit> SetupPlayerTeam() { yield return(UnitBuilder.Create() .WithId(UnitIdPool.AllocateInstance()) .WithName("Gooch") .WithFaction(FactionTypes.Player) .WithClass(ClassLookups.Fighter) .WithInitiative(6) .WithPosition(3, 2) .Build()); yield return(UnitBuilder.Create() .WithId(UnitIdPool.AllocateInstance()) .WithName("Kate") .WithFaction(FactionTypes.Player) .WithClass(ClassLookups.Priest) .WithInitiative(6) .WithPosition(1, 1) .Build()); yield return(UnitBuilder.Create() .WithId(UnitIdPool.AllocateInstance()) .WithName("Le Grandé Tudge") .WithFaction(FactionTypes.Player) .WithClass(ClassLookups.Rogue) .WithInitiative(6) .WithWeapon(ItemTemplateLookups.DeadlySosig) .WithPosition(1, 4) .Build()); }
private IEnumerable <Unit> SetupEnemies(int levelId) { var minEnemies = levelId / 2; if (minEnemies == 0) { minEnemies = 1; } var maxEnemies = levelId; var enemies = new List <EnemyUnit>(); var actualEnemies = Randomizer.Random(minEnemies, maxEnemies); for (var i = 0; i < actualEnemies; i++) { var randomInitiative = Randomizer.Random(1, 6); var randomClass = Randomizer.Random(ClassLookups.Fighter, ClassLookups.Rogue - 1); var randomRace = Randomizer.Random(RaceLookups.Human, RaceLookups.Dwarf - 1); var loot = GlobalLootTable; var enemyId = UnitIdPool.AllocateInstance(); var enemyUnit = UnitBuilder.Create() .WithId(enemyId) .WithName($"Enemy Person {enemyId}") .WithInitiative(randomInitiative) .WithFaction(FactionTypes.Enemy) .WithRace(randomRace) .WithClass(randomClass) .Build() as EnemyUnit; enemyUnit.LootTable = loot; enemyUnit.Stats.SetExperience(50); enemies.Add(enemyUnit); } return(enemies); }