/// <summary> /// Creates a monster given a reference ID. /// </summary> /// <param name="id">The ID of the monster to fetch the template for</param> /// <returns></returns> public static Monster CreateMonster(long id) { using (var context = new GameDatabaseContext()) { var template = context.MonsterTemplates.FirstOrDefault(x => x.Id == id); // Setup actual object var monster = new Monster(template); // Copy stats into CopyStatsFromTemplateToCharacter(template, monster); monster.CurrentAi = new WanderAi(monster); monster.Skills.Add(new Skill(context.SkillTemplates.First(x => x.Id == 1))); return monster; } }
private Vector2 GetRandomSpawnPosition(MonsterSpawnSet monsterSpawn, Monster monster) { var maxX = monsterSpawn.SpawnArea.Width; var maxY = monsterSpawn.SpawnArea.Height; var random = new Random(); var pickedX = random.Next(0, maxX); var pickedY = random.Next(0, maxY); var actualX = monsterSpawn.SpawnArea.X + pickedX; var actualY = monsterSpawn.SpawnArea.Y + pickedY; return new Vector2(actualX, actualY); }