Example #1
0
        static void ChooseDoll(UnitEntityData unitEntityData)
        {
            if (!unitEntityData.IsMainCharacter && !unitEntityData.IsCustomCompanion() && GUILayout.Button("Destroy Doll", GUILayout.Width(DefaultLabelWidth)))
            {
                unitEntityData.Descriptor.Doll = null;
                unitEntityData.Descriptor.ForcceUseClassEquipment = false;
                CharacterManager.RebuildCharacter(unitEntityData);
            }
            var doll   = DollResourcesManager.GetDoll(unitEntityData);
            var race   = doll.Race;
            var gender = unitEntityData.Gender;
            CustomizationOptions customizationOptions = gender != Gender.Male ? race.FemaleOptions : race.MaleOptions;

            ChooseRace(unitEntityData, doll);
            ChooseEEL(unitEntityData, doll, "Face", customizationOptions.Heads, doll.Head, (EquipmentEntityLink ee) => doll.SetHead(ee));
            ChooseEEL(unitEntityData, doll, "Hair", customizationOptions.Hair, doll.Hair, (EquipmentEntityLink ee) => doll.SetHair(ee));
            if (customizationOptions.Beards.Length > 0)
            {
                ChooseEEL(unitEntityData, doll, "Beards", customizationOptions.Beards, doll.Beard, (EquipmentEntityLink ee) => doll.SetBeard(ee));
            }
            if (BlueprintRoot.Instance.DlcSettings.Tieflings.Enabled)
            {
                if (customizationOptions.Horns.Length > 0)
                {
                    ChooseEEL(unitEntityData, doll, "Horns", customizationOptions.Horns, doll.Horn, (EquipmentEntityLink ee) => doll.SetHorn(ee));
                }
            }
            ChooseRamp(unitEntityData, doll, "Hair Color", doll.GetHairRamps(), doll.HairRampIndex, (int index) => doll.SetHairColor(index));
            ChooseRamp(unitEntityData, doll, "Skin Color", doll.GetSkinRamps(), doll.SkinRampIndex, (int index) => doll.SetSkinColor(index));
            if (BlueprintRoot.Instance.DlcSettings.Tieflings.Enabled)
            {
                ChooseRamp(unitEntityData, doll, "Horn Color", doll.GetHornsRamps(), doll.HornsRampIndex, (int index) => doll.SetHornsColor(index));
            }
            ChooseRamp(unitEntityData, doll, "Primary Outfit Color", doll.GetOutfitRampsPrimary(), doll.EquipmentRampIndex, (int index) => doll.SetEquipColors(index, doll.EquipmentRampIndexSecondary));
            ChooseRamp(unitEntityData, doll, "Secondary Outfit Color", doll.GetOutfitRampsSecondary(), doll.EquipmentRampIndexSecondary, (int index) => doll.SetEquipColors(doll.EquipmentRampIndex, index));
            ChooseVisualPreset(unitEntityData, doll, "Body Type", doll.Race.Presets, doll.RacePreset);
            if (unitEntityData.Descriptor.Doll.LeftHanded && GUILayout.Button("Set Right Handed", GUILayout.Width(DefaultLabelWidth)))
            {
                unitEntityData.Descriptor.LeftHandedOverride = false;
                doll.SetLeftHanded(false);
                unitEntityData.Descriptor.Doll = doll.CreateData();
                ViewManager.ReplaceView(unitEntityData, null);
                unitEntityData.View.HandsEquipment.HandleEquipmentSetChanged();
            }
            else if (!unitEntityData.Descriptor.Doll.LeftHanded && GUILayout.Button("Set Left Handed", GUILayout.Width(DefaultLabelWidth)))
            {
                unitEntityData.Descriptor.LeftHandedOverride = true;
                doll.SetLeftHanded(true);
                unitEntityData.Descriptor.Doll = doll.CreateData();
                ViewManager.ReplaceView(unitEntityData, null);
                unitEntityData.View.HandsEquipment.HandleEquipmentSetChanged();
            }
            ChoosePortrait(unitEntityData);
            if (unitEntityData.IsMainCharacter || unitEntityData.IsCustomCompanion())
            {
                ChooseAsks(unitEntityData);
            }
        }
        static void AddOptions(CustomizationOptions options, string oldAssetID)
        {
            var hair = bundle.LoadAsset <EquipmentEntity>("Assets/Race/EE_Hair_HairLongBangs_M_AS.asset");
            var head = bundle.LoadAsset <EquipmentEntity>("Assets/Race/EE_Head_Face01_M_HM.asset");

            options.Hair  = new EquipmentEntityLink[] { BlueprintUtil.MakeEquipmentEntityLink(hair, new Guid(oldAssetID + "Hair").ToString()) };
            options.Heads = new EquipmentEntityLink[] { BlueprintUtil.MakeEquipmentEntityLink(head, new Guid(oldAssetID + "Head").ToString()) };
            Main.DebugLog("Added Hair");
        }
Example #3
0
        static CustomizationOptions CopyCustomisationOptions(CustomizationOptions orignal, string prevGUID)
        {
            var newOptions = new CustomizationOptions();

            newOptions.Beards   = CopyLinks(orignal.Beards, prevGUID + "BeardSalt");
            newOptions.Heads    = CopyLinks(orignal.Heads, prevGUID + "HeadSalt");
            newOptions.Eyebrows = CopyLinks(orignal.Eyebrows, prevGUID + "EyebrowSalt");
            newOptions.Hair     = CopyLinks(orignal.Hair, prevGUID + "HairSalt");
            return(newOptions);
        }
        static void ChooseDoll(UnitEntityData unitEntityData)
        {
            try
            {
                if (!unitEntityData.IsMainCharacter && !unitEntityData.IsCustomCompanion() && GUILayout.Button("Destroy Doll", GUILayout.Width(DefaultLabelWidth)))
                {
                    unitEntityData.Descriptor.Doll = null;
                    unitEntityData.Descriptor.ForcceUseClassEquipment = false;
                    CharacterManager.RebuildCharacter(unitEntityData);
                }
                var doll   = DollResourcesManager.GetDoll(unitEntityData);
                var race   = doll.Race;
                var gender = unitEntityData.Gender;
                CustomizationOptions customizationOptions = gender != Gender.Male ? race.FemaleOptions : race.MaleOptions;
                ChooseRace(unitEntityData, doll);
                ChooseEEL(unitEntityData, doll, "Face", customizationOptions.Heads, doll.Head.m_Link, (EquipmentEntityLink ee) => doll.SetHead(ee));
                ChooseEEL(unitEntityData, doll, "Hair", customizationOptions.Hair, doll.Hair.m_Link, (EquipmentEntityLink ee) => doll.SetHair(ee));
                if (customizationOptions.Beards.Length > 0)
                {
                    ChooseEEL(unitEntityData, doll, "Beards", customizationOptions.Beards, doll.Beard.m_Link, (EquipmentEntityLink ee) => doll.SetBeard(ee));
                }
                if (customizationOptions.Horns.Length > 0)
                {
                    ChooseEEL(unitEntityData, doll, "Horns", customizationOptions.Horns, doll.Horn.m_Link, (EquipmentEntityLink ee) => doll.SetHorn(ee));
                }
                ChooseRamp(unitEntityData, doll, "Hair Color", doll.GetHairRamps(), doll.HairRampIndex, (int index) => doll.SetHairColor(index));
                ChooseRamp(unitEntityData, doll, "Skin Color", doll.GetSkinRamps(), doll.SkinRampIndex, (int index) => doll.SetSkinColor(index));
                ChooseRamp(unitEntityData, doll, "Horn Color", doll.GetHornsRamps(), doll.HornsRampIndex, (int index) => doll.SetHornsColor(index));
                ChooseRamp(unitEntityData, doll, "Primary Outfit Color", doll.GetOutfitRampsPrimary(), doll.EquipmentRampIndex, (int index) => doll.SetEquipColors(index, doll.EquipmentRampIndexSecondary));
                ChooseRamp(unitEntityData, doll, "Secondary Outfit Color", doll.GetOutfitRampsSecondary(), doll.EquipmentRampIndexSecondary, (int index) => doll.SetEquipColors(doll.EquipmentRampIndex, index));
                ReferenceArrayProxy <BlueprintRaceVisualPreset, BlueprintRaceVisualPresetReference> presets = doll.Race.Presets;
                BlueprintRaceVisualPreset racePreset = doll.RacePreset;

                /*if (unitEntityData.Descriptor.LeftHandedOverride == true && GUILayout.Button("Set Right Handed", GUILayout.Width(DefaultLabelWidth)))
                 * {
                 *  unitEntityData.Descriptor.LeftHandedOverride = false;
                 *  unitEntityData.Descriptor.Doll = doll.CreateData();
                 *  ViewManager.ReplaceView(unitEntityData, null);
                 *  unitEntityData.View.HandsEquipment.HandleEquipmentSetChanged();
                 * }
                 * else if (unitEntityData.Descriptor.LeftHandedOverride == false && GUILayout.Button("Set Left Handed", GUILayout.Width(DefaultLabelWidth)))
                 * {
                 *  unitEntityData.Descriptor.LeftHandedOverride = true;
                 *  unitEntityData.Descriptor.Doll = doll.CreateData();
                 *  ViewManager.ReplaceView(unitEntityData, null);
                 *  unitEntityData.View.HandsEquipment.HandleEquipmentSetChanged();
                 * }*/
                ChoosePortrait(unitEntityData);
                if (unitEntityData.IsMainCharacter || unitEntityData.IsCustomCompanion())
                {
                    ChooseAsks(unitEntityData);
                }
            }
            catch (Exception e) { Main.logger.Log(e.ToString()); }
        }
        static void BuildLookup()
        {
            m_lookup = new Dictionary <string, EquipmentEntityInfo>();;
            var races       = BluePrintThing.GetBlueprints <BlueprintRace>();
            var racePresets = BluePrintThing.GetBlueprints <BlueprintRaceVisualPreset>();
            var classes     = BluePrintThing.GetBlueprints <BlueprintCharacterClass>();

            foreach (var race in races)
            {
                foreach (var gender in new Gender[] { Gender.Male, Gender.Female })
                {
                    CustomizationOptions customizationOptions = gender != Gender.Male ? race.FemaleOptions : race.MaleOptions;
                    AddLinks(customizationOptions.Heads, "Head", race.RaceId, gender);
                    AddLinks(customizationOptions.Hair, "Hair", race.RaceId, gender);
                    AddLinks(customizationOptions.Beards, "Beards", race.RaceId, gender);
                    AddLinks(customizationOptions.Eyebrows, "Eyebrows", race.RaceId, gender);
                }
            }
            foreach (var racePreset in racePresets)
            {
                foreach (var gender in new Gender[] { Gender.Male, Gender.Female })
                {
                    var raceSkin = racePreset.Skin;
                    if (raceSkin == null)
                    {
                        continue;
                    }
                    AddLinks(raceSkin.GetLinks(gender, racePreset.RaceId), "Skin", racePreset.RaceId, gender);
                }
            }
            foreach (var _class in classes)
            {
                foreach (var race in races)
                {
                    foreach (var gender in new Gender[] { Gender.Male, Gender.Female })
                    {
                        AddLinks(_class.GetClothesLinks(gender, race.RaceId).ToArray(), "ClassOutfit", race.RaceId, gender);
                    }
                }
            }
            var gear = BluePrintThing.GetBlueprints <KingmakerEquipmentEntity>();

            foreach (var race in races)
            {
                foreach (var gender in new Gender[] { Gender.Male, Gender.Female })
                {
                    foreach (var kee in gear)
                    {
                        AddLinks(kee.GetLinks(gender, race.RaceId), "Armor", race.RaceId, gender);
                    }
                }
            }
            blueprintBuffs = BluePrintThing.GetBlueprints <BlueprintBuff>().ToArray();
        }
Example #6
0
        static private void Init()
        {
            var races       = ResourcesLibrary.GetBlueprints <BlueprintRace>();
            var racePresets = ResourcesLibrary.GetBlueprints <BlueprintRaceVisualPreset>();
            var classes     = ResourcesLibrary.GetBlueprints <BlueprintCharacterClass>();

            foreach (var race in races)
            {
                foreach (var gender in new Gender[] { Gender.Male, Gender.Female })
                {
                    CustomizationOptions customizationOptions = gender != Gender.Male ? race.FemaleOptions : race.MaleOptions;
                    AddLinks(head, customizationOptions.Heads);
                    AddLinks(hair, customizationOptions.Hair);
                    AddLinks(beard, customizationOptions.Beards);
                    AddLinks(eyebrows, customizationOptions.Eyebrows);
                    AddLinks(tails, customizationOptions.TailSkinColors);
                    AddLinks(horns, customizationOptions.Horns);
                }
            }
            foreach (var racePreset in racePresets)
            {
                foreach (var gender in new Gender[] { Gender.Male, Gender.Female })
                {
                    var raceSkin = racePreset.Skin;
                    if (raceSkin == null)
                    {
                        continue;
                    }
                    AddLinks(skin, raceSkin.GetLinks(gender, racePreset.RaceId));
                }
            }
            foreach (var _class in classes)
            {
                foreach (var race in races)
                {
                    foreach (var gender in new Gender[] { Gender.Male, Gender.Female })
                    {
                        AddLinks(classOutfits, _class.GetClothesLinks(gender, race.RaceId).ToArray());
                    }
                }
            }
            foreach (var bp in ResourcesLibrary.GetBlueprints <BlueprintPortrait>())
            {
                //Note there are two wolf portraits
                if (bp == BlueprintRoot.Instance.CharGen.CustomPortrait || bp.Data.IsCustom)
                {
                    continue;
                }
                if (!portraits.ContainsKey(bp.name))
                {
                    portraits.Add(bp.name, bp);
                }
            }
            customPortraits.AddRange(CustomPortraitsManager.Instance.GetExistingCustomPortraitIds());
            foreach (var bp in ResourcesLibrary.GetBlueprints <BlueprintUnitAsksList>())
            {
                var component = bp.GetComponent <UnitAsksComponent>();
                if (component == null)
                {
                    continue;
                }
                if (!component.Selected.HasBarks && bp.name != "PC_None_Barks")
                {
                    continue;
                }
                asks.Add(bp.name, bp);
            }
            loaded = true;
        }