Exemplo n.º 1
0
        public void CreatePawnPreview(Colonist colonist, float left, float top, string Body, string Head, Clothing l1, Clothing l2, string Hair, Color Skin, Color color1, Color color2, Color HairColor)
        {
            Rect position = new Rect(left, top, 128f, 128f);
            string text = "Things/Pawn/Humanoid/Bodies/Naked_" + Body + "_Front";
            Texture2D image = ContentFinder<Texture2D>.Get(text, true);
            GUI.color = Skin;
            GUI.Label(position, image);

            Texture2D image2 = voidTexture;
            if (l1 != null)
            {
                image2 = ContentFinder<Texture2D>.Get(l1.GraphicPath + "_" + Body + "_front", true);
                GUI.color = color1;
                GUI.Label(position, image2);
            }

            Texture2D image3 = voidTexture;
            if (l2 != null)
            {
                image3 = ContentFinder<Texture2D>.Get(l2.GraphicPath + "_" + Body + "_front", true);
                GUI.color = color2;
                GUI.Label(position, image3);
            }

            Rect position2 = new Rect(left, top - 30f, 128f, 128f);
            string arg_12B_0 = colonist.HeadGraphicPath;
            Texture2D image5 = ContentFinder<Texture2D>.Get(Head + "_front", true);
            GUI.color = Skin;
            GUI.Label(position2, image5);
            position2 = new Rect(left, top - 30f, 128f, 128f);
            string arg_179_0 = colonist.HairDef.GraphicPath;
            Texture2D image6 = ContentFinder<Texture2D>.Get(Hair + "_front", true);
            GUI.color = HairColor;
            GUI.Label(position2, image6);
        }
Exemplo n.º 2
0
 public static string ProObj(this Colonist c)
 {
     if (c.Gender == 1)
     {
         return("ProhimObj".Translate());
     }
     return("ProherObj".Translate());
 }
Exemplo n.º 3
0
 public static string ProSubjCap(this Colonist c)
 {
     if (c.Gender == 1)
     {
         return("ProheCap".Translate());
     }
     return("ProsheCap".Translate());
 }
Exemplo n.º 4
0
 public static string PossessiveCap(this Colonist c)
 {
     if (c.Gender == 1)
     {
         return("ProhisCap".Translate());
     }
     return("ProherCap".Translate());
 }
Exemplo n.º 5
0
        private static HairDef RandomColonistHairDefFor(Colonist colonist, FactionDef factionType)
        {
            IEnumerable <HairDef> source =
                from hair in DefDatabase <HairDef> .AllDefs
                where hair.hairTags.SharesElementWith(factionType.hairTags)
                select hair;

            return(source.RandomElementByWeight((HairDef hair) => ColonistHairChoiceLikelihoodFor(hair, colonist)));
        }
Exemplo n.º 6
0
 public ChangeClothing(Colonist c)
 {
     colonist = c;
     base.SetCentered(600f, 440f);
     category            = LayerCategory.GameDialog;
     clearNonEditDialogs = false;
     absorbAllInput      = true;
     forcePause          = true;
     CreateClothingList();
     SetClothingDefaults();
 }
Exemplo n.º 7
0
 public ChangeClothing(Colonist c)
 {
     colonist = c;
     base.SetCentered(600f, 440f);
     category = LayerCategory.GameDialog;
     clearNonEditDialogs = false;
     absorbAllInput = true;
     forcePause = true;
     CreateClothingList();
     SetClothingDefaults();
 }
Exemplo n.º 8
0
 public ChangeHead(Colonist c)
 {
     colonist = c;
     base.SetCentered(600f, 440f);
     category            = LayerCategory.GameDialog;
     clearNonEditDialogs = false;
     absorbAllInput      = true;
     forcePause          = true;
     thisHair            = colonist.HairDef;
     CreateHairList();
     CreateFaceList();
     SetDefaults();
 }
Exemplo n.º 9
0
 public ChangeHead(Colonist c)
 {
     colonist = c;
     base.SetCentered(600f, 440f);
     category = LayerCategory.GameDialog;
     clearNonEditDialogs = false;
     absorbAllInput = true;
     forcePause = true;
     thisHair = colonist.HairDef;
     CreateHairList();
     CreateFaceList();
     SetDefaults();
 }
Exemplo n.º 10
0
        private static float ColonistHairChoiceLikelihoodFor(HairDef hair, Colonist colonist)
        {
            if (colonist.Gender == 0)
            {
                return(100f);
            }

            if (colonist.Gender == 1)
            {
                switch (hair.hairGender)
                {
                case HairGender.Male:
                    return(70f);

                case HairGender.MaleUsually:
                    return(30f);

                case HairGender.Any:
                    return(60f);

                case HairGender.FemaleUsually:
                    return(5f);

                case HairGender.Female:
                    return(1f);
                }
            }

            if (colonist.Gender == 2)
            {
                switch (hair.hairGender)
                {
                case HairGender.Male:
                    return(1f);

                case HairGender.MaleUsually:
                    return(5f);

                case HairGender.Any:
                    return(60f);

                case HairGender.FemaleUsually:
                    return(30f);

                case HairGender.Female:
                    return(70f);
                }
            }

            return(0f);
        }
Exemplo n.º 11
0
        public void CreatePawnPreview(Colonist colonist, float left, float top, string Body, string Head, Clothing l1, Clothing l2, string Hair, Color Skin, Color color1, Color color2, Color HairColor)
        {
            Rect      position = new Rect(left, top, 128f, 128f);
            string    text     = "Things/Pawn/Humanoid/Bodies/Naked_" + Body + "_Front";
            Texture2D image    = ContentFinder <Texture2D> .Get(text, true);

            GUI.color = Skin;
            GUI.Label(position, image);

            Texture2D image2 = voidTexture;

            if (l1 != null)
            {
                image2 = ContentFinder <Texture2D> .Get(l1.GraphicPath + "_" + Body + "_front", true);

                GUI.color = color1;
                GUI.Label(position, image2);
            }

            Texture2D image3 = voidTexture;

            if (l2 != null)
            {
                image3 = ContentFinder <Texture2D> .Get(l2.GraphicPath + "_" + Body + "_front", true);

                GUI.color = color2;
                GUI.Label(position, image3);
            }

            Rect      position2 = new Rect(left, top - 30f, 128f, 128f);
            string    arg_12B_0 = colonist.HeadGraphicPath;
            Texture2D image5    = ContentFinder <Texture2D> .Get(Head + "_front", true);

            GUI.color = Skin;
            GUI.Label(position2, image5);
            position2 = new Rect(left, top - 30f, 128f, 128f);
            string    arg_179_0 = colonist.HairDef.GraphicPath;
            Texture2D image6    = ContentFinder <Texture2D> .Get(Hair + "_front", true);

            GUI.color = HairColor;
            GUI.Label(position2, image6);
        }
Exemplo n.º 12
0
        private static float HairChoiceLikelihoodFor(HairDef hair, Colonist c)
        {
            if (c.Gender == 0)
            {
                return 100f;
            }
            if (c.Gender == 1)
            {
                switch (hair.hairGender)
                {
                    case HairGender.Male:
                        return 70f;
                    case HairGender.MaleUsually:
                        return 30f;
                    case HairGender.Any:
                        return 60f;
                    case HairGender.FemaleUsually:
                        return 5f;
                    case HairGender.Female:
                        return 1f;
                }
            }
            if (c.Gender == 2)
            {
                switch (hair.hairGender)
                {
                    case HairGender.Male:
                        return 1f;
                    case HairGender.MaleUsually:
                        return 5f;
                    case HairGender.Any:
                        return 60f;
                    case HairGender.FemaleUsually:
                        return 30f;
                    case HairGender.Female:
                        return 70f;
                }
            }

            return 0f;
        }
Exemplo n.º 13
0
 private static void AgeDown(Rect position, Colonist colonist)
 {
     if (colonist.Age > 16)
     {
         colonist.Age = colonist.Age - 1;
         GUI.Label(position, colonist.Age.ToString());
     }
 }
Exemplo n.º 14
0
        public static void PawnsToColonists()
        {
            for (int p = 0; p < ColonistNum.Amount; p++)
            {
                if (ModdedMapInitParams.colonists[p] != null)
                {
                    Colonist colonist = new Colonist();
                    colonist.Age       = ModdedMapInitParams.colonists[p].age;
                    colonist.Gender    = (int)ModdedMapInitParams.colonists[p].gender;
                    colonist.FirstName = ModdedMapInitParams.colonists[p].Name.first;
                    colonist.NickName  = ModdedMapInitParams.colonists[p].Name.nick;
                    colonist.LastName  = ModdedMapInitParams.colonists[p].Name.last;

                    colonist.SkinColor       = ModdedMapInitParams.colonists[p].story.skinColor;
                    colonist.CrownType       = ModdedMapInitParams.colonists[p].story.crownType;
                    colonist.HeadGraphicPath = ModdedMapInitParams.colonists[p].story.headGraphicPath;
                    colonist.HairColor       = ModdedMapInitParams.colonists[p].story.hairColor;

                    ColHairDef hair = new ColHairDef();
                    hair.DefName     = ModdedMapInitParams.colonists[p].story.hairDef.defName;
                    hair.GraphicPath = ModdedMapInitParams.colonists[p].story.hairDef.graphicPath;
                    colonist.HairDef = hair;

                    List <StoryTrait> traits = new List <StoryTrait>();
                    StoryTrait        trait  = new StoryTrait();
                    trait.TraitName = ModdedMapInitParams.colonists[p].story.traits.allTraits[0].def.label;
                    traits.Add(trait);
                    trait           = new StoryTrait();
                    trait.TraitName = ModdedMapInitParams.colonists[p].story.traits.allTraits[1].def.label;
                    traits.Add(trait);
                    colonist.Traits = traits;

                    List <Clothing> Outfit = new List <Clothing>();
                    ShirtList.Clear();
                    CoatList.Clear();
                    GenClothingList();

                    Clothing clothing = new Clothing();
                    clothing = ShirtList.RandomListElement <Clothing>();
                    Outfit.Add(clothing);

                    clothing = new Clothing();
                    clothing = CoatList.RandomListElement <Clothing>();
                    Outfit.Add(clothing);

                    colonist.Clothing = Outfit;

                    List <Colonist_Skill> skills = new List <Colonist_Skill>();

                    for (int a = 0; a < ModdedMapInitParams.colonists[p].skills.skills.Count; a++)
                    {
                        Colonist_Skill skill = new Colonist_Skill();
                        skill.SkillName    = ModdedMapInitParams.colonists[p].skills.skills[a].def.skillLabel;
                        skill.SkillValue   = ModdedMapInitParams.colonists[p].skills.skills[a].level;
                        skill.SkillPassion = (int)ModdedMapInitParams.colonists[p].skills.skills[a].passion;
                        skills.Add(skill);
                    }
                    colonist.Skills = skills;

                    List <Colonist_Backstory> Backstories = new List <Colonist_Backstory>();
                    Colonist_Backstory        backstory   = new Colonist_Backstory();
                    backstory.StoryName       = ModdedMapInitParams.colonists[p].story.childhood.title;
                    backstory.BaseDescription = ModdedMapInitParams.colonists[p].story.childhood.baseDesc;
                    backstory.StoryAge        = 0;
                    List <StorySkillGain> skillGains = new List <StorySkillGain>();
                    for (int i = 0; i < ModdedMapInitParams.colonists[p].story.childhood.skillGainsResolved.Count - 1; i++)
                    {
                        StorySkillGain skillGain = new StorySkillGain();
                        skillGain.SkillName  = ModdedMapInitParams.colonists[p].story.childhood.skillGainsResolved.ElementAt(i).Key.skillLabel;
                        skillGain.SkillValue = ModdedMapInitParams.colonists[p].story.childhood.skillGainsResolved.ElementAt(i).Value;
                        skillGains.Add(skillGain);
                    }
                    backstory.SkillGains = skillGains;
                    List <string> Restrictions = new List <string>();
                    foreach (WorkTypeDef work in ModdedMapInitParams.colonists[p].story.childhood.DisabledWorkTypes)
                    {
                        Restrictions.Add(work.defName);
                    }
                    backstory.WorkRestrictions = Restrictions;
                    backstory.BodyTypeGlobal   = ModdedMapInitParams.colonists[p].story.childhood.bodyTypeGlobal;
                    backstory.BodyTypeMale     = ModdedMapInitParams.colonists[p].story.childhood.bodyTypeMale;
                    backstory.BodyTypeFemale   = ModdedMapInitParams.colonists[p].story.childhood.bodyTypeFemale;
                    Backstories.Add(backstory);

                    backstory                 = new Colonist_Backstory();
                    backstory.StoryName       = ModdedMapInitParams.colonists[p].story.adulthood.title;
                    backstory.BaseDescription = ModdedMapInitParams.colonists[p].story.adulthood.baseDesc;
                    backstory.StoryAge        = 1;
                    skillGains                = new List <StorySkillGain>();
                    for (int i = 0; i < ModdedMapInitParams.colonists[p].story.adulthood.skillGainsResolved.Count - 1; i++)
                    {
                        StorySkillGain skillGain = new StorySkillGain();
                        skillGain.SkillName  = ModdedMapInitParams.colonists[p].story.adulthood.skillGainsResolved.ElementAt(i).Key.skillLabel;
                        skillGain.SkillValue = ModdedMapInitParams.colonists[p].story.adulthood.skillGainsResolved.ElementAt(i).Value;
                        skillGains.Add(skillGain);
                    }
                    backstory.SkillGains = skillGains;
                    Restrictions         = new List <string>();
                    foreach (WorkTypeDef work in ModdedMapInitParams.colonists[p].story.adulthood.DisabledWorkTypes)
                    {
                        Restrictions.Add(work.defName);
                    }
                    backstory.WorkRestrictions = Restrictions;
                    backstory.BodyTypeGlobal   = ModdedMapInitParams.colonists[p].story.adulthood.bodyTypeGlobal;
                    backstory.BodyTypeMale     = ModdedMapInitParams.colonists[p].story.adulthood.bodyTypeMale;
                    backstory.BodyTypeFemale   = ModdedMapInitParams.colonists[p].story.adulthood.bodyTypeFemale;

                    if (backstory.BodyTypeGlobal.ToString() != "Undefined")
                    {
                        colonist.BodyType = backstory.BodyTypeGlobal;
                    }
                    else
                    {
                        if (colonist.Gender == 1 && backstory.BodyTypeMale.ToString() != "Undefined")
                        {
                            colonist.BodyType = backstory.BodyTypeMale;
                        }
                        else if (colonist.Gender == 1 && backstory.BodyTypeMale.ToString() == "Undefined")
                        {
                            colonist.BodyType = BodyType.Male;
                        }

                        if (colonist.Gender == 2 && backstory.BodyTypeFemale.ToString() != "Undefined")
                        {
                            colonist.BodyType = backstory.BodyTypeFemale;
                        }
                        else if (colonist.Gender == 2 && backstory.BodyTypeFemale.ToString() == "Undefined")
                        {
                            colonist.BodyType = BodyType.Male;
                        }
                    }
                    Backstories.Add(backstory);
                    colonist.Backstory = Backstories;

                    GenWeaponList();
                    colonist.Weapon = WeaponList.RandomListElement <string>();

                    colonist.SkillPool = 0;

                    Population.Add(colonist);
                }
            }
        }
Exemplo n.º 15
0
        public static void RandomColonists()
        {
            Population.Clear();
            ShirtList.Clear();
            CoatList.Clear();
            ClothingList.Clear();
            allBackstories.Clear();

            NameBank nameBank = NameShuffleDatabase.BankOf((NameCategory)1);

            GenClothingList();
            GenHairList();

            //Load in Backstories from BackstoryDatabase
            for (int a = 0; a < BackstoryDatabase.allBackstories.Count - 1; a++)
            {
                allBackstories.Add(BackstoryDatabase.allBackstories.ElementAt(a).Value);
            }
            List<Backstory> SortedBackstories = allBackstories.OrderBy(o => o.title).ToList();
            allBackstories = SortedBackstories;

            //Generate new random colonists
            for (int i = 0; i < ColonistNum.Amount; i++)
            {
                Colonist colonist = new Colonist();

                //Gen random colonist basic info
                int gender = UnityEngine.Random.Range(1, 100);
                if (gender > 50)
                {
                    gender = 1;
                    int body = UnityEngine.Random.Range(1, 4);
                    if (body == 1)
                    {
                        colonist.BodyType = BodyType.Male;
                    }
                    else if (body == 2)
                    {
                        colonist.BodyType = BodyType.Thin;
                    }
                    else if (body == 3)
                    {
                        colonist.BodyType = BodyType.Hulk;
                    }
                    else if (body == 4)
                    {
                        colonist.BodyType = BodyType.Fat;
                    }
                }
                else
                {
                    gender = 2;
                    int body = UnityEngine.Random.Range(1, 4);
                    if (body == 1)
                    {
                        colonist.BodyType = BodyType.Female;
                    }
                    else if (body == 2)
                    {
                        colonist.BodyType = BodyType.Thin;
                    }
                    else if (body == 3)
                    {
                        colonist.BodyType = BodyType.Hulk;
                    }
                    else if (body == 4)
                    {
                        colonist.BodyType = BodyType.Fat;
                    }
                }
                colonist.Gender = gender;
                colonist.FirstName = nameBank.GetName((Gender)colonist.Gender, (NameSlot)0);
                colonist.NickName = nameBank.GetName((Gender)colonist.Gender, (NameSlot)2);
                colonist.LastName = nameBank.GetName((Gender)0, (NameSlot)1);
                colonist.Age = UnityEngine.Random.Range(16, 70);

                //Gen colonist starting skills
                List<Colonist_Skill> skills = new List<Colonist_Skill>();

                if (ColonistDifficulty.Difficulty == "Easy")
                {
                    colonist.SkillPool = 40;
                }
                else if (ColonistDifficulty.Difficulty == "Normal")
                {
                    colonist.SkillPool = 20;
                }
                else
                {
                    colonist.SkillPool = 0;
                }

                for (int a = 0; a < 11; a++)
                {
                    Colonist_Skill skill = new Colonist_Skill();
                    if (a == 0)
                    {
                        skill.SkillName = "Construction".Translate();
                        skill.SkillPassion = 1;
                    }
                    else if (a == 1)
                    {
                        skill.SkillName = "Growing".Translate();
                        skill.SkillPassion = 2;
                    }
                    else if (a == 2)
                    {
                        skill.SkillName = "Research".Translate();
                        skill.SkillPassion = 3;
                    }
                    else if (a == 3)
                    {
                        skill.SkillName = "Mining".Translate();
                    }
                    else if (a == 4)
                    {
                        skill.SkillName = "Shooting".Translate();
                    }
                    else if (a == 5)
                    {
                        skill.SkillName = "Melee".Translate();
                    }
                    else if (a == 6)
                    {
                        skill.SkillName = "Social".Translate();
                    }
                    else if (a == 7)
                    {
                        skill.SkillName = "Cooking".Translate();
                    }
                    else if (a == 8)
                    {
                        skill.SkillName = "Medicine".Translate();
                    }
                    else if (a == 9)
                    {
                        skill.SkillName = "Artistic".Translate();
                    }
                    else if (a == 10)
                    {
                        skill.SkillName = "Crafting".Translate();
                    }
                    skill.SkillValue = 0;

                    skills.Add(skill);
                }
                colonist.Skills = skills;

                //Load Backstories
                childstories.Clear();
                adultstories.Clear();
                ChildStoryIndex = 0;
                AdultStoryIndex = 0;

                List<Colonist_Backstory> ColonistStory = new List<Colonist_Backstory>();

                for (int a = 0; a < allBackstories.Count - 1; a++)
                {
                    bool ChildStoryFound = false;
                    bool AdultStoryFound = false;

                    Colonist_Backstory story = new Colonist_Backstory();

                    if (allBackstories[a].slot == BackstorySlot.Childhood)
                    {
                        story.StoryName = allBackstories[a].title;
                        story.StoryAge = 0;
                        story.BaseDescription = allBackstories[a].baseDesc;
                        story.BodyTypeFemale = allBackstories[a].bodyTypeFemale;
                        story.BodyTypeMale = allBackstories[a].bodyTypeMale;
                        story.BodyTypeGlobal = allBackstories[a].bodyTypeGlobal;
                        story.StoryIndex = ChildStoryIndex;

                        List<StorySkillGain> skillGains = new List<StorySkillGain>();
                        for (int b = 0; b < allBackstories[a].skillGainsResolved.Count - 1; b++)
                        {
                            StorySkillGain skillGain = new StorySkillGain();
                            skillGain.SkillName = allBackstories[a].skillGainsResolved.ElementAt(b).Key.skillLabel;
                            skillGain.SkillValue = allBackstories[a].skillGainsResolved.ElementAt(b).Value;
                            skillGains.Add(skillGain);
                        }
                        story.SkillGains = skillGains;

                        List<string> workRestrictions = new List<string>();
                        foreach (WorkTypeDef work in allBackstories[a].DisabledWorkTypes)
                        {
                            workRestrictions.Add(work.defName);
                        }
                        story.WorkRestrictions = workRestrictions;
                        for (int b = 0; b < childstories.Count - 1; b++)
                        {
                            if (childstories[b].StoryName == story.StoryName)
                            {
                                ChildStoryFound = true;
                            }
                        }

                        if (ChildStoryFound == false)
                        {
                            childstories.Add(story);
                            ChildStoryIndex = ChildStoryIndex + 1;
                        }
                    }

                    if (colonist.Gender == 1)
                    {
                        if (allBackstories[a].slot == BackstorySlot.Adulthood)
                        {
                            if (allBackstories[a].bodyTypeMale == colonist.BodyType || allBackstories[a].bodyTypeGlobal == colonist.BodyType)
                            {
                                story.StoryName = allBackstories[a].title;
                                story.StoryAge = 1;
                                story.BaseDescription = allBackstories[a].baseDesc;
                                story.BodyTypeFemale = allBackstories[a].bodyTypeFemale;
                                story.BodyTypeMale = allBackstories[a].bodyTypeMale;
                                story.BodyTypeGlobal = allBackstories[a].bodyTypeGlobal;
                                story.StoryIndex = AdultStoryIndex;

                                List<StorySkillGain> skillGains = new List<StorySkillGain>();
                                for (int b = 0; b < allBackstories[a].skillGainsResolved.Count - 1; b++)
                                {
                                    StorySkillGain skillGain = new StorySkillGain();
                                    skillGain.SkillName = allBackstories[a].skillGainsResolved.ElementAt(b).Key.skillLabel;
                                    skillGain.SkillValue = allBackstories[a].skillGainsResolved.ElementAt(b).Value;
                                    skillGains.Add(skillGain);
                                }
                                story.SkillGains = skillGains;

                                List<string> workRestrictions = new List<string>();
                                foreach (WorkTypeDef work in allBackstories[a].DisabledWorkTypes)
                                {
                                    workRestrictions.Add(work.defName);
                                }
                                story.WorkRestrictions = workRestrictions;

                                for (int b = 0; b < ColonistManager.AdultStories.Count - 1; b++)
                                {
                                    if (ColonistManager.AdultStories[b].StoryName == story.StoryName)
                                    {
                                        AdultStoryFound = true;
                                    }
                                }

                                if (AdultStoryFound == false)
                                {
                                    ColonistManager.AdultStories.Add(story);
                                    AdultStoryIndex = AdultStoryIndex + 1;
                                }
                            }
                        }
                    }
                    else if (colonist.Gender == 2)
                    {
                        if (allBackstories[a].slot == BackstorySlot.Adulthood)
                        {
                            if (allBackstories[a].bodyTypeFemale == colonist.BodyType || allBackstories[a].bodyTypeGlobal == colonist.BodyType)
                            {
                                story.StoryName = allBackstories[a].title;
                                story.StoryAge = 1;
                                story.BaseDescription = allBackstories[a].baseDesc;
                                story.BodyTypeFemale = allBackstories[a].bodyTypeFemale;
                                story.BodyTypeMale = allBackstories[a].bodyTypeMale;
                                story.BodyTypeGlobal = allBackstories[a].bodyTypeGlobal;
                                story.StoryIndex = AdultStoryIndex;

                                List<StorySkillGain> skillGains = new List<StorySkillGain>();
                                for (int b = 0; b < allBackstories[a].skillGainsResolved.Count - 1; b++)
                                {
                                    StorySkillGain skillGain = new StorySkillGain();
                                    skillGain.SkillName = allBackstories[a].skillGainsResolved.ElementAt(b).Key.skillLabel;
                                    skillGain.SkillValue = allBackstories[a].skillGainsResolved.ElementAt(b).Value;
                                    skillGains.Add(skillGain);
                                }
                                story.SkillGains = skillGains;

                                List<string> workRestrictions = new List<string>();
                                foreach (WorkTypeDef work in allBackstories[a].DisabledWorkTypes)
                                {
                                    workRestrictions.Add(work.defName);
                                }
                                story.WorkRestrictions = workRestrictions;

                                for (int b = 0; b < ColonistManager.AdultStories.Count - 1; b++)
                                {
                                    if (ColonistManager.AdultStories[b].StoryName == story.StoryName)
                                    {
                                        AdultStoryFound = true;
                                    }
                                }

                                if (AdultStoryFound == false)
                                {
                                    ColonistManager.AdultStories.Add(story);
                                    AdultStoryIndex = AdultStoryIndex + 1;
                                }
                            }
                        }
                    }
                }

                //Gen random childhood backstory
                ColonistStory.Add(childstories[UnityEngine.Random.Range(0, childstories.Count - 1)]);

                //Gen random adulthood backstory
                ColonistStory.Add(adultstories[UnityEngine.Random.Range(0, adultstories.Count - 1)]);

                colonist.Backstory = ColonistStory;

                //Gen random traits
                int rand_trait = 0;

                List<StoryTrait> StoryTraits = new List<StoryTrait>();
                foreach (TraitDef trait in DefDatabase<TraitDef>.AllDefsListForReading)
                {
                    StoryTrait storyTrait = new StoryTrait();
                    storyTrait.TraitName = trait.label;
                    storyTrait.Effect = trait.effect;
                    StoryTraits.Add(storyTrait);
                }

                StoryTrait storytrait = new StoryTrait();
                storytrait = new StoryTrait();
                rand_trait = UnityEngine.Random.Range(0, StoryTraits.Count - 1);
                storytrait.TraitName = StoryTraits[rand_trait].TraitName;
                storytrait.Effect = StoryTraits[rand_trait].Effect;
                storytrait.TraitDescription = StoryTraits[rand_trait].TraitDescription;
                StoryTraits.Add(storytrait);

                StoryTrait storytrait2 = new StoryTrait();
                int rand_trait2 = 0;
                rand_trait2 = UnityEngine.Random.Range(0, StoryTraits.Count - 1);
                storytrait2.TraitName = StoryTraits[rand_trait2].TraitName;
                storytrait2.Effect = StoryTraits[rand_trait].Effect;
                storytrait2.TraitDescription = StoryTraits[rand_trait2].TraitDescription;
                StoryTraits.Add(storytrait2);

                colonist.Traits = StoryTraits;

                //Gen Apparel
                List<Clothing> Outfit = new List<Clothing>();

                Clothing clothing = new Clothing();
                clothing = ShirtList.RandomListElement<Clothing>();
                Outfit.Add(clothing);

                clothing = new Clothing();
                clothing = CoatList.RandomListElement<Clothing>();
                Outfit.Add(clothing);

                colonist.Clothing = Outfit;

                //Gen Body
                colonist.SkinColor = RandomSkinColor();
                colonist.CrownType = ((UnityEngine.Random.value >= 0.5f) ? CrownType.Narrow : CrownType.Average);
                colonist.HeadGraphicPath = GraphicDatabase_Head.GetHeadRandom((Gender)colonist.Gender, colonist.SkinColor, colonist.CrownType).graphicPath;

                //Gen Hair
                colonist.HairColor = RandomHairColor(colonist.SkinColor);

                ColHairDef hairDef = new ColHairDef();
                if (colonist.Gender == 1)
                {
                    hairDef = MaleHairList.RandomListElement<ColHairDef>();
                }
                else if (colonist.Gender == 2)
                {
                    hairDef = FemaleHairList.RandomListElement<ColHairDef>();
                }

                colonist.HairDef = hairDef;

                //Set BodyType
                if (colonist.Backstory[1].BodyTypeGlobal.ToString() != "Undefined")
                {
                    colonist.BodyType = colonist.Backstory[1].BodyTypeGlobal;
                }
                else
                {
                    if (colonist.Gender == 1 && colonist.Backstory[1].BodyTypeMale.ToString() != "Undefined")
                    {
                        colonist.BodyType = colonist.Backstory[1].BodyTypeMale;
                    }
                    else if (colonist.Gender == 1 && colonist.Backstory[1].BodyTypeMale.ToString() == "Undefined")
                    {
                        colonist.BodyType = BodyType.Male;
                    }

                    if (colonist.Gender == 2 && colonist.Backstory[1].BodyTypeFemale.ToString() != "Undefined")
                    {
                        colonist.BodyType = colonist.Backstory[1].BodyTypeFemale;
                    }
                    else if (colonist.Gender == 2 && colonist.Backstory[1].BodyTypeFemale.ToString() == "Undefined")
                    {
                        colonist.BodyType = BodyType.Male;
                    }
                }

                //Gen Weapon
                GenWeaponList();
                colonist.Weapon = WeaponList.RandomListElement<string>();

                //Add colonist to total population
                Population.Add(colonist);
            }
        }
Exemplo n.º 16
0
        private static void ResetStoryList(Colonist colonist, int index)
        {
            ColonistManager.AdultStories.Clear();
            int adultStoryIndex = 0;

            for (int a = 0; a < ColonistManager.AllBackstories.Count - 1; a++)
            {
                bool AdultStoryFound = false;

                Colonist_Backstory story = new Colonist_Backstory();

                if (colonist.Gender == 1)
                {
                    if (ColonistManager.AllBackstories[a].slot == BackstorySlot.Adulthood)
                    {
                        if (ColonistManager.AllBackstories[a].bodyTypeMale == colonist.BodyType || ColonistManager.AllBackstories[a].bodyTypeGlobal == colonist.BodyType)
                        {
                            story.StoryName       = ColonistManager.AllBackstories[a].title;
                            story.StoryAge        = 1;
                            story.BaseDescription = ColonistManager.AllBackstories[a].baseDesc;
                            story.BodyTypeFemale  = ColonistManager.AllBackstories[a].bodyTypeFemale;
                            story.BodyTypeMale    = ColonistManager.AllBackstories[a].bodyTypeMale;
                            story.BodyTypeGlobal  = ColonistManager.AllBackstories[a].bodyTypeGlobal;
                            story.StoryIndex      = adultStoryIndex;

                            List <StorySkillGain> skillGains = new List <StorySkillGain>();
                            for (int b = 0; b < ColonistManager.AllBackstories[a].skillGainsResolved.Count; b++)
                            {
                                StorySkillGain skillGain = new StorySkillGain();
                                skillGain.SkillName  = ColonistManager.AllBackstories[a].skillGainsResolved.ElementAt(b).Key.skillLabel;
                                skillGain.SkillValue = ColonistManager.AllBackstories[a].skillGainsResolved.ElementAt(b).Value;
                                skillGains.Add(skillGain);
                            }
                            story.SkillGains = skillGains;

                            List <string> workRestrictions = new List <string>();
                            foreach (WorkTypeDef work in ColonistManager.AllBackstories[a].DisabledWorkTypes)
                            {
                                workRestrictions.Add(work.defName);
                            }
                            story.WorkRestrictions = workRestrictions;

                            for (int b = 0; b < ColonistManager.AdultStories.Count; b++)
                            {
                                if (ColonistManager.AdultStories[b].StoryName == story.StoryName)
                                {
                                    AdultStoryFound = true;
                                }
                            }

                            if (AdultStoryFound == false)
                            {
                                ColonistManager.AdultStories.Add(story);
                                adultStoryIndex = adultStoryIndex + 1;
                            }
                        }
                    }
                }
                else if (colonist.Gender == 2)
                {
                    if (ColonistManager.AllBackstories[a].slot == BackstorySlot.Adulthood)
                    {
                        if (ColonistManager.AllBackstories[a].bodyTypeFemale == colonist.BodyType || ColonistManager.AllBackstories[a].bodyTypeGlobal == colonist.BodyType)
                        {
                            story.StoryName       = ColonistManager.AllBackstories[a].title;
                            story.StoryAge        = 1;
                            story.BaseDescription = ColonistManager.AllBackstories[a].baseDesc;
                            story.BodyTypeFemale  = ColonistManager.AllBackstories[a].bodyTypeFemale;
                            story.BodyTypeMale    = ColonistManager.AllBackstories[a].bodyTypeMale;
                            story.BodyTypeGlobal  = ColonistManager.AllBackstories[a].bodyTypeGlobal;
                            story.StoryIndex      = adultStoryIndex;

                            List <StorySkillGain> skillGains = new List <StorySkillGain>();
                            for (int b = 0; b < ColonistManager.AllBackstories[a].skillGainsResolved.Count; b++)
                            {
                                StorySkillGain skillGain = new StorySkillGain();
                                skillGain.SkillName  = ColonistManager.AllBackstories[a].skillGainsResolved.ElementAt(b).Key.skillLabel;
                                skillGain.SkillValue = ColonistManager.AllBackstories[a].skillGainsResolved.ElementAt(b).Value;
                                skillGains.Add(skillGain);
                            }
                            story.SkillGains = skillGains;

                            List <string> workRestrictions = new List <string>();
                            foreach (WorkTypeDef work in ColonistManager.AllBackstories[a].DisabledWorkTypes)
                            {
                                workRestrictions.Add(work.defName);
                            }
                            story.WorkRestrictions = workRestrictions;

                            for (int b = 0; b < ColonistManager.AdultStories.Count; b++)
                            {
                                if (ColonistManager.AdultStories[b].StoryName == story.StoryName)
                                {
                                    AdultStoryFound = true;
                                }
                            }

                            if (AdultStoryFound == false)
                            {
                                ColonistManager.AdultStories.Add(story);
                                adultStoryIndex = adultStoryIndex + 1;
                            }
                        }
                    }
                }
            }
            List <Colonist_Backstory> ColonistStory = new List <Colonist_Backstory>();

            ColonistStory.Add(ColonistManager.ChildStories[colonist.Backstory[0].StoryIndex]);
            ColonistStory.Add(ColonistManager.AdultStories[index]);
            colonist.Backstory = ColonistStory;
        }
Exemplo n.º 17
0
 private static void WeaponDown(Rect position, Colonist colonist)
 {
     WeaponIndex = WeaponIndex - 1;
     if (WeaponIndex < 0 )
     {
         WeaponIndex = ColonistManager.WeaponList.Count - 1;
     }
     colonist.Weapon = ColonistManager.WeaponList[WeaponIndex];
     GUI.Label(position, colonist.Weapon);
 }
Exemplo n.º 18
0
        private static void DrawStyle(Rect innerRect3, Colonist colonist)
        {
            GUI.BeginGroup(innerRect3);
            GenFont.SetFontMedium();
            GUI.Label(new Rect(0f, 0f, 200f, 30f), Language.FindText(LoadLanguage.language, "Style"));

            //Preview
            Rect position = new Rect(40f, 60f, 120f, 160f);
            GUI.Box(position, "");
            common.CreatePawnPreview(colonist, position.x, position.y + 20, colonist.BodyType.ToString(), colonist.HeadGraphicPath, colonist.Clothing[0], colonist.Clothing[1], colonist.HairDef.GraphicPath, colonist.SkinColor, colonist.Clothing[0].Color, colonist.Clothing[1].Color, colonist.HairColor);

            //Buttons
            GUI.color = Color.white;
            if (Widgets.TextButton(new Rect(0f, position.height + 90f, 200f, 30f), Language.FindText(LoadLanguage.language, "Change Clothing")))
            {
                Find.LayerStack.Add(new ChangeClothing(colonist));
            }
            if (Widgets.TextButton(new Rect(0f, position.height + 140f, 200f, 30f), Language.FindText(LoadLanguage.language, "Change Head")))
            {
                Find.LayerStack.Add(new ChangeHead(colonist));
            }
            if (Widgets.TextButton(new Rect(0f, position.height + 190f, 200f, 30f), Language.FindText(LoadLanguage.language, "Change Body")))
            {
                Find.LayerStack.Add(new ChangeBody(colonist));
            }

            for (int d = 0; d < ColonistManager.WeaponList.Count - 1; d++)
            {
                if (col.Weapon == ColonistManager.WeaponList[d])
                {
                    WeaponIndex = d;
                }
            }

            //Weapon
            float posHeight = position.height + 245f;
            GenFont.SetFontSmall();
            position = new Rect(0f, posHeight, 60f, 20f);
            GUI.Label(position, Language.FindText(LoadLanguage.language, "Weapon") + ":");

            Rect position2 = new Rect(94f, posHeight, 100f, 24f);
            position = new Rect(65f, posHeight, 24f, 24f);
            if (Widgets.TextButton(position, "<"))
            {
                WeaponDown(position2, colonist);
            }
            GUI.Label(position2, ColonistManager.WeaponList[WeaponIndex].Translate());
            position = new Rect(198f, posHeight, 24f, 24f);
            if (Widgets.TextButton(position, ">"))
            {
                WeaponUp(position2, colonist);
            }
            GUI.EndGroup();
        }
Exemplo n.º 19
0
 private static void AgeUp(Rect position, Colonist colonist)
 {
     if (colonist.Age < 70)
     {
         colonist.Age = colonist.Age + 1;
         GUI.Label(position, colonist.Age.ToString());
     }
 }
Exemplo n.º 20
0
 private static void DrawSkills(Rect innerRect, Colonist colonist)
 {
     GUI.BeginGroup(innerRect);
     GenFont.SetFontMedium();
     GUI.Label(new Rect(0f, 0f, 200f, 30f), Language.FindText(LoadLanguage.language, "Skills"));
     GUI.Label(new Rect(0f, 35f, 200f, 30f), Language.FindText(LoadLanguage.language, "Skill Points") + ":" + colonist.SkillPool.ToString().Translate());
     DrawSkillsOf(colonist, new Vector2(0f, 70f));
     GUI.EndGroup();
 }
Exemplo n.º 21
0
        private static void DrawSkillsOf(Colonist c, Vector2 Offset)
        {
            GenFont.SetFontSmall();
            int num = 0;

            for (int i = 0; i < 11; i++)
            {
                float y = (float)num * 27f + Offset.y;
                DrawSkill(i, new Vector2(Offset.x, y), c);
                num++;
            }
        }
Exemplo n.º 22
0
        private static void DrawSkill(int index, Vector2 topLeft, Colonist colonist)
        {
            float num = 0f;
            num = 180f;
            float width = num - 180f - 6f;
            Rect rect = new Rect(topLeft.x, topLeft.y, num, 24f);
            if (rect.Contains(Event.current.mousePosition))
            {
                GUI.DrawTexture(rect, HighlightColTex);
            }

            GUI.BeginGroup(rect);
            GUI.skin.label.alignment = TextAnchor.MiddleLeft;
            Rect position2 = new Rect(0f, 0f, 100f, rect.height);
            GUI.Label(position2, Language.FindText(LoadLanguage.language, colonist.Skills[index].SkillName) + ": ");

            Rect position3 = new Rect(120f, 0f, rect.height, rect.height);
            GUI.skin.label.alignment = TextAnchor.MiddleCenter;

            string text;

            text = colonist.Skills[index].SkillValue.ToString();
            int SkillUpdate = 0;

            try
            {
                foreach (StorySkillGain a in colonist.Backstory[0].SkillGains)
                {
                    if (colonist.Skills[index].SkillName == a.SkillName)
                    {
                        SkillUpdate = SkillUpdate + a.SkillValue;
                        text = SkillUpdate.ToString();
                    }
                }

                foreach (StorySkillGain b in colonist.Backstory[1].SkillGains)
                {
                    if (colonist.Skills[index].SkillName == b.SkillName)
                    {
                        SkillUpdate = SkillUpdate + b.SkillValue;
                        text = SkillUpdate.ToString();
                    }
                }
            }
            catch (Exception e)
            {
                Log.Message(e.Message);
            }

            List<string> list = new List<string>();
            if (colonist.Backstory[0].WorkRestrictions.Count > 0)
            {
                for (int a = 0; a < colonist.Backstory[0].WorkRestrictions.Count; a++)
                {
                    if (colonist.Backstory[0].WorkRestrictions[a] == "Art")
                    {
                        string Restriction = "Artistic";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else if (colonist.Backstory[0].WorkRestrictions[a] == "Warden")
                    {
                        string Restriction = "Social";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else if (colonist.Backstory[0].WorkRestrictions[a] == "Doctor")
                    {
                        string Restriction = "Medicine";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else if (colonist.Backstory[0].WorkRestrictions[a] == "Caring")
                    {
                        string Restriction = "Medicine";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else if (colonist.Backstory[0].WorkRestrictions[a] == "Plant work")
                    {
                        string Restriction = "Growing";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else if (colonist.Backstory[0].WorkRestrictions[a] == "Violent")
                    {
                        string Restriction = "Melee";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                        string Restriction2 = "Shooting";
                        if (!list.Contains(Restriction2))
                        {
                            list.Add(Restriction2);
                        }
                    }
                    else if (colonist.Backstory[0].WorkRestrictions[a] == "Hunting")
                    {
                        string Restriction = "Melee";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                        string Restriction2 = "Shooting";
                        if (!list.Contains(Restriction2))
                        {
                            list.Add(Restriction2);
                        }
                    }
                    else if (colonist.Backstory[0].WorkRestrictions[a] == "Intellectual")
                    {
                        string Restriction = "Research";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else
                    {
                        list.Add(colonist.Backstory[0].WorkRestrictions[a]);
                    }
                }
            }

            if (colonist.Backstory[1].WorkRestrictions.Count > 0)
            {
                for (int a = 0; a < colonist.Backstory[1].WorkRestrictions.Count; a++)
                {
                    if (colonist.Backstory[1].WorkRestrictions[a] == "Art")
                    {
                        string Restriction = "Artistic";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else if (colonist.Backstory[1].WorkRestrictions[a] == "Warden")
                    {
                        string Restriction = "Social";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else if (colonist.Backstory[1].WorkRestrictions[a] == "Doctor")
                    {
                        string Restriction = "Medicine";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else if (colonist.Backstory[1].WorkRestrictions[a] == "Caring")
                    {
                        string Restriction = "Medicine";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else if (colonist.Backstory[1].WorkRestrictions[a] == "Plant work")
                    {
                        string Restriction = "Growing";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else if (colonist.Backstory[1].WorkRestrictions[a] == "Violent")
                    {
                        string Restriction = "Melee";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                        string Restriction2 = "Shooting";
                        if (!list.Contains(Restriction2))
                        {
                            list.Add(Restriction2);
                        }
                    }
                    else if (colonist.Backstory[1].WorkRestrictions[a] == "Hunting")
                    {
                        string Restriction = "Melee";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                        string Restriction2 = "Shooting";
                        if (!list.Contains(Restriction2))
                        {
                            list.Add(Restriction2);
                        }
                    }
                    else if (colonist.Backstory[1].WorkRestrictions[a] == "Intellectual")
                    {
                        string Restriction = "Research";
                        if (!list.Contains(Restriction))
                        {
                            list.Add(Restriction);
                        }
                    }
                    else
                    {
                        list.Add(colonist.Backstory[1].WorkRestrictions[a]);
                    }
                }
            }

            if (list.Contains(colonist.Skills[index].SkillName))
            {
                GUI.color = DisabledSkillColor;
                text = "-";
            }
            else
            {
                text = (colonist.Skills[index].SkillValue + SkillUpdate).ToString();
                Rect position4 = new Rect(85f, 0f, 24f, 24f);
                if (Widgets.TextButton(position4, "-"))
                {
                    SkillDown(rect, index, colonist, SkillUpdate);
                }
                position3.x += 10;
                Rect position5 = new Rect(155f, 0f, 24f, 24f);
                if (Widgets.TextButton(position5, "+"))
                {
                    SkillUp(rect, index, colonist, SkillUpdate);
                }
            }

            GUI.Label(position3, text.Translate());
            GUI.color = Color.white;
            GUI.EndGroup();

            //TooltipHandler.TipRegion(rect, colonist.Skills[index].SkillDescription);
        }
Exemplo n.º 23
0
        private static void DrawPassions(Rect rect, Colonist colonist)
        {
            GUI.BeginGroup(rect);

            GenFont.SetFontMedium();
            Rect rect2 = new Rect(0f, 30f, 100f, 30f);
            Rect rect3 = new Rect(96f, 60f, 24f, 24f);
            Rect rect4 = new Rect(125f, 60f, 115f, 24f);
            Rect rect5 = new Rect(211f, 60f, 24f, 24f);
            Rect rect6 = new Rect(125f, 86f, 115f, 24f);
            Rect rect7 = new Rect(125f, 112f, 115f, 24f);

            GUI.Label(rect2, Language.FindText(LoadLanguage.language, "Passions"));
            rect2.y += 30;
            rect2.height = 24;

            for (int i = 0; i < colonist.Skills.Count; i++)
            {
                if (colonist.Skills[i].SkillPassion == 1)
                {
                    MajorSkill = colonist.Skills[i].SkillName;
                }
                if (colonist.Skills[i].SkillPassion == 2)
                {
                    MinorSkill1 = colonist.Skills[i].SkillName;
                }
                if (colonist.Skills[i].SkillPassion == 3)
                {
                    MinorSkill2 = colonist.Skills[i].SkillName;
                }
            }

            GenFont.SetFontSmall();
            GUI.Label(rect2, Language.FindText(LoadLanguage.language, "Major Passion") + ":");
            if (Widgets.TextButton(rect3, "<"))
            {
                MajorSkillDown(rect4, colonist);
            }
            GUI.Label(rect4, Language.FindText(LoadLanguage.language, MajorSkill));
            if (Widgets.TextButton(rect5, ">"))
            {
                MajorSkillUp(rect4, colonist);
            }

            rect2.y += 26;
            rect3.y += 26;
            rect5.y += 26;
            GUI.Label(rect2, Language.FindText(LoadLanguage.language, "Minor Passion") + ":");
            if (Widgets.TextButton(rect3, "<"))
            {
                MinorSkill1Down(rect6, colonist);
            }
            GUI.Label(rect6, Language.FindText(LoadLanguage.language, MinorSkill1));
            if (Widgets.TextButton(rect5, ">"))
            {
                MinorSkill1Up(rect6, colonist);
            }

            rect2.y += 26;
            rect3.y += 26;
            rect5.y += 26;
            GUI.Label(rect2, Language.FindText(LoadLanguage.language, "Minor Passion") + ":");
            if (Widgets.TextButton(rect3, "<"))
            {
                MinorSkill2Down(rect7, colonist);
            }
            GUI.Label(rect7, Language.FindText(LoadLanguage.language, MinorSkill2));
            if (Widgets.TextButton(rect5, ">"))
            {
                MinorSkill2Up(rect7, colonist);
            }

            GUI.EndGroup();
        }
Exemplo n.º 24
0
        private static void DrawEnterName(Rect rect, Colonist colonist)
        {
            Rect rect2 = new Rect(rect);
            rect2.width *= 0.333f;
            Rect rect3 = new Rect(rect);
            rect3.width *= 0.333f;
            rect3.x += rect3.width;
            Rect rect4 = new Rect(rect);
            rect4.width *= 0.333f;
            rect4.x += rect3.width * 2f;

            string firstName = colonist.FirstName;
            string nickName = colonist.NickName;
            string lastName = colonist.LastName;

            DoNameInputRect(rect2, ref firstName, 12);
            colonist.FirstName = firstName;

            if (colonist.NickName == colonist.FirstName || colonist.NickName == colonist.LastName)
            {
                GUI.color = new Color(1f, 1f, 1f, 0.5f);
            }

            DoNameInputRect(rect3, ref nickName, 9);
            colonist.NickName = nickName;

            GUI.color = Color.white;

            DoNameInputRect(rect4, ref lastName, 12);
            colonist.LastName = lastName;

            TooltipHandler.TipRegion(rect2, "FirstNameDesc".Translate());
            TooltipHandler.TipRegion(rect3, "ShortIdentifierDesc".Translate());
            TooltipHandler.TipRegion(rect4, "LastNameDesc".Translate());
        }
Exemplo n.º 25
0
        public static void WriteColonist(Colonist colonist, int i)
        {
            EnterNode("Colonist");
            writer.WriteAttributeString("num", i.ToString());

            EnterNode("BasicInfo");
            writer.WriteAttributeString("Name", colonist.FirstName + " " + colonist.NickName + " " + colonist.LastName);
            ExitNode();

            EnterNode("BasicInfo");
            writer.WriteAttributeString("Age", colonist.Age.ToString());
            ExitNode();

            EnterNode("BasicInfo");
            writer.WriteAttributeString("Gender", colonist.Gender.ToString());
            ExitNode();

            EnterNode("BasicInfo");
            writer.WriteAttributeString("Trait1", colonist.Traits[0].TraitName);
            ExitNode();

            EnterNode("BasicInfo");
            writer.WriteAttributeString("Trait2", colonist.Traits[1].TraitName);
            ExitNode();

            EnterNode("Graphics");
            writer.WriteAttributeString("BodyType", colonist.BodyType.ToString());
            ExitNode();

            EnterNode("Graphics");
            writer.WriteAttributeString("SkinColor", colonist.SkinColor.r.ToString() + "," + colonist.SkinColor.g.ToString() + "," + colonist.SkinColor.b.ToString() + "," + colonist.SkinColor.a.ToString());
            ExitNode();

            EnterNode("Graphics");
            writer.WriteAttributeString("CrownType", colonist.CrownType.ToString());
            ExitNode();

            EnterNode("Graphics");
            writer.WriteAttributeString("HeadGraphicPath", colonist.HeadGraphicPath);
            ExitNode();

            EnterNode("Graphics");
            writer.WriteAttributeString("HairColor", colonist.HairColor.r.ToString() + "," + colonist.HairColor.g.ToString() + "," + colonist.HairColor.b.ToString() + "," + colonist.HairColor.a.ToString());
            ExitNode();

            EnterNode("HairDef");
            writer.WriteAttributeString("DefName", colonist.HairDef.DefName);
            writer.WriteAttributeString("GraphicPath", colonist.HairDef.GraphicPath);
            writer.WriteAttributeString("HairGender", colonist.HairDef.HairGender.ToString());
            writer.WriteAttributeString("Label", colonist.HairDef.Label);
            ExitNode();

            int b = 1;

            foreach (Clothing clothing in colonist.Clothing)
            {
                if (b == 1)
                {
                    EnterNode("OnSkin");
                }
                else
                {
                    EnterNode("Shell");
                }
                writer.WriteAttributeString("Layer", clothing.Layer);
                writer.WriteAttributeString("Label", clothing.Label);
                writer.WriteAttributeString("GraphicPath", clothing.GraphicPath);
                writer.WriteAttributeString("Color", clothing.Color.r.ToString() + "," + clothing.Color.g.ToString() + "," + clothing.Color.b.ToString() + "," + clothing.Color.a.ToString());

                ExitNode();
                b++;
            }

            EnterNode("Backstories");

            EnterNode("Childhood");
            writer.WriteAttributeString("Index", colonist.Backstory[0].StoryIndex.ToString());
            ExitNode();

            EnterNode("Adulthood");
            writer.WriteAttributeString("Index", colonist.Backstory[1].StoryIndex.ToString());
            ExitNode();

            ExitNode();

            EnterNode("Traits");

            writer.WriteAttributeString("Trait1", colonist.Traits[0].TraitName);
            writer.WriteAttributeString("Trait2", colonist.Traits[1].TraitName);

            ExitNode();

            EnterNode("SkillPool");
            writer.WriteAttributeString("Amount", colonist.SkillPool.ToString());
            ExitNode();

            EnterNode("Skills");
            for (int c = 0; c < colonist.Skills.Count; c++)
            {
                EnterNode("Skill" + c.ToString());
                writer.WriteAttributeString("Value", colonist.Skills[c].SkillValue.ToString());
                writer.WriteAttributeString("Passion", colonist.Skills[c].SkillPassion.ToString());
                ExitNode();
            }
            ExitNode();

            EnterNode("Weapon");
            writer.WriteAttributeString("Name", colonist.Weapon);
            ExitNode();

            EnterNode("End");
            ExitNode();

            ExitNode();
        }
Exemplo n.º 26
0
        private static void ResetStoryList(Colonist colonist, int index)
        {
            ColonistManager.AdultStories.Clear();
            int adultStoryIndex = 0;
            for (int a = 0; a < ColonistManager.AllBackstories.Count - 1; a++)
            {
                bool AdultStoryFound = false;

                Colonist_Backstory story = new Colonist_Backstory();

                if (colonist.Gender == 1)
                {
                    if (ColonistManager.AllBackstories[a].slot == BackstorySlot.Adulthood)
                    {
                        if (ColonistManager.AllBackstories[a].bodyTypeMale == colonist.BodyType || ColonistManager.AllBackstories[a].bodyTypeGlobal == colonist.BodyType)
                        {
                            story.StoryName = ColonistManager.AllBackstories[a].title;
                            story.StoryAge = 1;
                            story.BaseDescription = ColonistManager.AllBackstories[a].baseDesc;
                            story.BodyTypeFemale = ColonistManager.AllBackstories[a].bodyTypeFemale;
                            story.BodyTypeMale = ColonistManager.AllBackstories[a].bodyTypeMale;
                            story.BodyTypeGlobal = ColonistManager.AllBackstories[a].bodyTypeGlobal;
                            story.StoryIndex = adultStoryIndex;

                            List<StorySkillGain> skillGains = new List<StorySkillGain>();
                            for (int b = 0; b < ColonistManager.AllBackstories[a].skillGainsResolved.Count; b++)
                            {
                                StorySkillGain skillGain = new StorySkillGain();
                                skillGain.SkillName = ColonistManager.AllBackstories[a].skillGainsResolved.ElementAt(b).Key.skillLabel;
                                skillGain.SkillValue = ColonistManager.AllBackstories[a].skillGainsResolved.ElementAt(b).Value;
                                skillGains.Add(skillGain);
                            }
                            story.SkillGains = skillGains;

                            List<string> workRestrictions = new List<string>();
                            foreach (WorkTypeDef work in ColonistManager.AllBackstories[a].DisabledWorkTypes)
                            {
                                workRestrictions.Add(work.defName);
                            }
                            story.WorkRestrictions = workRestrictions;

                            for (int b = 0; b < ColonistManager.AdultStories.Count; b++)
                            {
                                if (ColonistManager.AdultStories[b].StoryName == story.StoryName)
                                {
                                    AdultStoryFound = true;
                                }
                            }

                            if (AdultStoryFound == false)
                            {
                                ColonistManager.AdultStories.Add(story);
                                adultStoryIndex = adultStoryIndex + 1;
                            }
                        }
                    }
                }
                else if (colonist.Gender == 2)
                {
                    if (ColonistManager.AllBackstories[a].slot == BackstorySlot.Adulthood)
                    {
                        if (ColonistManager.AllBackstories[a].bodyTypeFemale == colonist.BodyType || ColonistManager.AllBackstories[a].bodyTypeGlobal == colonist.BodyType)
                        {
                            story.StoryName = ColonistManager.AllBackstories[a].title;
                            story.StoryAge = 1;
                            story.BaseDescription = ColonistManager.AllBackstories[a].baseDesc;
                            story.BodyTypeFemale = ColonistManager.AllBackstories[a].bodyTypeFemale;
                            story.BodyTypeMale = ColonistManager.AllBackstories[a].bodyTypeMale;
                            story.BodyTypeGlobal = ColonistManager.AllBackstories[a].bodyTypeGlobal;
                            story.StoryIndex = adultStoryIndex;

                            List<StorySkillGain> skillGains = new List<StorySkillGain>();
                            for (int b = 0; b < ColonistManager.AllBackstories[a].skillGainsResolved.Count; b++)
                            {
                                StorySkillGain skillGain = new StorySkillGain();
                                skillGain.SkillName = ColonistManager.AllBackstories[a].skillGainsResolved.ElementAt(b).Key.skillLabel;
                                skillGain.SkillValue = ColonistManager.AllBackstories[a].skillGainsResolved.ElementAt(b).Value;
                                skillGains.Add(skillGain);
                            }
                            story.SkillGains = skillGains;

                            List<string> workRestrictions = new List<string>();
                            foreach (WorkTypeDef work in ColonistManager.AllBackstories[a].DisabledWorkTypes)
                            {
                                workRestrictions.Add(work.defName);
                            }
                            story.WorkRestrictions = workRestrictions;

                            for (int b = 0; b < ColonistManager.AdultStories.Count; b++)
                            {
                                if (ColonistManager.AdultStories[b].StoryName == story.StoryName)
                                {
                                    AdultStoryFound = true;
                                }
                            }

                            if (AdultStoryFound == false)
                            {
                                ColonistManager.AdultStories.Add(story);
                                adultStoryIndex = adultStoryIndex + 1;
                            }
                        }
                    }
                }
            }
            List<Colonist_Backstory> ColonistStory = new List<Colonist_Backstory>();
            ColonistStory.Add(ColonistManager.ChildStories[colonist.Backstory[0].StoryIndex]);
            ColonistStory.Add(ColonistManager.AdultStories[index]);
            colonist.Backstory = ColonistStory;
        }
Exemplo n.º 27
0
        public ColonistCreationMenu(Colonist c)
        {
            col = c;
            base.SetCentered(ColonistCreationMenu.WinSize);
            category = LayerCategory.GameDialog;
            clearNonEditDialogs = true;
            absorbAllInput = true;
            forcePause = true;

            //Gen Traits and sort
            allTraits.Clear();
            foreach (TraitDef trait in DefDatabase<TraitDef>.AllDefsListForReading)
            {
                StoryTrait storytrait = new StoryTrait();
                storytrait.TraitName = trait.label;
                storytrait.Effect = trait.effect;
                allTraits.Add(storytrait);
            }
            List<StoryTrait> SortedTraits = allTraits.OrderBy(o => o.TraitName).ToList();
            allTraits = SortedTraits;

            //Set Trait1 index
            for (int i = 0; i < allTraits.Count - 1; i++)
            {
                if (col.Traits[0].TraitName == allTraits[i].TraitName)
                {
                    Trait1Index = i;
                }
            }
            //Set Trait2 index
            for (int a = 0; a < allTraits.Count - 1; a++)
            {
                if (col.Traits[1].TraitName == allTraits[a].TraitName)
                {
                    Trait2Index = a;
                }
            }

            //Set Childhood index
            for (int b = 0; b < ColonistManager.ChildStories.Count - 1; b++)
            {
                if (col.Backstory[0].StoryName == ColonistManager.ChildStories[b].StoryName)
                {
                    ChildStoryIndex = b;
                }
            }
            //Set Adulthood index
            for (int d = 0; d < ColonistManager.AdultStories.Count - 1; d++)
            {
                if (col.Backstory[1].StoryName == ColonistManager.AdultStories[d].StoryName)
                {
                    AdultStoryIndex = d;
                }
            }

            //Set Weapon Index
            for (int d = 0; d < ColonistManager.WeaponList.Count - 1; d++)
            {
                if (col.Weapon == ColonistManager.WeaponList[d])
                {
                    WeaponIndex = d;
                }
            }
        }
Exemplo n.º 28
0
 public static string TextAdjustedFor(Colonist c, string baseText)
 {
     return baseText.Replace("NAME", c.NickName).Replace("HISCAP", c.PossessiveCap()).Replace("HIMCAP", c.ProObjCap()).Replace("HECAP", c.ProSubjCap()).Replace("HIS", c.Possessive()).Replace("HIM", c.ProObj()).Replace("HE", c.ProSubj());
 }
Exemplo n.º 29
0
        public string FullDescriptionFor(List <StorySkillGain> SkillGains, List <string> WorkRestrictions, string desc, Colonist c)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append(ModdedGenText.TextAdjustedFor(c, desc));
            stringBuilder.AppendLine();
            stringBuilder.AppendLine();

            foreach (StorySkillGain gain in SkillGains)
            {
                stringBuilder.AppendLine(gain.SkillName + ":   " + gain.SkillValue.ToString("+##;-##"));
            }

            stringBuilder.AppendLine();

            foreach (string current in WorkRestrictions)
            {
                stringBuilder.AppendLine(current + " " + "disabled");
            }

            return(stringBuilder.ToString());
        }
Exemplo n.º 30
0
        public static void WriteColonist(Colonist colonist, int i)
        {
            EnterNode("Colonist");
            writer.WriteAttributeString("num", i.ToString());

                EnterNode("BasicInfo");
                writer.WriteAttributeString("Name", colonist.FirstName + " " + colonist.NickName + " " + colonist.LastName);
                ExitNode();

                EnterNode("BasicInfo");
                writer.WriteAttributeString("Age", colonist.Age.ToString());
                ExitNode();

                EnterNode("BasicInfo");
                writer.WriteAttributeString("Gender", colonist.Gender.ToString());
                ExitNode();

                EnterNode("BasicInfo");
                writer.WriteAttributeString("Trait1", colonist.Traits[0].TraitName);
                ExitNode();

                EnterNode("BasicInfo");
                writer.WriteAttributeString("Trait2", colonist.Traits[1].TraitName);
                ExitNode();

                EnterNode("Graphics");
                writer.WriteAttributeString("BodyType", colonist.BodyType.ToString());
                ExitNode();

                EnterNode("Graphics");
                writer.WriteAttributeString("SkinColor", colonist.SkinColor.r.ToString() + "," + colonist.SkinColor.g.ToString() + "," + colonist.SkinColor.b.ToString() + "," + colonist.SkinColor.a.ToString());
                ExitNode();

                EnterNode("Graphics");
                writer.WriteAttributeString("CrownType", colonist.CrownType.ToString());
                ExitNode();

                EnterNode("Graphics");
                writer.WriteAttributeString("HeadGraphicPath", colonist.HeadGraphicPath);
                ExitNode();

                EnterNode("Graphics");
                writer.WriteAttributeString("HairColor", colonist.HairColor.r.ToString() + "," + colonist.HairColor.g.ToString() + "," + colonist.HairColor.b.ToString() + "," + colonist.HairColor.a.ToString());
                ExitNode();

                EnterNode("HairDef");
                writer.WriteAttributeString("DefName", colonist.HairDef.DefName);
                writer.WriteAttributeString("GraphicPath", colonist.HairDef.GraphicPath);
                writer.WriteAttributeString("HairGender", colonist.HairDef.HairGender.ToString());
                writer.WriteAttributeString("Label", colonist.HairDef.Label);
                ExitNode();

                int b = 1;
                foreach (Clothing clothing in colonist.Clothing)
                {
                    if (b == 1)
                    {
                        EnterNode("OnSkin");
                    }
                    else
                    {
                        EnterNode("Shell");
                    }
                    writer.WriteAttributeString("Layer", clothing.Layer);
                    writer.WriteAttributeString("Label", clothing.Label);
                    writer.WriteAttributeString("GraphicPath", clothing.GraphicPath);
                    writer.WriteAttributeString("Color", clothing.Color.r.ToString() + "," + clothing.Color.g.ToString() + "," + clothing.Color.b.ToString() + "," + clothing.Color.a.ToString());

                    ExitNode();
                    b++;
                }

                EnterNode("Backstories");

                    EnterNode("Childhood");
                    writer.WriteAttributeString("Index", colonist.Backstory[0].StoryIndex.ToString());
                    ExitNode();

                    EnterNode("Adulthood");
                    writer.WriteAttributeString("Index", colonist.Backstory[1].StoryIndex.ToString());
                    ExitNode();

                ExitNode();

                EnterNode("Traits");

                    writer.WriteAttributeString("Trait1", colonist.Traits[0].TraitName);
                    writer.WriteAttributeString("Trait2", colonist.Traits[1].TraitName);

                ExitNode();

                EnterNode("SkillPool");
                writer.WriteAttributeString("Amount", colonist.SkillPool.ToString());
                ExitNode();

                EnterNode("Skills");
                for (int c = 0; c < colonist.Skills.Count; c++)
                {
                    EnterNode("Skill" + c.ToString());
                    writer.WriteAttributeString("Value", colonist.Skills[c].SkillValue.ToString());
                    writer.WriteAttributeString("Passion", colonist.Skills[c].SkillPassion.ToString());
                    ExitNode();
                }
                ExitNode();

                EnterNode("Weapon");
                writer.WriteAttributeString("Name", colonist.Weapon);
                ExitNode();

                EnterNode("End");
                ExitNode();

            ExitNode();
        }
Exemplo n.º 31
0
 private static void WeaponUp(Rect position, Colonist colonist)
 {
     WeaponIndex = WeaponIndex + 1;
     if (WeaponIndex > ColonistManager.WeaponList.Count - 1)
     {
         WeaponIndex = 0;
     }
     colonist.Weapon = ColonistManager.WeaponList[WeaponIndex];
     GUI.Label(position, colonist.Weapon);
 }
Exemplo n.º 32
0
 private static void SkillUp(Rect rect, int index, Colonist colonist, int SkillUpdate)
 {
     if (Genstep_ColonistCreationMod.BaseStats[0] == false)
     {
         if (colonist.SkillPool > 0 && colonist.Skills[index].SkillValue + SkillUpdate < 15)
         {
             Rect pos = new Rect(120f, 0f, rect.height, rect.height);
             colonist.Skills[index].SkillValue = colonist.Skills[index].SkillValue + 1;
             colonist.SkillPool = colonist.SkillPool - 1;
             GUI.Label(new Rect(0f, 35f, 200f, 30f), "Skill Points: ".Translate() + colonist.SkillPool.ToString());
             string text = GenString.NumberString(colonist.Skills[index].SkillValue);
             GUI.Label(pos, text);
         }
     }
     else
     {
         if (colonist.SkillPool > 0)
         {
             Rect pos = new Rect(120f, 0f, rect.height, rect.height);
             colonist.Skills[index].SkillValue = colonist.Skills[index].SkillValue + 1;
             colonist.SkillPool = colonist.SkillPool - 1;
             GUI.Label(new Rect(0f, 35f, 200f, 30f), "Skill Points: ".Translate() + colonist.SkillPool.ToString());
             string text = GenString.NumberString(colonist.Skills[index].SkillValue);
             GUI.Label(pos, text);
         }
     }
 }
Exemplo n.º 33
0
        public static void RandomColonists()
        {
            Population.Clear();
            ShirtList.Clear();
            CoatList.Clear();
            ClothingList.Clear();
            allBackstories.Clear();

            NameBank nameBank = NameShuffleDatabase.BankOf((NameCategory)1);

            GenClothingList();
            GenHairList();

            //Load in Backstories from BackstoryDatabase
            for (int a = 0; a < BackstoryDatabase.allBackstories.Count - 1; a++)
            {
                allBackstories.Add(BackstoryDatabase.allBackstories.ElementAt(a).Value);
            }
            List <Backstory> SortedBackstories = allBackstories.OrderBy(o => o.title).ToList();

            allBackstories = SortedBackstories;

            //Generate new random colonists
            for (int i = 0; i < ColonistNum.Amount; i++)
            {
                Colonist colonist = new Colonist();

                //Gen random colonist basic info
                int gender = UnityEngine.Random.Range(1, 100);
                if (gender > 50)
                {
                    gender = 1;
                    int body = UnityEngine.Random.Range(1, 4);
                    if (body == 1)
                    {
                        colonist.BodyType = BodyType.Male;
                    }
                    else if (body == 2)
                    {
                        colonist.BodyType = BodyType.Thin;
                    }
                    else if (body == 3)
                    {
                        colonist.BodyType = BodyType.Hulk;
                    }
                    else if (body == 4)
                    {
                        colonist.BodyType = BodyType.Fat;
                    }
                }
                else
                {
                    gender = 2;
                    int body = UnityEngine.Random.Range(1, 4);
                    if (body == 1)
                    {
                        colonist.BodyType = BodyType.Female;
                    }
                    else if (body == 2)
                    {
                        colonist.BodyType = BodyType.Thin;
                    }
                    else if (body == 3)
                    {
                        colonist.BodyType = BodyType.Hulk;
                    }
                    else if (body == 4)
                    {
                        colonist.BodyType = BodyType.Fat;
                    }
                }
                colonist.Gender    = gender;
                colonist.FirstName = nameBank.GetName((Gender)colonist.Gender, (NameSlot)0);
                colonist.NickName  = nameBank.GetName((Gender)colonist.Gender, (NameSlot)2);
                colonist.LastName  = nameBank.GetName((Gender)0, (NameSlot)1);
                colonist.Age       = UnityEngine.Random.Range(16, 70);

                //Gen colonist starting skills
                List <Colonist_Skill> skills = new List <Colonist_Skill>();

                if (ColonistDifficulty.Difficulty == "Easy")
                {
                    colonist.SkillPool = 40;
                }
                else if (ColonistDifficulty.Difficulty == "Normal")
                {
                    colonist.SkillPool = 20;
                }
                else
                {
                    colonist.SkillPool = 0;
                }

                for (int a = 0; a < 11; a++)
                {
                    Colonist_Skill skill = new Colonist_Skill();
                    if (a == 0)
                    {
                        skill.SkillName    = "Construction".Translate();
                        skill.SkillPassion = 1;
                    }
                    else if (a == 1)
                    {
                        skill.SkillName    = "Growing".Translate();
                        skill.SkillPassion = 2;
                    }
                    else if (a == 2)
                    {
                        skill.SkillName    = "Research".Translate();
                        skill.SkillPassion = 3;
                    }
                    else if (a == 3)
                    {
                        skill.SkillName = "Mining".Translate();
                    }
                    else if (a == 4)
                    {
                        skill.SkillName = "Shooting".Translate();
                    }
                    else if (a == 5)
                    {
                        skill.SkillName = "Melee".Translate();
                    }
                    else if (a == 6)
                    {
                        skill.SkillName = "Social".Translate();
                    }
                    else if (a == 7)
                    {
                        skill.SkillName = "Cooking".Translate();
                    }
                    else if (a == 8)
                    {
                        skill.SkillName = "Medicine".Translate();
                    }
                    else if (a == 9)
                    {
                        skill.SkillName = "Artistic".Translate();
                    }
                    else if (a == 10)
                    {
                        skill.SkillName = "Crafting".Translate();
                    }
                    skill.SkillValue = 0;

                    skills.Add(skill);
                }
                colonist.Skills = skills;

                //Load Backstories
                childstories.Clear();
                adultstories.Clear();
                ChildStoryIndex = 0;
                AdultStoryIndex = 0;

                List <Colonist_Backstory> ColonistStory = new List <Colonist_Backstory>();

                for (int a = 0; a < allBackstories.Count - 1; a++)
                {
                    bool ChildStoryFound = false;
                    bool AdultStoryFound = false;

                    Colonist_Backstory story = new Colonist_Backstory();

                    if (allBackstories[a].slot == BackstorySlot.Childhood)
                    {
                        story.StoryName       = allBackstories[a].title;
                        story.StoryAge        = 0;
                        story.BaseDescription = allBackstories[a].baseDesc;
                        story.BodyTypeFemale  = allBackstories[a].bodyTypeFemale;
                        story.BodyTypeMale    = allBackstories[a].bodyTypeMale;
                        story.BodyTypeGlobal  = allBackstories[a].bodyTypeGlobal;
                        story.StoryIndex      = ChildStoryIndex;

                        List <StorySkillGain> skillGains = new List <StorySkillGain>();
                        for (int b = 0; b < allBackstories[a].skillGainsResolved.Count - 1; b++)
                        {
                            StorySkillGain skillGain = new StorySkillGain();
                            skillGain.SkillName  = allBackstories[a].skillGainsResolved.ElementAt(b).Key.skillLabel;
                            skillGain.SkillValue = allBackstories[a].skillGainsResolved.ElementAt(b).Value;
                            skillGains.Add(skillGain);
                        }
                        story.SkillGains = skillGains;

                        List <string> workRestrictions = new List <string>();
                        foreach (WorkTypeDef work in allBackstories[a].DisabledWorkTypes)
                        {
                            workRestrictions.Add(work.defName);
                        }
                        story.WorkRestrictions = workRestrictions;
                        for (int b = 0; b < childstories.Count - 1; b++)
                        {
                            if (childstories[b].StoryName == story.StoryName)
                            {
                                ChildStoryFound = true;
                            }
                        }

                        if (ChildStoryFound == false)
                        {
                            childstories.Add(story);
                            ChildStoryIndex = ChildStoryIndex + 1;
                        }
                    }

                    if (colonist.Gender == 1)
                    {
                        if (allBackstories[a].slot == BackstorySlot.Adulthood)
                        {
                            if (allBackstories[a].bodyTypeMale == colonist.BodyType || allBackstories[a].bodyTypeGlobal == colonist.BodyType)
                            {
                                story.StoryName       = allBackstories[a].title;
                                story.StoryAge        = 1;
                                story.BaseDescription = allBackstories[a].baseDesc;
                                story.BodyTypeFemale  = allBackstories[a].bodyTypeFemale;
                                story.BodyTypeMale    = allBackstories[a].bodyTypeMale;
                                story.BodyTypeGlobal  = allBackstories[a].bodyTypeGlobal;
                                story.StoryIndex      = AdultStoryIndex;

                                List <StorySkillGain> skillGains = new List <StorySkillGain>();
                                for (int b = 0; b < allBackstories[a].skillGainsResolved.Count - 1; b++)
                                {
                                    StorySkillGain skillGain = new StorySkillGain();
                                    skillGain.SkillName  = allBackstories[a].skillGainsResolved.ElementAt(b).Key.skillLabel;
                                    skillGain.SkillValue = allBackstories[a].skillGainsResolved.ElementAt(b).Value;
                                    skillGains.Add(skillGain);
                                }
                                story.SkillGains = skillGains;

                                List <string> workRestrictions = new List <string>();
                                foreach (WorkTypeDef work in allBackstories[a].DisabledWorkTypes)
                                {
                                    workRestrictions.Add(work.defName);
                                }
                                story.WorkRestrictions = workRestrictions;

                                for (int b = 0; b < ColonistManager.AdultStories.Count - 1; b++)
                                {
                                    if (ColonistManager.AdultStories[b].StoryName == story.StoryName)
                                    {
                                        AdultStoryFound = true;
                                    }
                                }

                                if (AdultStoryFound == false)
                                {
                                    ColonistManager.AdultStories.Add(story);
                                    AdultStoryIndex = AdultStoryIndex + 1;
                                }
                            }
                        }
                    }
                    else if (colonist.Gender == 2)
                    {
                        if (allBackstories[a].slot == BackstorySlot.Adulthood)
                        {
                            if (allBackstories[a].bodyTypeFemale == colonist.BodyType || allBackstories[a].bodyTypeGlobal == colonist.BodyType)
                            {
                                story.StoryName       = allBackstories[a].title;
                                story.StoryAge        = 1;
                                story.BaseDescription = allBackstories[a].baseDesc;
                                story.BodyTypeFemale  = allBackstories[a].bodyTypeFemale;
                                story.BodyTypeMale    = allBackstories[a].bodyTypeMale;
                                story.BodyTypeGlobal  = allBackstories[a].bodyTypeGlobal;
                                story.StoryIndex      = AdultStoryIndex;

                                List <StorySkillGain> skillGains = new List <StorySkillGain>();
                                for (int b = 0; b < allBackstories[a].skillGainsResolved.Count - 1; b++)
                                {
                                    StorySkillGain skillGain = new StorySkillGain();
                                    skillGain.SkillName  = allBackstories[a].skillGainsResolved.ElementAt(b).Key.skillLabel;
                                    skillGain.SkillValue = allBackstories[a].skillGainsResolved.ElementAt(b).Value;
                                    skillGains.Add(skillGain);
                                }
                                story.SkillGains = skillGains;

                                List <string> workRestrictions = new List <string>();
                                foreach (WorkTypeDef work in allBackstories[a].DisabledWorkTypes)
                                {
                                    workRestrictions.Add(work.defName);
                                }
                                story.WorkRestrictions = workRestrictions;

                                for (int b = 0; b < ColonistManager.AdultStories.Count - 1; b++)
                                {
                                    if (ColonistManager.AdultStories[b].StoryName == story.StoryName)
                                    {
                                        AdultStoryFound = true;
                                    }
                                }

                                if (AdultStoryFound == false)
                                {
                                    ColonistManager.AdultStories.Add(story);
                                    AdultStoryIndex = AdultStoryIndex + 1;
                                }
                            }
                        }
                    }
                }

                //Gen random childhood backstory
                ColonistStory.Add(childstories[UnityEngine.Random.Range(0, childstories.Count - 1)]);

                //Gen random adulthood backstory
                ColonistStory.Add(adultstories[UnityEngine.Random.Range(0, adultstories.Count - 1)]);

                colonist.Backstory = ColonistStory;

                //Gen random traits
                int rand_trait = 0;

                List <StoryTrait> StoryTraits = new List <StoryTrait>();
                foreach (TraitDef trait in DefDatabase <TraitDef> .AllDefsListForReading)
                {
                    StoryTrait storyTrait = new StoryTrait();
                    storyTrait.TraitName = trait.label;
                    storyTrait.Effect    = trait.effect;
                    StoryTraits.Add(storyTrait);
                }

                StoryTrait storytrait = new StoryTrait();
                storytrait                  = new StoryTrait();
                rand_trait                  = UnityEngine.Random.Range(0, StoryTraits.Count - 1);
                storytrait.TraitName        = StoryTraits[rand_trait].TraitName;
                storytrait.Effect           = StoryTraits[rand_trait].Effect;
                storytrait.TraitDescription = StoryTraits[rand_trait].TraitDescription;
                StoryTraits.Add(storytrait);

                StoryTrait storytrait2 = new StoryTrait();
                int        rand_trait2 = 0;
                rand_trait2                  = UnityEngine.Random.Range(0, StoryTraits.Count - 1);
                storytrait2.TraitName        = StoryTraits[rand_trait2].TraitName;
                storytrait2.Effect           = StoryTraits[rand_trait].Effect;
                storytrait2.TraitDescription = StoryTraits[rand_trait2].TraitDescription;
                StoryTraits.Add(storytrait2);

                colonist.Traits = StoryTraits;

                //Gen Apparel
                List <Clothing> Outfit = new List <Clothing>();

                Clothing clothing = new Clothing();
                clothing = ShirtList.RandomListElement <Clothing>();
                Outfit.Add(clothing);

                clothing = new Clothing();
                clothing = CoatList.RandomListElement <Clothing>();
                Outfit.Add(clothing);

                colonist.Clothing = Outfit;

                //Gen Body
                colonist.SkinColor       = RandomSkinColor();
                colonist.CrownType       = ((UnityEngine.Random.value >= 0.5f) ? CrownType.Narrow : CrownType.Average);
                colonist.HeadGraphicPath = GraphicDatabase_Head.GetHeadRandom((Gender)colonist.Gender, colonist.SkinColor, colonist.CrownType).graphicPath;

                //Gen Hair
                colonist.HairColor = RandomHairColor(colonist.SkinColor);

                ColHairDef hairDef = new ColHairDef();
                if (colonist.Gender == 1)
                {
                    hairDef = MaleHairList.RandomListElement <ColHairDef>();
                }
                else if (colonist.Gender == 2)
                {
                    hairDef = FemaleHairList.RandomListElement <ColHairDef>();
                }

                colonist.HairDef = hairDef;

                //Set BodyType
                if (colonist.Backstory[1].BodyTypeGlobal.ToString() != "Undefined")
                {
                    colonist.BodyType = colonist.Backstory[1].BodyTypeGlobal;
                }
                else
                {
                    if (colonist.Gender == 1 && colonist.Backstory[1].BodyTypeMale.ToString() != "Undefined")
                    {
                        colonist.BodyType = colonist.Backstory[1].BodyTypeMale;
                    }
                    else if (colonist.Gender == 1 && colonist.Backstory[1].BodyTypeMale.ToString() == "Undefined")
                    {
                        colonist.BodyType = BodyType.Male;
                    }

                    if (colonist.Gender == 2 && colonist.Backstory[1].BodyTypeFemale.ToString() != "Undefined")
                    {
                        colonist.BodyType = colonist.Backstory[1].BodyTypeFemale;
                    }
                    else if (colonist.Gender == 2 && colonist.Backstory[1].BodyTypeFemale.ToString() == "Undefined")
                    {
                        colonist.BodyType = BodyType.Male;
                    }
                }

                //Gen Weapon
                GenWeaponList();
                colonist.Weapon = WeaponList.RandomListElement <string>();

                //Add colonist to total population
                Population.Add(colonist);
            }
        }
Exemplo n.º 34
0
        public string FullDescriptionFor(List<StorySkillGain> SkillGains, List<string> WorkRestrictions, string desc, Colonist c)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append(ModdedGenText.TextAdjustedFor(c, desc));
            stringBuilder.AppendLine();
            stringBuilder.AppendLine();

            foreach (StorySkillGain gain in SkillGains)
            {
                stringBuilder.AppendLine(gain.SkillName + ":   " + gain.SkillValue.ToString("+##;-##"));
            }

            stringBuilder.AppendLine();

            foreach (string current in WorkRestrictions)
            {
                stringBuilder.AppendLine(current + " " + "disabled");
            }

            return stringBuilder.ToString();
        }
Exemplo n.º 35
0
 private static void Trait2Up(Rect position, Colonist colonist)
 {
     Trait2Index = Trait2Index + 1;
     if (Trait2Index > allTraits.Count - 1)
     {
         Trait2Index = 0;
     }
     if (colonist.Traits[0].TraitName == allTraits[Trait2Index].TraitName)
     {
         Trait2Index = Trait2Index + 1;
     }
     colonist.Traits[1].TraitName = allTraits[Trait2Index].TraitName;
     GUI.Label(position, colonist.Traits[1].TraitName);
 }
Exemplo n.º 36
0
        private static void Display_GenderRaceAge(Colonist colonist)
        {
            Rect position = new Rect(327f, 5f, 50f, 24f);
            Rect position2 = new Rect((position.x + position.width) + 2, 5f, 24f, 24f);
            Rect position3 = new Rect((position2.x + position2.width) + 5, 5f, 50f, 24f);
            Rect position4 = new Rect((position3.x + position3.width) + 2, 5f, 24f, 24f);
            Rect position5 = new Rect((position4.x + position4.width) + 20, 5f, 30f, 24f);
            Rect position6 = new Rect((position5.x + position5.width) + 2, 5f, 24f, 24f);
            Rect position7 = new Rect((position6.x + position6.width) + 5, 5f, 20f, 24f);
            Rect position8 = new Rect(position7.x + position7.width, 5f, 24f, 24f);

            string gender = "";
            if (colonist.Gender == 1)
            {
                gender = "Male";
            }
            else
            {
                gender = "Female";
            }

            GUI.Label(position, Language.FindText(LoadLanguage.language, "Gender") + ":");
            if (Widgets.TextButton(position2, "<"))
            {
                GenderChange(position3, colonist);
            }
            GUI.Label(position3, gender.Translate());
            if (Widgets.TextButton(position4, ">"))
            {
                GenderChange(position3, colonist);
            }

            GUI.Label(position5, Language.FindText(LoadLanguage.language, "Age") + ":");
            if (Widgets.TextButton(position6, "-"))
            {
                AgeDown(position7, colonist);
            }
            GUI.Label(position7, colonist.Age.ToString().Translate());
            if (Widgets.TextButton(position8, "+"))
            {
                AgeUp(position7, colonist);
            }
        }
Exemplo n.º 37
0
        public static void PawnsToColonists()
        {
            for (int p = 0; p < ColonistNum.Amount; p++)
            {
                if (ModdedMapInitParams.colonists[p] != null)
                {
                    Colonist colonist = new Colonist();
                    colonist.Age = ModdedMapInitParams.colonists[p].age;
                    colonist.Gender = (int)ModdedMapInitParams.colonists[p].gender;
                    colonist.FirstName = ModdedMapInitParams.colonists[p].Name.first;
                    colonist.NickName = ModdedMapInitParams.colonists[p].Name.nick;
                    colonist.LastName = ModdedMapInitParams.colonists[p].Name.last;

                    colonist.SkinColor = ModdedMapInitParams.colonists[p].story.skinColor;
                    colonist.CrownType = ModdedMapInitParams.colonists[p].story.crownType;
                    colonist.HeadGraphicPath = ModdedMapInitParams.colonists[p].story.headGraphicPath;
                    colonist.HairColor = ModdedMapInitParams.colonists[p].story.hairColor;

                    ColHairDef hair = new ColHairDef();
                    hair.DefName = ModdedMapInitParams.colonists[p].story.hairDef.defName;
                    hair.GraphicPath = ModdedMapInitParams.colonists[p].story.hairDef.graphicPath;
                    colonist.HairDef = hair;

                    List<StoryTrait> traits = new List<StoryTrait>();
                    StoryTrait trait = new StoryTrait();
                    trait.TraitName = ModdedMapInitParams.colonists[p].story.traits.allTraits[0].def.label;
                    traits.Add(trait);
                    trait = new StoryTrait();
                    trait.TraitName = ModdedMapInitParams.colonists[p].story.traits.allTraits[1].def.label;
                    traits.Add(trait);
                    colonist.Traits = traits;

                    List<Clothing> Outfit = new List<Clothing>();
                    ShirtList.Clear();
                    CoatList.Clear();
                    GenClothingList();

                    Clothing clothing = new Clothing();
                    clothing = ShirtList.RandomListElement<Clothing>();
                    Outfit.Add(clothing);

                    clothing = new Clothing();
                    clothing = CoatList.RandomListElement<Clothing>();
                    Outfit.Add(clothing);

                    colonist.Clothing = Outfit;

                    List<Colonist_Skill> skills = new List<Colonist_Skill>();

                    for (int a = 0; a < ModdedMapInitParams.colonists[p].skills.skills.Count; a++)
                    {
                        Colonist_Skill skill = new Colonist_Skill();
                        skill.SkillName = ModdedMapInitParams.colonists[p].skills.skills[a].def.skillLabel;
                        skill.SkillValue = ModdedMapInitParams.colonists[p].skills.skills[a].level;
                        skill.SkillPassion = (int)ModdedMapInitParams.colonists[p].skills.skills[a].passion;
                        skills.Add(skill);
                    }
                    colonist.Skills = skills;

                    List<Colonist_Backstory> Backstories = new List<Colonist_Backstory>();
                    Colonist_Backstory backstory = new Colonist_Backstory();
                    backstory.StoryName = ModdedMapInitParams.colonists[p].story.childhood.title;
                    backstory.BaseDescription = ModdedMapInitParams.colonists[p].story.childhood.baseDesc;
                    backstory.StoryAge = 0;
                    List<StorySkillGain> skillGains = new List<StorySkillGain>();
                    for (int i = 0; i < ModdedMapInitParams.colonists[p].story.childhood.skillGainsResolved.Count - 1; i++)
                    {
                        StorySkillGain skillGain = new StorySkillGain();
                        skillGain.SkillName = ModdedMapInitParams.colonists[p].story.childhood.skillGainsResolved.ElementAt(i).Key.skillLabel;
                        skillGain.SkillValue = ModdedMapInitParams.colonists[p].story.childhood.skillGainsResolved.ElementAt(i).Value;
                        skillGains.Add(skillGain);
                    }
                    backstory.SkillGains = skillGains;
                    List<string> Restrictions = new List<string>();
                    foreach (WorkTypeDef work in ModdedMapInitParams.colonists[p].story.childhood.DisabledWorkTypes)
                    {
                        Restrictions.Add(work.defName);
                    }
                    backstory.WorkRestrictions = Restrictions;
                    backstory.BodyTypeGlobal = ModdedMapInitParams.colonists[p].story.childhood.bodyTypeGlobal;
                    backstory.BodyTypeMale = ModdedMapInitParams.colonists[p].story.childhood.bodyTypeMale;
                    backstory.BodyTypeFemale = ModdedMapInitParams.colonists[p].story.childhood.bodyTypeFemale;
                    Backstories.Add(backstory);

                    backstory = new Colonist_Backstory();
                    backstory.StoryName = ModdedMapInitParams.colonists[p].story.adulthood.title;
                    backstory.BaseDescription = ModdedMapInitParams.colonists[p].story.adulthood.baseDesc;
                    backstory.StoryAge = 1;
                    skillGains = new List<StorySkillGain>();
                    for (int i = 0; i < ModdedMapInitParams.colonists[p].story.adulthood.skillGainsResolved.Count - 1; i++)
                    {
                        StorySkillGain skillGain = new StorySkillGain();
                        skillGain.SkillName = ModdedMapInitParams.colonists[p].story.adulthood.skillGainsResolved.ElementAt(i).Key.skillLabel;
                        skillGain.SkillValue = ModdedMapInitParams.colonists[p].story.adulthood.skillGainsResolved.ElementAt(i).Value;
                        skillGains.Add(skillGain);
                    }
                    backstory.SkillGains = skillGains;
                    Restrictions = new List<string>();
                    foreach (WorkTypeDef work in ModdedMapInitParams.colonists[p].story.adulthood.DisabledWorkTypes)
                    {
                        Restrictions.Add(work.defName);
                    }
                    backstory.WorkRestrictions = Restrictions;
                    backstory.BodyTypeGlobal = ModdedMapInitParams.colonists[p].story.adulthood.bodyTypeGlobal;
                    backstory.BodyTypeMale = ModdedMapInitParams.colonists[p].story.adulthood.bodyTypeMale;
                    backstory.BodyTypeFemale = ModdedMapInitParams.colonists[p].story.adulthood.bodyTypeFemale;

                    if (backstory.BodyTypeGlobal.ToString() != "Undefined")
                    {
                        colonist.BodyType = backstory.BodyTypeGlobal;
                    }
                    else
                    {
                        if (colonist.Gender == 1 && backstory.BodyTypeMale.ToString() != "Undefined")
                        {
                            colonist.BodyType = backstory.BodyTypeMale;
                        }
                        else if (colonist.Gender == 1 && backstory.BodyTypeMale.ToString() == "Undefined")
                        {
                            colonist.BodyType = BodyType.Male;
                        }

                        if (colonist.Gender == 2 && backstory.BodyTypeFemale.ToString() != "Undefined")
                        {
                            colonist.BodyType = backstory.BodyTypeFemale;
                        }
                        else if (colonist.Gender == 2 && backstory.BodyTypeFemale.ToString() == "Undefined")
                        {
                            colonist.BodyType = BodyType.Male;
                        }
                    }
                    Backstories.Add(backstory);
                    colonist.Backstory = Backstories;

                    GenWeaponList();
                    colonist.Weapon = WeaponList.RandomListElement<string>();

                    colonist.SkillPool = 0;

                    Population.Add(colonist);
                }
            }
        }
Exemplo n.º 38
0
 private static void ChildStoryPrevious(Rect position, Colonist colonist, Rect rect7, int slot)
 {
     ChildStoryIndex = ChildStoryIndex - 1;
     if (ChildStoryIndex < 0)
     {
         ChildStoryIndex = ColonistManager.ChildStories.Count - 1;
     }
     colonist.Backstory[0] = ColonistManager.ChildStories[ChildStoryIndex];
     if (Genstep_ColonistCreationMod.BaseStats[0] == false)
     {
         ResetSkills(colonist);
     }
     GUI.Label(position, colonist.Backstory[0].StoryName.Translate());
 }
Exemplo n.º 39
0
 private static HairDef RandomHairDefFor(Colonist c, FactionDef factionType)
 {
     IEnumerable<HairDef> source =
         from hair in DefDatabase<HairDef>.AllDefs
         where hair.hairTags.SharesElementWith(factionType.hairTags)
         select hair;
     return source.RandomElementByWeight((HairDef hair) => HairChoiceLikelihoodFor(hair, c));
 }
Exemplo n.º 40
0
        private void DrawTabs(Rect inRect, Colonist colonist)
        {
            GenFont.SetFontMedium();
            GUI.Label(new Rect(0f, 0f, 300f, 300f), Language.FindText(LoadLanguage.language, "Enhanced Colonist Creation"));
            GenFont.SetFontSmall();
            Rect rect = new Rect(0f, 80f, inRect.width, inRect.height - 60f - 80f);
            Widgets.DrawMenuSection(rect);
            TabDrawer.DrawTabs(rect,
                from c in ColonistManager.Population
                select new TabRecord(c.FirstName + " " + c.LastName, delegate
                {
                    SelectColonistConfig(c);
                }, c == colonist));
            Rect innerRect = GenUI.GetInnerRect(rect, 17f);

            GUI.BeginGroup(innerRect);
            FillCard(colonist);
            GUI.EndGroup();
        }
Exemplo n.º 41
0
 private static void Trait1Down(Rect position, Colonist colonist)
 {
     Trait1Index = Trait1Index - 1;
     if (Trait1Index < 0)
     {
         Trait1Index = allTraits.Count - 1;
     }
     if (allTraits[Trait1Index].TraitName == colonist.Traits[1].TraitName)
     {
         Trait1Index = Trait1Index - 1;
     }
     colonist.Traits[0].TraitName = allTraits[Trait1Index].TraitName;
     GUI.Label(position, colonist.Traits[0].TraitName);
 }
Exemplo n.º 42
0
 public static string TextAdjustedFor(Colonist c, string baseText)
 {
     return(baseText.Replace("NAME", c.NickName).Replace("HISCAP", c.PossessiveCap()).Replace("HIMCAP", c.ProObjCap()).Replace("HECAP", c.ProSubjCap()).Replace("HIS", c.Possessive()).Replace("HIM", c.ProObj()).Replace("HE", c.ProSubj()));
 }
Exemplo n.º 43
0
 private static void SkillDown(Rect rect, int index, Colonist colonist, int SkillUpdate)
 {
     if (colonist.Skills[index].SkillValue > 0)
     {
         Rect pos = new Rect(120f, 0f, rect.height, rect.height);
         colonist.Skills[index].SkillValue = colonist.Skills[index].SkillValue - 1;
         colonist.SkillPool = colonist.SkillPool + 1;
         GUI.Label(new Rect(0f, 35f, 200f, 30f), "Skill Points: ".Translate() + colonist.SkillPool.ToString());
         string text = GenString.NumberString(colonist.Skills[index].SkillValue);
         GUI.Label(pos, text);
     }
 }
Exemplo n.º 44
0
        private static void DrawBackstory(Rect innerRect, Colonist colonist)
        {
            GUI.BeginGroup(innerRect);

            float num = 0f;

            GenFont.SetFontMedium();
            GUI.Label(new Rect(0f, 0f, 200f, 30f), Language.FindText(LoadLanguage.language, "Backstory"));

            num += 30f;

            //Childhood Story
            GenFont.SetFontSmall();
            Rect rect7 = new Rect(0f, num, innerRect.width, 24f);
            if (rect7.Contains(Event.current.mousePosition))
            {
                Widgets.DrawHighlight(rect7);
            }
            TooltipHandler.TipRegion(rect7, colonist.Backstory[0].FullDescriptionFor(colonist.Backstory[0].SkillGains, colonist.Backstory[0].WorkRestrictions, colonist.Backstory[0].BaseDescription, colonist));
            GUI.skin.label.alignment = TextAnchor.MiddleLeft;
            GUI.Label(rect7, Language.FindText(LoadLanguage.language, "Childhood") + ":");
            GUI.skin.label.alignment = TextAnchor.UpperLeft;
            Rect position2 = new Rect(rect7);
            position2.x += 108f;
            position2.width -= 90f;
            string title = colonist.Backstory[0].StoryName;
            GUI.Label(position2, title.Translate());

            Rect rect9 = new Rect(position2.x - 30f, num, 24f, 24f);
            Rect position4 = new Rect(rect9);
            if (Widgets.TextButton(position4, "<"))
            {
                ChildStoryPrevious(position2, colonist, rect7, 0);
            }
            position4.x = innerRect.width - 24f;
            if (Widgets.TextButton(position4, ">"))
            {
                ChildStoryNext(position2, colonist, rect7, 0);
            }
            num += rect7.height + 2f;

            //Adulthood Story
            GenFont.SetFontSmall();
            Rect rect8 = new Rect(0f, num, innerRect.width, 24f);
            if (rect8.Contains(Event.current.mousePosition))
            {
                Widgets.DrawHighlight(rect8);
            }
            TooltipHandler.TipRegion(rect8, colonist.Backstory[1].FullDescriptionFor(colonist.Backstory[1].SkillGains, colonist.Backstory[1].WorkRestrictions, colonist.Backstory[1].BaseDescription, colonist));
            GUI.skin.label.alignment = TextAnchor.MiddleLeft;
            GUI.Label(rect8, Language.FindText(LoadLanguage.language, "Adulthood") + ":");
            GUI.skin.label.alignment = TextAnchor.UpperLeft;
            Rect position3 = new Rect(rect8);
            position3.x += 108f;
            position3.width -= 90f;
            string title2 = colonist.Backstory[1].StoryName;
            GUI.Label(position3, title2.Translate());

            Rect rect10 = new Rect(position3.x - 30f, num, 24f, 24f);
            Rect position5 = new Rect(rect10);
            if (Widgets.TextButton(position5, "<"))
            {
                AdultStoryPrevious(position3, colonist, rect8, 1);
            }
            position5.x = innerRect.width - 24f;
            if (Widgets.TextButton(position5, ">"))
            {
                AdultStoryNext(position3, colonist, rect8, 1);
            }
            num += rect8.height + 2f;

            num += 5f;
            GenFont.SetFontMedium();
            GUI.Label(new Rect(0f, num, 200f, 30f), Language.FindText(LoadLanguage.language, "Incapable Of"));

            num += 30f;
            float num2 = num;
            num2 += 280f;
            GenFont.SetFontSmall();
            List<string> list = new List<string>();

            if (colonist.Backstory[0].WorkRestrictions.Count > 0)
            {
                for (int a = 0; a < colonist.Backstory[0].WorkRestrictions.Count; a++)
                {
                    list.Add(colonist.Backstory[0].WorkRestrictions[a]);
                }
            }

            if (colonist.Backstory[1].WorkRestrictions.Count > 0)
            {
                for (int b = 0; b < colonist.Backstory[1].WorkRestrictions.Count; b++)
                {
                    if (!list.Contains(colonist.Backstory[1].WorkRestrictions[b]))
                    {
                        list.Add(colonist.Backstory[1].WorkRestrictions[b]);
                    }
                }
            }

            if (list.Count == 0)
            {
                string text = Language.FindText(LoadLanguage.language, "(none)");
                Rect position6 = new Rect(0f, num, innerRect.width, 20f);
                GUI.Label(position6, text.Translate());
            }
            else
            {
                for (int c = 0; c < list.Count; c++)
                {
                    string text = list[c];
                    Rect position6 = new Rect(0f, num, innerRect.width, 20f);
                    GUI.Label(position6, Language.FindText(LoadLanguage.language, text));
                    num += 20f;
                }
            }

            //Traits
            GenFont.SetFontMedium();
            GUI.Label(new Rect(0f, num2, 200f, 30f), Language.FindText(LoadLanguage.language, "Traits"));

            num2 += 30f;
            GenFont.SetFontSmall();

            //Trait1
            Rect rect11 = new Rect(0f, num2, 24f, 24f);
            Rect rect12 = new Rect(30f, num2, innerRect.width, 24f);
            if (rect12.Contains(Event.current.mousePosition))
            {
                Widgets.DrawHighlight(rect11);
            }
            TooltipHandler.TipRegion(rect11, "TraitsDoNothing".Translate());
            if (Widgets.TextButton(rect11, "<"))
            {
                Trait1Down(rect12, colonist);
            }
            rect12.width = innerRect.width - 96f;
            rect11.x = innerRect.width - 96f;
            if (Widgets.TextButton(rect11, ">"))
            {
                Trait1Up(rect12, colonist);
            }
            GUI.Label(rect12, colonist.Traits[0].TraitName.Translate());
            num2 += rect11.height + 2f;

            //Trait2
            Rect rect13 = new Rect(0f, num2, 24f, 24f);
            Rect rect14 = new Rect(30f, num2, innerRect.width, 24f);
            if (rect12.Contains(Event.current.mousePosition))
            {
                Widgets.DrawHighlight(rect13);
            }
            TooltipHandler.TipRegion(rect14, "TraitsDoNothing".Translate());
            if (Widgets.TextButton(rect13, "<"))
            {
                Trait2Down(rect14, colonist);
            }
            rect14.width = innerRect.width - 96f;
            rect13.x = innerRect.width - 96f;
            if (Widgets.TextButton(rect13, ">"))
            {
                Trait2Up(rect14, colonist);
            }
            GUI.Label(rect14, colonist.Traits[1].TraitName.Translate());

            GUI.EndGroup();
        }