コード例 #1
0
        /// <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;
            }
        }
コード例 #2
0
        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);
        }