Пример #1
0
        public HairSelectorDrawer(Appearance.Genders gender, Appearance.Tribes tribe, byte value)
        {
            this.InitializeComponent();

            this.ContentArea.DataContext = this;

            IGameDataService gameData = Services.Get <IGameDataService>();

            this.List.ItemsSource  = gameData.CharacterMakeCustomize.GetHair(tribe, gender);
            this.List.SelectedItem = gameData.CharacterMakeCustomize.GetHair(tribe, gender, value);
        }
Пример #2
0
        public CustomizeFeatureSelectorDrawer(Features feature, Appearance.Genders gender, Appearance.Tribes tribe, byte value)
        {
            this.InitializeComponent();

            this.feature = feature;
            this.gender  = gender;
            this.tribe   = tribe;

            this.ContentArea.DataContext = this;
            this.List.ItemsSource        = GameDataService.CharacterMakeCustomize?.GetFeatureOptions(feature, tribe, gender);

            this.Selected = value;
        }
Пример #3
0
        public ICharaMakeCustomize GetHair(Appearance.Tribes tribe, Appearance.Genders gender, byte featureId)
        {
            List <ICharaMakeCustomize> hairs = this.GetHair(tribe, gender);

            foreach (ICharaMakeCustomize hair in hairs)
            {
                if (hair.FeatureId == featureId)
                {
                    return(hair);
                }
            }

            return(null);
        }
Пример #4
0
        public List <ICharaMakeCustomize> GetHair(Appearance.Tribes tribe, Appearance.Genders gender)
        {
            List <ICharaMakeCustomize> hairs = new List <ICharaMakeCustomize>();
            int fromIndex = this.GetStartIndex(gender, tribe);

            for (int i = 1; i < 200; i++)
            {
                ICharaMakeCustomize feature = this.FindHair(fromIndex, 100, (byte)i);

                if (feature == null)
                {
                    continue;
                }

                hairs.Add(feature);
            }

            return(hairs);
        }
Пример #5
0
        private static int GetTribeHairStartIndex(Appearance.Tribes tribe, Appearance.Genders gender)
        {
            bool isMasculine = gender == Appearance.Genders.Masculine;

            switch (tribe)
            {
            case Appearance.Tribes.Midlander: return(isMasculine ? 4864 : 3584);

            case Appearance.Tribes.Highlander: return(isMasculine ? 7424 : 6144);

            case Appearance.Tribes.Wildwood: return(isMasculine ? 9984 : 8704);

            case Appearance.Tribes.Duskwight: return(isMasculine ? 12544 : 11264);

            case Appearance.Tribes.Plainsfolk: return(isMasculine ? 15104 : 13824);

            case Appearance.Tribes.Dunesfolk: return(isMasculine ? 17664 : 16384);

            case Appearance.Tribes.SeekerOfTheSun: return(isMasculine ? 20224 : 18944);

            case Appearance.Tribes.KeeperOfTheMoon: return(isMasculine ? 22784 : 21504);

            case Appearance.Tribes.SeaWolf: return(isMasculine ? 25344 : 24064);

            case Appearance.Tribes.Hellsguard: return(isMasculine ? 27904 : 26624);

            case Appearance.Tribes.Raen: return(isMasculine ? 30464 : 29184);

            case Appearance.Tribes.Xaela: return(isMasculine ? 33024 : 31744);

            case Appearance.Tribes.Helions: return(34304);

            case Appearance.Tribes.TheLost: return(36608);

            case Appearance.Tribes.Rava: return(40704);

            case Appearance.Tribes.Veena: return(43264);
            }

            throw new Exception("Unknown tribe: " + tribe);
        }
Пример #6
0
        private static int GetTribeSkinStartIndex(Appearance.Tribes tribe, Appearance.Genders gender)
        {
            bool isMasculine = gender == Appearance.Genders.Masculine;

            switch (tribe)
            {
            case Appearance.Tribes.Midlander: return(isMasculine ? 4608 : 3328);

            case Appearance.Tribes.Highlander: return(isMasculine ? 7168 : 5888);

            case Appearance.Tribes.Wildwood: return(isMasculine ? 9728 : 8448);

            case Appearance.Tribes.Duskwight: return(isMasculine ? 12288 : 11008);

            case Appearance.Tribes.Plainsfolk: return(isMasculine ? 14848 : 13568);

            case Appearance.Tribes.Dunesfolk: return(isMasculine ? 17408 : 16128);

            case Appearance.Tribes.SeekerOfTheSun: return(isMasculine ? 19968 : 18688);

            case Appearance.Tribes.KeeperOfTheMoon: return(isMasculine ? 22528 : 21248);

            case Appearance.Tribes.SeaWolf: return(isMasculine ? 25088 : 23808);

            case Appearance.Tribes.Hellsguard: return(isMasculine ? 27648 : 26368);

            case Appearance.Tribes.Raen: return(isMasculine ? 28928 : 30208);

            case Appearance.Tribes.Xaela: return(isMasculine ? 31488 : 32768);

            case Appearance.Tribes.Helions: return(34048);

            case Appearance.Tribes.TheLost: return(35840);

            case Appearance.Tribes.Rava: return(40448);

            case Appearance.Tribes.Veena: return(43008);
            }

            throw new Exception("Unknown tribe: " + tribe);
        }
Пример #7
0
        private int GetStartIndex(Appearance.Genders gender, Appearance.Tribes tribe)
        {
            bool isMale = gender == Appearance.Genders.Masculine;

            switch (tribe)
            {
            case Appearance.Tribes.Midlander: return(isMale ? 0 : 100);

            case Appearance.Tribes.Highlander: return(isMale ? 200 : 300);

            case Appearance.Tribes.Wildwood: return(isMale ? 400 : 500);

            case Appearance.Tribes.Duskwight: return(isMale ? 400 : 500);

            case Appearance.Tribes.Plainsfolk: return(isMale ? 600 : 700);

            case Appearance.Tribes.Dunesfolk: return(isMale ? 600 : 700);

            case Appearance.Tribes.SeekerOfTheSun: return(isMale ? 800 : 900);

            case Appearance.Tribes.KeeperOfTheMoon: return(isMale ? 800 : 900);

            case Appearance.Tribes.SeaWolf: return(isMale ? 1000 : 1100);

            case Appearance.Tribes.Hellsguard: return(isMale ? 1000 : 1100);

            case Appearance.Tribes.Raen: return(isMale ? 1200 : 1300);

            case Appearance.Tribes.Xaela: return(isMale ? 1200 : 1300);

            case Appearance.Tribes.Helions: return(1400);

            case Appearance.Tribes.TheLost: return(1400);

            case Appearance.Tribes.Rava: return(1500);

            case Appearance.Tribes.Veena: return(1500);
            }

            throw new Exception("Unrecognized tribe: " + tribe);
        }
Пример #8
0
        public static Entry[] GetHair(Appearance.Tribes tribe, Appearance.Genders gender)
        {
            int from = GetTribeHairStartIndex(tribe, gender);

            return(Span(from, 192));
        }
Пример #9
0
        private int GetFeatureStartIndex(Features featureType, Appearance.Tribes tribe, Appearance.Genders gender)
        {
            bool isMale = gender == Appearance.Genders.Masculine;

            if (featureType == Features.Hair)
            {
                switch (tribe)
                {
                case Appearance.Tribes.Midlander: return(isMale ? 0 : 100);

                case Appearance.Tribes.Highlander: return(isMale ? 200 : 300);

                case Appearance.Tribes.Wildwood: return(isMale ? 400 : 500);

                case Appearance.Tribes.Duskwight: return(isMale ? 400 : 500);

                case Appearance.Tribes.Plainsfolk: return(isMale ? 600 : 700);

                case Appearance.Tribes.Dunesfolk: return(isMale ? 600 : 700);

                case Appearance.Tribes.SeekerOfTheSun: return(isMale ? 800 : 900);

                case Appearance.Tribes.KeeperOfTheMoon: return(isMale ? 800 : 900);

                case Appearance.Tribes.SeaWolf: return(isMale ? 1000 : 1100);

                case Appearance.Tribes.Hellsguard: return(isMale ? 1000 : 1100);

                case Appearance.Tribes.Raen: return(isMale ? 1200 : 1300);

                case Appearance.Tribes.Xaela: return(isMale ? 1200 : 1300);

                case Appearance.Tribes.Helions: return(1400);

                case Appearance.Tribes.TheLost: return(1400);

                case Appearance.Tribes.Rava: return(1500);

                case Appearance.Tribes.Veena: return(1500);
                }
            }
            else if (featureType == Features.FacePaint)
            {
                switch (tribe)
                {
                case Appearance.Tribes.Midlander: return(isMale ? 1600 : 1650);

                case Appearance.Tribes.Highlander: return(isMale ? 1700 : 1750);

                case Appearance.Tribes.Wildwood: return(isMale ? 1800 : 1850);

                case Appearance.Tribes.Duskwight: return(isMale ? 1900 : 1950);

                case Appearance.Tribes.Plainsfolk: return(isMale ? 2000 : 2050);

                case Appearance.Tribes.Dunesfolk: return(isMale ? 2100 : 2150);

                case Appearance.Tribes.SeekerOfTheSun: return(isMale ? 2200 : 2250);

                case Appearance.Tribes.KeeperOfTheMoon: return(isMale ? 2300 : 2350);

                case Appearance.Tribes.SeaWolf: return(isMale ? 2400 : 2450);

                case Appearance.Tribes.Hellsguard: return(isMale ? 2500 : 2550);

                case Appearance.Tribes.Raen: return(isMale ? 2600 : 2650);

                case Appearance.Tribes.Xaela: return(isMale ? 2700 : 2750);

                case Appearance.Tribes.Helions: return(2800);

                case Appearance.Tribes.TheLost: return(2850);

                case Appearance.Tribes.Rava: return(2900);

                case Appearance.Tribes.Veena: return(2950);
                }
            }

            throw new Exception("Unrecognized tribe: " + tribe);
        }
Пример #10
0
        public ICharaMakeCustomize?GetFeature(Features featureType, Appearance.Tribes tribe, Appearance.Genders gender, byte featureId)
        {
            List <ICharaMakeCustomize> hairs = this.GetFeatureOptions(featureType, tribe, gender);

            foreach (ICharaMakeCustomize hair in hairs)
            {
                if (hair.FeatureId == featureId)
                {
                    return(hair);
                }
            }

            return(null);
        }
Пример #11
0
        public List <ICharaMakeCustomize> GetFeatureOptions(Features featureType, Appearance.Tribes tribe, Appearance.Genders gender)
        {
            List <ICharaMakeCustomize> results = new List <ICharaMakeCustomize>();
            int fromIndex = this.GetFeatureStartIndex(featureType, tribe, gender);
            int count     = this.GetFeatureLength(featureType);

            for (int i = 1; i < 200; i++)
            {
                ICharaMakeCustomize?feature = this.FindFeatureById(fromIndex, count, (byte)i);

                if (feature == null)
                {
                    continue;
                }

                results.Add(feature);
            }

            return(results);
        }
Пример #12
0
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     Appearance.Genders gender = (Appearance.Genders)value;
     return(gender == Appearance.Genders.Masculine ? Visibility.Visible : Visibility.Collapsed);
 }