コード例 #1
0
        public IEntity Generate(int breedId = -1)
        {
            var  rand          = new Random();
            var  breed         = breedId == -1 ? Breeds.ElementAt(rand.Next(0, Breeds.Count)) : Breeds.FirstOrDefault(x => x.Id == breedId);
            byte gender        = (byte)(rand.Next(100) >= 50 ? 1 : 0);
            var  possibleHeads = Heads.Where(x => x.Breed == breed.Id && x.Gender == gender);
            var  head          = possibleHeads.ElementAt(rand.Next(0, possibleHeads.Count()));

            var look = EntityLookParser.Parse(gender == 0 ? breed.MaleLook : breed.FemaleLook);

            var entity          = EntityFactory.Instance.CreateCharacter();
            var entityLook      = entity.Look();
            var entityCharacter = entity.Character();
            var entityStats     = entity.Stats();

            entityLook.Name    = "ByPass" + Guid.NewGuid().ToString().Substring(0, 4);
            entityLook.BonesId = look.BonesId;
            entityLook.AddSkin(short.Parse(head.Skin));
            entityLook.IndexedColors.AddRange(gender == 0 ? breed.MaleColors : breed.FemaleColors);
            entityLook.Scales.AddRange(look.Scales);
            entityCharacter.BreedId = breed.Id;
            entityCharacter.Gender  = gender == 1;
            entityStats.Stats       = new StatCollection();

            return(entity);
        }