예제 #1
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mAllowSkill  = row.GetBool("AllowSkill");
            mAllowNormal = row.GetBool("AllowNormal");

            mSuccess = new WeightScenarioHelper(Origin.FromWorkingHard);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #2
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            if (row.Exists("ChildStory"))
            {
                mChildStory = row.GetBool("ChildStory");
            }

            mFight = new FightScenarioHelper(Origin.FromWatchingSimSuffer, DeathType);
            if (!mFight.Parse(row, Manager, this, ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #3
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            if (row.Exists("GiveRaise"))
            {
                mGiveRaise = row.GetBool("GiveRaise");
            }

            mSuccess = new WeightScenarioHelper(Origin.FromWatchingSimSuffer);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #4
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mMinimumWealth = new IntegerOption.OptionValue();
            if (!mMinimumWealth.Parse(row, "MinimumWealth", Manager, this, ref error))
            {
                return(false);
            }

            mSuccess = new WeightScenarioHelper(Origin.FromStore);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #5
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mTargetFilter = new SimScenarioFilter();
            if (!mTargetFilter.Parse(row, Manager, this, "Target", true, ref error))
            {
                return(false);
            }

            mSuccess = new WeightScenarioHelper(Origin.FromCharity);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #6
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mCheckAny = row.GetBool("CheckAny");

            mDelta = row.GetInt("Delta", mDelta);

            if (row.Exists("Ages"))
            {
                mAges = row.GetEnum <CASAgeGenderFlags>("Ages", CASAgeGenderFlags.None);
                if (mAges == CASAgeGenderFlags.None)
                {
                    error = "Invalid Ages: " + row.GetString("Ages");
                    return(false);
                }
            }

            if (row.Exists("CheckExisting"))
            {
                mCheckExisting = row.GetBool("CheckExisting");
            }

            if (row.Exists("Species"))
            {
                ToCASAgeGenderFlags converter = new ToCASAgeGenderFlags();

                mSpecies = converter.Convert(row.GetString("Species"));
                if (mSpecies == null)
                {
                    error = converter.mError;
                    return(false);
                }
            }

            mSuccess = new WeightScenarioHelper(Origin.FromNewLitter);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #7
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mMaximum = new IntegerOption.OptionValue();

            if (row.Exists("AlterKey"))
            {
                mAlterKey = row.GetString("AlterKey");
            }
            else
            {
                if (row.Exists("AccountingKey"))
                {
                    mAccountingKey = row.GetString("AccountingKey");
                }
                else
                {
                    error = "AccountingKey missing";
                    return(false);
                }

                if (!mMaximum.Parse(row, "Maximum", Manager, this, ref error))
                {
                    return(false);
                }
            }

            mMinimum = new IntegerOption.OptionValue();
            if (!mMinimum.Parse(row, "Minimum", Manager, this, ref error))
            {
                return(false);
            }

            mSuccess = new WeightScenarioHelper(Origin.FromGettingGifts);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #8
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mAllowDebt = row.GetBool("AllowDebt");

            if (row.Exists("AccountingKey"))
            {
                mAccountingKey = row.GetString("AccountingKey");
            }
            else
            {
                error = "AccountingKey missing";
                return(false);
            }

            mFight = new FightScenarioHelper(Origin.FromTheft, SimDescription.DeathType.OldAge);
            if (!mFight.Parse(row, Manager, this, ref error))
            {
                return(false);
            }

            mInvestigate = new InvestigationHelper();
            if (!mInvestigate.Parse(row, Manager, this, ref error))
            {
                return(false);
            }

            mMinimum = new IntegerOption.OptionValue();
            if (!mMinimum.Parse(row, "Minimum", Manager, this, ref error))
            {
                return(false);
            }

            mMaximum = new IntegerOption.OptionValue();
            if (!mMaximum.Parse(row, "Maximum", Manager, this, ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #9
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mFight = new FightScenarioHelper(Origin.FromWatchingSimSuffer, DeathType);
            if (!mFight.Parse(row, Manager, this, ref error))
            {
                return(false);
            }

            if (!row.Exists("ReaddOldLeader"))
            {
                error = "ReaddOldLeader Missing";
                return(false);
            }

            mReaddOldLeader = row.GetBool("ReaddOldLeader");

            return(base.Parse(row, ref error));
        }
예제 #10
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mAllowSteal = row.GetBool("AllowSteal");

            mSuccess = new WeightScenarioHelper(Origin.FromSocialization);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            mFailure = new WeightScenarioHelper(Origin.FromSocialization);
            if (!mFailure.Parse(row, Manager, this, "Failure", ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #11
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mChanceOfHomeLot = row.GetInt("ChanceOfHome", mChanceOfHomeLot);

            mPartyAttire = row.GetEnum <OutfitCategories>("Attire", OutfitCategories.None);
            if (mPartyAttire == OutfitCategories.None)
            {
                error = "Unknown Attire: " + row.GetString("Attire");
                return(false);
            }

            mSuccess = new WeightScenarioHelper(Origin.FromSocialization);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #12
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            if (row.Exists("Skill"))
            {
                mSkill = SkillManager.sSkillEnumValues.ParseEnumValue(row.GetString("Skill"));
                if (mSkill == SkillNames.None)
                {
                    error = "Skill unknown";
                    return(false);
                }
            }

            mSuccess = new WeightScenarioHelper(Origin.FromCharity);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #13
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mChance = row.GetInt("Chance", mChance);

            mAcceptanceScoring = row.GetString("AcceptanceScoring");

            mSuccess = new WeightScenarioHelper(Origin.None);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            mFailure = new WeightScenarioHelper(Origin.FromRomanticBetrayal);
            if (!mFailure.Parse(row, Manager, this, "Failure", ref error))
            {
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #14
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mSuccess = new WeightScenarioHelper(Origin.FromBurglar);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            if (!row.Exists("Locale"))
            {
                error = "Locale Missing";
                return(false);
            }

            if (!row.TryGetEnum <Locales>("Locale", out mLocale, Locales.Home))
            {
                error = "Unknown Locale";
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #15
0
 protected CohesionScenario(CohesionScenario scenario)
     : base(scenario)
 {
     mName    = scenario.mName;
     mSuccess = scenario.mSuccess;
 }
예제 #16
0
 protected StealHomeworkScenario(StealHomeworkScenario scenario)
     : base(scenario)
 {
     mName    = scenario.mName;
     mSuccess = scenario.mSuccess;
 }
예제 #17
0
 protected SireScenario(SireScenario scenario)
     : base(scenario)
 {
     mName    = scenario.mName;
     mSuccess = scenario.mSuccess;
 }
예제 #18
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mChanceOfPregnancy = new IntegerOption.OptionValue(-1);

            if (row.Exists("ChanceOfPregnancy"))
            {
                if (!mChanceOfPregnancy.Parse(row, "ChanceOfPregnancy", Manager, this, ref error))
                {
                    return(false);
                }
            }

            mAllowPartner = row.GetBool("AllowPartner");

            if (!row.Exists("TypeOfStory"))
            {
                error = "TypeOfStory missing";
                return(false);
            }
            else if (!ParserFunctions.TryParseEnum <TypeOfStory>(row.GetString("TypeOfStory"), out mTypeOfStory, TypeOfStory.None))
            {
                error = "TypeOfStory unknown";
                return(false);
            }

            mSuccess = new WeightScenarioHelper(Origin.FromRomanticBetrayal);
            if (!mSuccess.Parse(row, Manager, this, "Success", ref error))
            {
                return(false);
            }

            mFailure = new WeightScenarioHelper(Origin.FromRomanticBetrayal);
            if (!mFailure.Parse(row, Manager, this, "Failure", ref error))
            {
                return(false);
            }

            if (!base.Parse(row, ref error))
            {
                return(false);
            }

            if (!row.Exists("AffairStory"))
            {
                error = "AffairStory missing";
                return(false);
            }

            if (!ParserFunctions.TryParseEnum <ManagerRomance.AffairStory>(row.GetString("AffairStory"), out mAffairStory, ManagerRomance.AffairStory.None))
            {
                error = "AffairStory unknown";
                return(false);
            }

            if (mAffairStory != ManagerRomance.AffairStory.None)
            {
                if ((!Filter.AllowAffair) && (!TargetFilter.AllowAffair))
                {
                    error = "ActorAllowAffair or TargetAllowAffair must be True";
                    return(false);
                }
            }
            else
            {
                if ((Filter.AllowAffair) || (TargetFilter.AllowAffair))
                {
                    error = "ActorAllowAffair and TargetAllowAffair must be False";
                    return(false);
                }
            }

            mAcceptanceScoring = row.GetString("AcceptanceScoring");

            return(true);
        }
예제 #19
0
        public override bool Parse(XmlDbRow row, ref string error)
        {
            mName = new WeightOption.NameOption(row);

            mFight = new FightScenarioHelper(Origin.FromWatchingSimSuffer, SimDescription.DeathType.OldAge);
            if (!mFight.Parse(row, Manager, this, ref error))
            {
                return(false);
            }

            mTraitReasons = new Dictionary <TraitNames, string>();

            int index = 0;

            while (true)
            {
                if (!row.Exists("ReasonTrait" + index))
                {
                    break;
                }

                TraitNames trait;
                if (!ParserFunctions.TryParseEnum <TraitNames>(row.GetString("ReasonTrait" + index), out trait, TraitNames.Unknown))
                {
                    error = "ReasonTrait" + index + " unknown";
                    return(false);
                }

                if (mTraitReasons.ContainsKey(trait))
                {
                    error = "ReasonTrait " + trait + " already found";
                    return(false);
                }

                if (!row.Exists("ReasonTraitName" + index))
                {
                    error = "ReasonTraitName" + index + " missing";
                    return(false);
                }

                string text = row.GetString("ReasonTraitName" + index);

                mTraitReasons.Add(trait, text);

                index++;
            }

            mAgeGenderReasons = new Dictionary <CASAgeGenderFlags, string>();

            index = 0;
            while (true)
            {
                if (!row.Exists("ReasonAgeGender" + index))
                {
                    break;
                }

                CASAgeGenderFlags ageGender;
                if (!ParserFunctions.TryParseEnum <CASAgeGenderFlags>(row.GetString("ReasonAgeGender" + index), out ageGender, CASAgeGenderFlags.None))
                {
                    error = "ReasonAgeGender" + index + " unknown";
                    return(false);
                }

                if (mAgeGenderReasons.ContainsKey(ageGender))
                {
                    error = "ReasonAgeGender " + ageGender + " already found";
                    return(false);
                }

                if (!row.Exists("ReasonAgeGenderName" + index))
                {
                    error = "ReasonAgeGenderName" + index + " missing";
                    return(false);
                }

                string text = row.GetString("ReasonAgeGenderName" + index);

                mAgeGenderReasons.Add(ageGender, text);

                index++;
            }

            if ((mTraitReasons.Count == 0) && (mAgeGenderReasons.Count == 0))
            {
                error = "No Reasons found";
                return(false);
            }

            return(base.Parse(row, ref error));
        }
예제 #20
0
 protected LeaveEmScenario(LeaveEmScenario scenario)
     : base(scenario)
 {
     mName    = scenario.mName;
     mSuccess = scenario.mSuccess;
 }
예제 #21
0
 protected HelpHomeworkScenario(HelpHomeworkScenario scenario)
     : base(scenario)
 {
     mName    = scenario.mName;
     mSuccess = scenario.mSuccess;
 }