public bool Parse(XmlDbRow row, StoryProgressionObject manager, IUpdateManager updater, string prefix, ref string error) { if ((!string.IsNullOrEmpty(prefix)) && (!Parse(row, manager, updater, null, ref error))) { return false; } if (row.Exists(prefix + "RecruitAllowSteal")) { mAllowSteal = row.GetBool(prefix + "RecruitAllowSteal"); } if (mActorRecruit == null) { mActorRecruit = new SimScenarioFilter(); } if (!mActorRecruit.Parse(row, manager, updater, prefix + "RecruitActor", false, ref error)) { return false; } if (mTargetRecruit == null) { mTargetRecruit = new SimScenarioFilter(); } if (!mTargetRecruit.Parse(row, manager, updater, prefix + "RecruitTarget", false, ref error)) { return false; } return true; }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Manager; } return base.PrintStory(manager, name, parameters, extended, logging); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if ((mAffairStory & ManagerRomance.AffairStory.Partner) == ManagerRomance.AffairStory.Partner) { if ((Sim.IsMarried) && (Target.IsMarried)) { name = "Married" + name; } else { name = "Steady" + name; } } if ((Sim.Partner != null) && (Target.Partner != null)) { if ((mAffairStory & ManagerRomance.AffairStory.Duo) == ManagerRomance.AffairStory.Duo) { name += "Duo"; } else if ((mAffairStory & ManagerRomance.AffairStory.Target) == ManagerRomance.AffairStory.Target) { name += "Second"; } else if ((mAffairStory & ManagerRomance.AffairStory.Actor) != ManagerRomance.AffairStory.Actor) { // No story return(null); } } else if (Target.Partner != null) { if ((mAffairStory & ManagerRomance.AffairStory.Target) == ManagerRomance.AffairStory.Target) { name += "Second"; } else if ((mAffairStory & ManagerRomance.AffairStory.Actor) != ManagerRomance.AffairStory.Actor) { // No story return(null); } } else { if ((mAffairStory & ManagerRomance.AffairStory.Actor) != ManagerRomance.AffairStory.Actor) { // No story return(null); } } return(base.PrintStory(manager, name, parameters, extended, logging)); }
public static bool PushForRepairman(IScoringGenerator stats, StoryProgressionObject manager, Household house) { List <SimDescription> choices = manager.Situations.GetFree(stats, new SimScoringList(stats, "Handiness", manager.Sims.TeensAndAdults, false).GetBestByMinScore(1), true); Dictionary <Household, List <GameObject> > repairs = new Dictionary <Household, List <GameObject> >(); foreach (Lot lot in ManagerLot.GetOwnedLots(house)) { GetRepairs(manager, lot.GetObjects <GameObject>(), repairs); } stats.AddStat("Residents", choices.Count); while (choices.Count > 0) { SimDescription choice = RandomUtil.GetRandomObjectFromList(choices); choices.Remove(choice); if (choice.CreatedSim == null) { continue; } List <GameObject> repairWork = null; if (repairs.TryGetValue(house, out repairWork)) { if (PushInteractions(manager, choice, repairWork)) { stats.IncStat("Resident Repairman"); return(true); } else { stats.IncStat("Push Fail"); } } else { stats.IncStat("No Repairs Fonud"); } } stats.IncStat("Service Repairman"); Repairman instance = Repairman.Instance; if (instance != null) { instance.MakeServiceRequest(house.LotHome, true, ObjectGuid.InvalidObjectGuid); } return(true); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (mWasMarried) { name = "Married" + name; } else { name = "Steady" + name; } return base.PrintStory(manager, name, parameters, extended, logging); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { ManagerStory.Story story = base.PrintStory(manager, name, parameters, extended, logging); if (story == null) { return(null); } story.mID2 = story.mID1; story.mID1 = new ManagerStory.Story.Element(Object.ObjectId); return(story); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (mWasMarried) { name = "Married" + name; } else { name = "Steady" + name; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected Scenario(Scenario scenario) : base(scenario.Main) { mManager = scenario.mManager; mID = scenario.mID; //mRescheduled = scenario.mRescheduled; mPushChance = scenario.mPushChance; mShouldPush = scenario.mShouldPush; mInitialReportChance = scenario.mInitialReportChance; mContinueReportChance = scenario.mContinueReportChance; mUpdaters = scenario.mUpdaters; //mFirst = scenario.mFirst; }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Situations; } if (parameters == null) { parameters = new object[] { Sim, SimClock.CurrentTime() }; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Pregnancies; } if (parameters == null) { parameters = new object[] { Sim, Target, mNumberOfKidsBetween }; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintFormattedStory(StoryProgressionObject manager, string text, string summaryKey, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { if (Sim == null) { return(null); } parameters = new object[] { Sim }; } return(base.PrintFormattedStory(manager, text, summaryKey, parameters, extended, logging)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { if (Sim == null) { return(null); } parameters = new object[] { Sim }; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Money; } if (parameters == null) { parameters = new object[] { Sim, mTotalFunds }; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { parameters = new object[] { Sim, mFunds }; } if (extended == null) { extended = new string[] { EAText.GetNumberString(mFunds) }; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintFormattedStory(StoryProgressionObject manager, string text, string summaryKey, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Careers; } if ((mTone != null) && (DebuggingEnabled)) { text = "(D)" + UnlocalizedName + ": " + mTone; } return(base.PrintFormattedStory(manager, text, summaryKey, parameters, extended, logging)); }
public void Add(StoryProgressionObject manager, Scenario scenario, ScenarioResult precondition) { if (scenario == null) { return; } if (manager == null) { return; } Add(new Scenario.ScenarioRun(scenario, manager, precondition)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Situations; } if ((parameters == null) && (mReason != null)) { parameters = new object[] { Sim, mReason.CatalogName }; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Romances; } if (parameters == null) { parameters = new object[] { Sim, Sim.Partner, Lot }; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
public void Add(StoryProgressionObject manager, Scenario scenario, int chance) { if (scenario == null) { return; } if (manager == null) { return; } Add(new Scenario.ScenarioRun(scenario, manager, chance)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { if (mSteal > 0) { name += "AndSteal"; } parameters = new object[] { Sim, Target, Funds + mSteal, mSteal }; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { parameters = new object[] { Sim, Target, mTrait }; } if (extended == null) { extended = new string[] { mTrait }; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { SimDescription target = SimTypes.HeadOfFamily(mLot.Household); if (target == null) { return(null); } parameters = new object[] { Sim, target }; } return(base.PrintStory(manager, name, parameters, extended, logging)); }
public static List <Lot> GetPurchaseableLots(StoryProgressionObject manager, Household buyer) { Dictionary <ulong, bool> owned = new Dictionary <ulong, bool>(); foreach (PropertyData data in RealEstateManager.AllPropertiesFromAllHouseholds()) { owned[data.LotId] = true; } List <Lot> list = new List <Lot>(); foreach (Lot lot in LotManager.AllLots) { if (lot.IsWorldLot) { continue; } if (lot.Household == buyer) { continue; } if (lot.LotType != LotType.Residential) { continue; } if (!IsRentable(manager, lot)) { continue; } if (owned.ContainsKey(lot.LotId)) { continue; } if (buyer.FamilyFunds < GetPurchaseLotCost(lot)) { continue; } list.Add(lot); } return(list); }
public void UpdateManager(StoryProgressionObject manager) { mManager = manager; mAgeGenderOptions = new List <AgeGenderOption>(); foreach (string name in mUserAgeGenders) { AgeGenderOption option = manager.GetOption <AgeGenderOption>(name); if (option == null) { continue; } mAgeGenderOptions.Add(option); } StoryProgressionObject valueTestManager = manager; if (!string.IsNullOrEmpty(mClan)) { valueTestManager = manager.Personalities.GetPersonality(mClan); } List <IValueTestOption> values = new List <IValueTestOption>(); if (valueTestManager != null) { foreach (ValueTestLoadStore store in mValueTestLoads) { IntegerOption intOption = manager.GetOption <IntegerOption>(store.mName); if (intOption != null) { values.Add(new IntegerOption.ValueTest(intOption, store.mMinimum, store.mMaximum)); } else { BooleanOption boolOption = manager.GetOption <BooleanOption>(store.mName); if (boolOption != null) { values.Add(new BooleanOption.ValueTest(boolOption, store.mMatch)); } } } } mValueTestOptions = values; }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { if (mHomeless) { manager = Pregnancies; } else { manager = Flirts; } } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { if (mRabbitHole != null) { parameters = new object[] { Sim, mRabbitHole.CatalogName }; } else if (mLot != null) { parameters = new object[] { Sim, mLot.Name }; } } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { if (Sim == mBirthdaySim) { name += "SelfHost"; } else { parameters = new object[] { Sim, mBirthdaySim, Lot }; } } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintFormattedStory(StoryProgressionObject manager, string text, string summaryKey, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Careers; } if (Event.Career is School) { return(null); } text = Common.LocalizeEAString(Sim.IsFemale, "Gameplay/Careers/Career:FiredText", new object[] { Sim }); return(base.PrintFormattedStory(manager, text, summaryKey, parameters, extended, logging)); }
public bool Parse(XmlDbRow row, StoryProgressionObject manager, IUpdateManager updater, ref string error) { mFightScoring = row.GetString("FightScoring"); if (!row.Exists("AllowGoToJail")) { error = "AllowGoToJail missing"; return(false); } mAllowGoToJail = row.GetBool("AllowGoToJail"); mActorAllowInjury = row.GetBool("AllowInjury") || row.GetBool("ActorAllowInjury"); mTargetAllowInjury = row.GetBool("AllowInjury") || row.GetBool("TargetAllowInjury"); mChanceOfDeath = new IntegerOption.OptionValue(-1); if (row.Exists("ChanceOfDeath")) { if (!mChanceOfDeath.Parse(row, "ChanceOfDeath", manager, updater, ref error)) { return(false); } } mBail = row.GetInt("Bail"); mSuccess = new WeightScenarioHelper(mOrigin); if (!mSuccess.Parse(row, manager, updater, "Success", ref error)) { return(false); } mFailure = new WeightScenarioHelper(mOrigin); if (!mFailure.Parse(row, manager, updater, "Failure", ref error)) { return(false); } mExtremeFailure = new WeightScenarioHelper(mOrigin); if (!mExtremeFailure.Parse(row, manager, updater, "ExtremeFailure", ref error)) { return(false); } return(true); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (mMovers.Count != 1) { return(null); } if (manager == null) { if (Manager is SimPersonality) { manager = Households; } } return(base.PrintStory(manager, name, new object[] { mMovers[0], mMoveInWith }, extended, logging)); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Romances; } if (HandleAdultSeperately) { if ((!Sim.Teen) && (!Target.Teen)) { name += "Adult"; } } return(base.PrintStory(manager, name, parameters, extended, logging)); }
protected override ManagerStory.Story PrintFormattedStory(StoryProgressionObject manager, string text, string summaryKey, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Skills; } Skill skill = Sim.SkillManager.GetElement(mSkill); if (skill == null) { return(null); } if (extended == null) { extended = new string[] { skill.Name, EAText.GetNumberString(mLevel) }; } if (mLevel == 0) { text = skill.Description; } else { string entryKey = skill.LevelUpStrings[mLevel]; if (!string.IsNullOrEmpty(entryKey)) { text = Common.LocalizeEAString(skill.SkillOwner.IsFemale, "Gameplay/Skills/Skill:SkillLevelIncreasedDialogText", new object[] { skill.SkillOwner, skill.Name, mLevel }) + Common.NewLine + Common.NewLine + Common.LocalizeEAString(skill.SkillOwner.IsFemale, entryKey, new object[] { skill.SkillOwner }); } else { text = Common.LocalizeEAString(skill.SkillOwner.IsFemale, "Gameplay/Skills/Skill:SkillLevelIncreasedDialogText", new object[] { skill.SkillOwner, skill.Name, mLevel }); } } ManagerStory.Story story = base.PrintFormattedStory(manager, text, summaryKey, parameters, extended, logging); if (story != null) { story.mOverrideImage = skill.NonPersistableData.DreamsAndPromisesIcon; story.mOverrideVersion = skill.NonPersistableData.SkillProductVersion; } return(story); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Careers; } if (parameters == null) { if ((Sim.Occupation != null) && (Sim.Occupation.Boss != null)) { parameters = new object[] { Sim, Sim.Occupation.Boss }; } } return(base.PrintStory(manager, name, parameters, extended, logging)); }
public bool Parse(XmlDbRow row, StoryProgressionObject manager, IUpdateManager updater, ref string error) { mStoryName = row.GetString("InvestigateStoryName"); mMinimum = new IntegerOption.OptionValue(); if (!mMinimum.Parse(row, "InvestigateMinimum", manager, updater, ref error)) { mMinimum = null; error = null; //return false; } mMaximum = new IntegerOption.OptionValue(); if (!mMaximum.Parse(row, "InvestigateMaximum", manager, updater, ref error)) { mMaximum = null; error = null; //return false; } return true; }
public bool Parse(XmlDbRow row, string name, StoryProgressionObject manager, IUpdateManager updater, ref string error) { string value = row.GetString(name); if (string.IsNullOrEmpty(value)) { error = "BooleanOption " + name + " missing"; return false; } if (!bool.TryParse(value, out mValue)) { mOption = manager.GetOption<BooleanOption>(value); if (mOption == null) { error = "BooleanOption" + value + " invalid"; return false; } } updater.AddUpdater(this); return true; }
public bool Parse(XmlDbRow row, StoryProgressionObject manager, IUpdateManager updater, string prefix, bool errorIfNone, ref string error) { mDisallowRelated = row.GetBool(prefix + "DisallowRelated"); if (row.Exists(prefix + "StandardFilter")) { mEnabled = true; if (!ParserFunctions.TryParseEnum<StandardFilter>(row.GetString(prefix + "StandardFilter"), out mStandardFilter, StandardFilter.None)) { error = prefix + "StandardFilter invalid"; return false; } } string customTest = row.GetString(prefix + "CustomTest"); mCustomTest = new Common.MethodStore(customTest, new Type[] { typeof(Parameters), typeof(SimDescription), typeof(SimDescription) }); if ((mCustomTest == null) && (!string.IsNullOrEmpty(customTest))) { error = prefix + "CustomTest Invalid"; return false; } switch (mStandardFilter) { case StandardFilter.ExistingFriend: case StandardFilter.ExistingEnemy: case StandardFilter.Nemesis: if (!row.Exists(prefix + "StandardIgnoreBusy")) { error = prefix + "StandardIgnoreBusy missing"; return false; } mStandardIgnoreBusy = row.GetBool(prefix + "StandardIgnoreBusy"); break; } switch (mStandardFilter) { case StandardFilter.ExistingFriend: case StandardFilter.ExistingEnemy: RelationshipLevel standardLevel; if (ParserFunctions.TryParseEnum<RelationshipLevel>(row.GetString(prefix + "StandardGate"), out standardLevel, RelationshipLevel.Neutral)) { mStandardGate = (int)standardLevel; } else { RelationshipLevel defGate = RelationshipLevel.Neutral; if (mStandardFilter == StandardFilter.ExistingFriend) { defGate = RelationshipLevel.Friend; } else { defGate = RelationshipLevel.Enemy; } mStandardGate = row.GetInt(prefix + "StandardGate", (int)defGate); } break; case StandardFilter.ExistingFlirt: case StandardFilter.ExistingOrAnyFlirt: if (!row.Exists(prefix + "StandardDisallowPartner")) { error = prefix + "StandardDisallowPartner missing"; return false; } break; } // The default for DisallowPartner can be altered by the calling system, don't overwrite it if (row.Exists(prefix + "StandardDisallowPartner")) { mStandardDisallowPartner = row.GetBool(prefix + "StandardDisallowPartner"); } switch (mStandardFilter) { case StandardFilter.AnyFlirt: case StandardFilter.ExistingOrAnyFlirt: if (!row.Exists(prefix + "AllowAffair")) { error = prefix + "AllowAffair missing"; return false; } break; } if (row.Exists(prefix + "AllowOpposing")) { mAllowOpposing = row.GetBool(prefix + "AllowOpposing"); } else { mAllowOpposing = true; } if (row.Exists("AllowAffair")) { error = prefix + "AllowAffair misdefined"; return false; } else if (row.Exists(prefix + "AllowAffair")) { mAllowAffair = row.GetBool(prefix + "AllowAffair"); } else { mAllowAffair = false; } if (row.Exists(prefix + "ThirdPartyFilter")) { mEnabled = true; if (!ParserFunctions.TryParseEnum<ThirdPartyFilter>(row.GetString(prefix + "ThirdPartyFilter"), out mThirdPartyFilter, ThirdPartyFilter.None)) { error = prefix + "ThirdPartyFilter invalid"; return false; } } mScoring = row.GetString(prefix + "Scoring"); if (!string.IsNullOrEmpty(mScoring)) { mEnabled = true; if (ScoringLookup.GetScoring(mScoring) == null) { error = mScoring + " missing"; return false; } if ((!row.Exists(prefix + "ScoringMinimum")) && (!row.Exists(prefix + "ScoringMaximum"))) { error = prefix + "ScoringMinimum missing"; return false; } } mScoringMaximum = row.GetInt(prefix + "ScoringMaximum", int.MaxValue); mScoringMinimum = row.GetInt(prefix + "ScoringMinimum", int.MinValue); if (mScoringMinimum > mScoringMaximum) { int scoring = mScoringMinimum; mScoringMinimum = mScoringMaximum; mScoringMaximum = scoring; } if ((row.Exists(prefix + "RelationshipMinimum")) || (row.Exists(prefix + "RelationshipMaximum"))) { mEnabled = true; } RelationshipLevel relationLevel; if (ParserFunctions.TryParseEnum<RelationshipLevel>(row.GetString(prefix + "RelationshipMaximum"), out relationLevel, RelationshipLevel.Neutral)) { mRelationshipMaximum = (int)relationLevel; } else { mRelationshipMaximum = row.GetInt(prefix + "RelationshipMaximum", 101); } if (ParserFunctions.TryParseEnum<RelationshipLevel>(row.GetString(prefix + "RelationshipMinimum"), out relationLevel, RelationshipLevel.Neutral)) { mRelationshipMinimum = (int)relationLevel; } else { mRelationshipMinimum = row.GetInt(prefix + "RelationshipMinimum", -101); } if (mRelationshipMinimum > mRelationshipMaximum) { int scoring = mRelationshipMinimum; mRelationshipMinimum = mRelationshipMaximum; mRelationshipMaximum = scoring; } mClan = row.GetString(prefix + "Clan"); if (!string.IsNullOrEmpty(mClan)) { mEnabled = true; } if (row.Exists(prefix + "ClanLeader")) { mEnabled = true; } mClanLeader = row.GetBool(prefix + "ClanLeader"); if (row.Exists(prefix + "ClanMembers")) { mEnabled = true; } mClanMembers = row.GetBool(prefix + "ClanMembers"); string ageGender = row.GetString(prefix + "AgeGender"); if (!string.IsNullOrEmpty(ageGender)) { mEnabled = true; if (!ParserFunctions.TryParseEnum<CASAgeGenderFlags>(ageGender, out mAgeGender, CASAgeGenderFlags.None)) { error = "Unknown AgeGender " + ageGender; return false; } } StringToSpeciesList converter = new StringToSpeciesList(); mSpecies = converter.Convert(row.GetString(prefix + "Species")); if (mSpecies == null) { error = converter.mError; return false; } if (mSpecies.Count == 0) { mSpecies.Add(CASAgeGenderFlags.Human); } for (int i = 0; i < 10; i++) { string key = prefix + "UserAgeGender" + i; if (!row.Exists(key)) break; mEnabled = true; string name = row.GetString(key); AgeGenderOption option = manager.GetOption<AgeGenderOption>(name); if (option == null) { error = prefix + "UserAgeGender" + i + " " + name + " missing"; return false; } mUserAgeGenders.Add(name); } for (int i = 0; i < 10; i++) { string key = prefix + "ValueTest" + i; if (!row.Exists(key)) break; mEnabled = true; string name = row.GetString(key); int min = row.GetInt(key + "Minimum", int.MinValue); int max = row.GetInt(key + "Maximum", int.MaxValue); bool match = true; if (row.Exists(key + "Match")) { match = row.GetBool(key + "Match"); } mValueTestLoads.Add(new ValueTestLoadStore(name, min, max, match)); } if ((!mEnabled) && (errorIfNone)) { error = prefix + " Filter missing"; return false; } updater.AddUpdater(this); return true; }
public void UpdateManager(StoryProgressionObject manager) { mManager = manager; mAgeGenderOptions = new List<AgeGenderOption>(); foreach (string name in mUserAgeGenders) { AgeGenderOption option = manager.GetOption<AgeGenderOption>(name); if (option == null) continue; mAgeGenderOptions.Add(option); } StoryProgressionObject valueTestManager = manager; if (!string.IsNullOrEmpty(mClan)) { valueTestManager = manager.Personalities.GetPersonality(mClan); } List<IValueTestOption> values = new List<IValueTestOption>(); if (valueTestManager != null) { foreach(ValueTestLoadStore store in mValueTestLoads) { IntegerOption intOption = manager.GetOption<IntegerOption>(store.mName); if (intOption != null) { values.Add(new IntegerOption.ValueTest(intOption, store.mMinimum, store.mMaximum)); } else { BooleanOption boolOption = manager.GetOption<BooleanOption>(store.mName); if (boolOption != null) { values.Add(new BooleanOption.ValueTest(boolOption, store.mMatch)); } } } } mValueTestOptions = values; }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { SimDescription target = SimTypes.HeadOfFamily(mLot.Household); if (target == null) return null; parameters = new object[] { Sim, target }; } return base.PrintStory(manager, name, parameters, extended, logging); }
public override bool ManualSetup(StoryProgressionObject manager) { if (!base.ManualSetup(manager)) return false; int originalID = Scenarios.TrackingID; Scenarios.TrackingID = ID; SimSelection sim = new SimSelection(this); try { if (!sim.Perform()) { if (!AcceptCancelDialog.Show(Common.Localize("FireScenario:ApplyAll"))) { return false; } } Scenarios.WriteTrack(false); } finally { Scenarios.TrackingID = originalID; } Sim = sim.SimDescription; return true; }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { if (Sim == null) return null; parameters = new object[] { Sim }; } return base.PrintStory(manager, name, parameters, extended, logging); }
public static void GetRepairs(StoryProgressionObject manager, GameObject[] choices, Dictionary<Household,List<GameObject>> allRepairs) { foreach (GameObject obj in choices) { if (obj == null) continue; if (obj is Sim) { Sim sim = obj as Sim; if (!sim.SimDescription.IsFrankenstein) continue; if (!sim.BuffManager.HasElement(BuffNames.ShortOut)) continue; } else { if (obj.InUse) continue; if (!obj.InWorld) continue; if (!obj.IsRepairable) continue; RepairableComponent component = obj.Repairable; if (component == null) continue; if (!component.Broken) continue; } if (obj.LotCurrent == null) continue; Household household = obj.LotCurrent.Household; if (household == null) continue; if (household == Household.ActiveHousehold) continue; foreach (SimDescription member in HouseholdsEx.All(household)) { if (manager.GetValue<InStasisOption, bool>(member)) continue; } List<GameObject> repairs; if (!allRepairs.TryGetValue(household, out repairs)) { repairs = new List<GameObject>(); allRepairs.Add(household, repairs); } repairs.Add(obj); } }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { parameters = new object[] { Sim, Target, mSkillName }; } if (extended == null) { extended = new string[] { mSkillName }; } return base.PrintStory(manager, name, parameters, extended, logging); }
public ManagerScoringParameters(StoryProgressionObject manager, SimDescription scoreAgainst, SimDescription other, bool absolute) : base(scoreAgainst, other, absolute) { mManager = manager; }
protected override ManagerStory.Story PrintFormattedStory(StoryProgressionObject manager, string text, string summaryKey, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (!ShouldReport) return null; if (manager == null) { manager = Lots; } ManagerStory.Story story = base.PrintFormattedStory(manager, mStory, summaryKey, parameters, extended, logging); if (story != null) { story.mShowNoImage = true; } return story; }
protected override ManagerStory.Story PrintFormattedStory(StoryProgressionObject manager, string text, string summaryKey, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { if (Sim == null) return null; if (Target == null) return null; parameters = new object[] { Sim, Target }; } return base.PrintFormattedStory(manager, text, summaryKey, parameters, extended, logging); }
protected override ManagerStory.Story PrintFormattedStory(StoryProgressionObject manager, string text, string summaryKey, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (mMovers.Count == 1) return null; if (manager == null) { if (Manager is SimPersonality) { manager = Households; } } if (text == null) { text = GetTitlePrefix(PrefixType.Summary); } return Stories.PrintFormattedSummary(Households, text, summaryKey, mMoveInWith, mMovers, extended, logging); }
public void UpdateManager(StoryProgressionObject manager) { if (mOption == null) return; mOption = manager.GetOption<AgeGenderOption>(mOption.GetTitlePrefix()); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Deaths; } GetData<ManagerDeath.DyingSimData>(Sim).Notified = true; return base.PrintStory(manager, name, parameters, extended, logging); }
public PropagateClanDelightScenario(SimDescription center, StoryProgressionObject clan, Origin origin) : base(center, BuffNames.Delighted, origin) { mClan = clan as SimPersonality; }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Lots; } if (parameters == null) { if (Sim.Household == null) return null; return Stories.PrintStory(manager, name, Sim.Household, extended, logging); } else { return base.PrintStory(manager, name, parameters, extended, logging); } }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Situations; } if (parameters == null) { parameters = new object[] { Sim, SimClock.CurrentTime() }; } return base.PrintStory(manager, name, parameters, extended, logging); }
public static bool PushInteractions(StoryProgressionObject manager, SimDescription sim, List<GameObject> repair) { if (sim.CreatedSim == null) return false; if (sim.Household == null) return false; List<Pair<GameObject, InteractionDefinition>> electronics = new List<Pair<GameObject, InteractionDefinition>>(); bool bSuccess = false; foreach (GameObject obj in repair) { InteractionDefinition interaction = null; bool electric = false; if (obj is Dishwasher) { interaction = Dishwasher.RepairDishwasher.Singleton; electric = true; } else if (obj is Computer) { interaction = Computer.RepairComputer.Singleton; electric = true; } else if (obj is Stereo) { interaction = Stereo.RepairStereo.Singleton; electric = true; } else if (obj is TV) { interaction = TV.RepairTV.Singleton; electric = true; } else if (obj is TrashCompactor) { interaction = TrashCompactor.Repair.Singleton; electric = true; } else if (obj is Bathtub) { interaction = Bathtub.RepairBathtub.Singleton; } else if (obj is Shower) { interaction = Shower.RepairShower.Singleton; } else if (obj is Sink) { interaction = Sink.RepairSink.Singleton; } else if (obj is Toilet) { interaction = Toilet.Repair.Singleton; } else if (obj is NectarMaker) { interaction = NectarMaker.Repair.Singleton; electric = true; } else if (obj is WashingMachine) { interaction = WashingMachine.Repair.Singleton; electric = true; } else if (obj is Sim) { interaction = OccultFrankenstein.RepairFrankenstein.Singleton; } else if (obj is HotTubBase) { interaction = HotTubBase.RepairHotTub.Singleton; } else if (obj is TimeMachine) { interaction = TimeMachine.Repair.Singleton; electric = true; } if (interaction == null) continue; if (electric) { electronics.Add(new Pair<GameObject, InteractionDefinition>(obj, interaction)); } else { sim.Household.AddGreetedLotToHousehold(obj.LotCurrent, sim.CreatedSim.ObjectId); if (!manager.Situations.PushInteraction(manager, sim, obj, interaction)) { break; } else { bSuccess = true; } } } if (electronics.Count > 0) { Pair<GameObject, InteractionDefinition> item = RandomUtil.GetRandomObjectFromList(electronics); sim.Household.AddGreetedLotToHousehold(item.First.LotCurrent, sim.CreatedSim.ObjectId); if (manager.Situations.PushInteraction(manager, sim, item.First, item.Second)) { bSuccess = true; } } return bSuccess; }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (mNemesis) { SimPersonality clan = Manager as SimPersonality; if (clan != null) { if (clan.Me != Sim) return null; } name = "Nemesis"; } return base.PrintStory(manager, name, parameters, extended, logging); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Friends; } if (!Sim.IsHuman) { if (string.IsNullOrEmpty(name)) return null; name += "Pet"; } else if (mNemesis) { SimPersonality clan = Manager as SimPersonality; if (clan != null) { if (clan.Me != Sim) return null; } name = "Nemesis"; } else if (Sim.Partner == Target) { if (string.IsNullOrEmpty(name)) return null; name += "Partner"; } return base.PrintStory(manager, name, parameters, extended, logging); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { parameters = new object[] { Sim, mFunds }; } if (extended == null) { extended = new string[] { EAText.GetMoneyString(mFunds) }; } return base.PrintStory(manager, name, parameters, extended, logging); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (mMovers.Count != 1) return null; if (manager == null) { if (Manager is SimPersonality) { manager = Households; } } return base.PrintStory(manager, name, new object[] { mMovers[0], mMoveInWith }, extended, logging); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Pregnancies; } if (parameters == null) { parameters = new object[] { Sim, Target, mNumberOfKidsBetween }; } return base.PrintStory(manager, name, parameters, extended, logging); }
protected override ManagerStory.Story PrintFormattedStory(StoryProgressionObject manager, string text, string summaryKey, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Careers; } if (extended == null) { if (Event.Career is School) { extended = new string[] { Event.Career.GetLocalizedCareerName(Sim.IsFemale) }; } else { extended = new string[] { Event.Career.GetLocalizedCareerName(Sim.IsFemale), EAText.GetNumberString(Event.Career.Level) }; } } ManagerStory.Story story = base.PrintFormattedStory(manager, mText, summaryKey, parameters, extended, logging); if (story != null) { story.mOverrideImage = Event.Career.CareerIconColored; } return story; }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (parameters == null) { if (Sim == null) return null; if (Target == null) return null; if (!AllowStorySpecies(Sim, Target)) { return null; } parameters = new object[] { Sim, Target }; } return base.PrintStory(manager, name, parameters, extended, logging); }
protected override ManagerStory.Story PrintStory(StoryProgressionObject manager, string name, object[] parameters, string[] extended, ManagerStory.StoryLogging logging) { if (manager == null) { manager = Situations; } if ((parameters == null) && (mReason != null)) { parameters = new object[] { Sim, mReason.CatalogName }; } return base.PrintStory(manager, name, parameters, extended, logging); }