예제 #1
0
        private static void ShowAddRelationshipDialog(CASFamilyScreen ths, CAFThumb sim1Thumb, CAFThumb sim2Thumb)
        {
            ths.mAddRelationshipSimThumb1.SimDescription = sim1Thumb.SimDescription;
            ths.mAddRelationshipSimThumb2.SimDescription = sim2Thumb.SimDescription;
            CASFamilyScreen.RelationshipType relationship = ths.GetRelationship(sim1Thumb.SimDescription, sim2Thumb.SimDescription);
            ths.mAddRelationshipHousematesButton.Selected = true;

            List <Text> captions = new List <Text>();

            captions.Add(ths.mAddRelationshipOther1Button.GetChildByID(0x1, false) as Text);
            captions.Add(ths.mAddRelationshipOther2Button.GetChildByID(0x1, false) as Text);
            captions.Add(ths.mAddRelationshipOther3Button.GetChildByID(0x1, false) as Text);
            captions.Add(ths.mAddRelationshipOther4Button.GetChildByID(0x1, false) as Text);

            List <Button> buttons = new List <Button>();

            buttons.Add(ths.mAddRelationshipOther1Button);
            buttons.Add(ths.mAddRelationshipOther2Button);
            buttons.Add(ths.mAddRelationshipOther3Button);
            buttons.Add(ths.mAddRelationshipOther4Button);

            foreach (Button button in buttons)
            {
                button.Visible = false;
            }

            int index = 0;

            if (IsValidRelationship(sim1Thumb.SimDescription, sim2Thumb.SimDescription, CASFamilyScreen.RelationshipType.Parent))
            {
                buttons[index].Tag      = CASFamilyScreen.RelationshipType.Parent;
                buttons[index].Visible  = true;
                captions[index].Caption = Sims3.UI.Responder.Instance.LocalizationModel.LocalizeString(sim1Thumb.SimDescription.IsFemale, "Ui/Caption/CAF/AddRelationship:Parent", new object[0x0]);
                if (relationship == CASFamilyScreen.RelationshipType.Parent)
                {
                    ths.mAddRelationshipHousematesButton.Selected = false;
                    buttons[index].Selected = true;
                }

                index++;
            }
            else if (IsValidRelationship(sim1Thumb.SimDescription, sim2Thumb.SimDescription, CASFamilyScreen.RelationshipType.Child))
            {
                buttons[index].Tag      = CASFamilyScreen.RelationshipType.Child;
                buttons[index].Visible  = true;
                captions[index].Caption = Sims3.UI.Responder.Instance.LocalizationModel.LocalizeString(sim1Thumb.SimDescription.IsFemale, "Ui/Caption/CAF/AddRelationship:Child", new object[0x0]);
                if (relationship == CASFamilyScreen.RelationshipType.Child)
                {
                    ths.mAddRelationshipHousematesButton.Selected = false;
                    buttons[index].Selected = true;
                }

                index++;
            }

            if (IsValidRelationship(sim1Thumb.SimDescription, sim2Thumb.SimDescription, CASFamilyScreen.RelationshipType.Sibling))
            {
                buttons[index].Tag      = CASFamilyScreen.RelationshipType.Sibling;
                buttons[index].Visible  = true;
                captions[index].Caption = Sims3.UI.Responder.Instance.LocalizationModel.LocalizeString(sim1Thumb.SimDescription.IsFemale, "Ui/Caption/CAF/AddRelationship:Sibling", new object[0x0]);
                if (relationship == CASFamilyScreen.RelationshipType.Sibling)
                {
                    ths.mAddRelationshipHousematesButton.Selected = false;
                    buttons[index].Selected = true;
                }

                index++;
            }

            if (IsValidRelationship(sim1Thumb.SimDescription, sim2Thumb.SimDescription, CASFamilyScreen.RelationshipType.Spouse))
            {
                buttons[index].Tag      = CASFamilyScreen.RelationshipType.Spouse;
                captions[index].Caption = Sims3.UI.Responder.Instance.LocalizationModel.LocalizeString(sim1Thumb.SimDescription.IsFemale, "Ui/Caption/CAF/AddRelationship:Spouse", new object[0x0]);
                buttons[index].Visible  = true;
                if (relationship == CASFamilyScreen.RelationshipType.Spouse)
                {
                    ths.mAddRelationshipHousematesButton.Selected = false;
                    buttons[index].Selected = true;
                }

                index++;

                buttons[index].Tag      = CASFamilyScreen.RelationshipType.BGFriend;
                buttons[index].Visible  = true;
                captions[index].Caption = Sims3.UI.Responder.Instance.LocalizationModel.LocalizeString(sim1Thumb.SimDescription.IsFemale, "Ui/Caption/CAF/AddRelationship:BFriend", new object[0x0]);
                if (relationship == CASFamilyScreen.RelationshipType.BGFriend)
                {
                    ths.mAddRelationshipHousematesButton.Selected = false;
                    buttons[index].Selected = true;
                }

                index++;

                if (index < buttons.Count)
                {
                    buttons[index].Tag      = CASFamilyScreen.RelationshipType.Fiancee;
                    buttons[index].Visible  = true;
                    captions[index].Caption = Sims3.UI.Responder.Instance.LocalizationModel.LocalizeString(sim1Thumb.SimDescription.IsFemale, "Ui/Caption/CAF/AddRelationship:Fiance", new object[0x0]);
                    if (relationship == CASFamilyScreen.RelationshipType.Fiancee)
                    {
                        ths.mAddRelationshipHousematesButton.Selected = false;
                        buttons[index].Selected = true;
                    }

                    index++;
                }
            }

            ths.mAddRelationshipDialogWin.Visible = true;
            Audio.StartSound("ui_hardwindow_open");
        }
예제 #2
0
        private static bool IsValidRelationship(IMiniSimDescription sim1, IMiniSimDescription sim2, CASFamilyScreen.RelationshipType relationship)
        {
            switch (relationship)
            {
            case CASFamilyScreen.RelationshipType.Roommate:
                return(true);

            case CASFamilyScreen.RelationshipType.Spouse:
                if (!sim1.TeenOrAbove)
                {
                    return(false);
                }

                if (!sim2.TeenOrAbove)
                {
                    return(false);
                }

                if (CASFamilyScreenEx.kAllowAdultTeen)
                {
                    return(true);
                }

                return(sim1.Teen == sim2.Teen);

            case CASFamilyScreen.RelationshipType.Parent:
                if (sim2.Age > sim1.Age)
                {
                    return(false);
                }

                return(sim1.TeenOrAbove);

            case CASFamilyScreen.RelationshipType.Child:
                if (sim1.Age > sim2.Age)
                {
                    return(false);
                }

                return(sim2.TeenOrAbove);

            case CASFamilyScreen.RelationshipType.Sibling:
                return(true);
            }
            return(false);
        }