public override void OnPreLoad() { Overwatch.Log(GetTitlePrefix()); Opportunity opportunity = OpportunityManager.GetStaticOpportunity(OpportunityNames.EP7_FortuneTellerCareer_HelpInvestigation_Police); if (opportunity != null) { if ((opportunity.SharedData.mRequirementList == null) || (opportunity.SharedData.mRequirementList.Count == 0)) { opportunity.SharedData.mRequirementList = new System.Collections.ArrayList(); // FortuneTeller career requirement Opportunity.OpportunitySharedData.RequirementInfo info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mType = RequirementType.Career; info.mGuid = (ulong)OccupationNames.FortuneTeller; info.mMinLevel = 1; info.mMaxLevel = 10; opportunity.SharedData.mRequirementList.Add(info); // Police Station requirement info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mType = RequirementType.WorldHasRabbitHoleType; info.mGuid = (ulong)RabbitHoleType.PoliceStation; opportunity.SharedData.mRequirementList.Add(info); } } foreach (OpportunityNames opp in new OpportunityNames[] { OpportunityNames.EP9_Academics_StudyAtHome, OpportunityNames.EP9_Academics_StudyAtLibrary, OpportunityNames.EP9_Academics_StudyAtQuad, OpportunityNames.EP9_Academics_StudyAtStudentUnion }) { opportunity = OpportunityManager.GetStaticOpportunity(opp); if (opportunity != null) { if ((opportunity.SharedData.mRequirementList == null) || (opportunity.SharedData.mRequirementList.Count == 0)) { opportunity.SharedData.mRequirementList = new System.Collections.ArrayList(); // University Student career requirement Opportunity.OpportunitySharedData.RequirementInfo info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mType = RequirementType.Career; info.mGuid = (ulong)OccupationNames.AcademicCareer; info.mMinLevel = 1; info.mMaxLevel = 1; opportunity.SharedData.mRequirementList.Add(info); } } } }
public override void OnPreLoad() { Overwatch.Log(GetTitlePrefix()); Opportunity opportunity = OpportunityManager.GetStaticOpportunity(OpportunityNames.EP7_FortuneTellerCareer_HelpInvestigation_Police); if (opportunity != null) { if ((opportunity.SharedData.mRequirementList == null) || (opportunity.SharedData.mRequirementList.Count == 0)) { opportunity.SharedData.mRequirementList = new System.Collections.ArrayList(); // FortuneTeller career requirement Opportunity.OpportunitySharedData.RequirementInfo info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mType = RequirementType.Career; info.mGuid = (ulong)OccupationNames.FortuneTeller; info.mMinLevel = 1; info.mMaxLevel = 10; opportunity.SharedData.mRequirementList.Add(info); // Police Station requirement info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mType = RequirementType.WorldHasRabbitHoleType; info.mGuid = (ulong)RabbitHoleType.PoliceStation; opportunity.SharedData.mRequirementList.Add(info); } } foreach (OpportunityNames opp in new OpportunityNames[] { OpportunityNames.EP9_Academics_StudyAtHome, OpportunityNames.EP9_Academics_StudyAtLibrary, OpportunityNames.EP9_Academics_StudyAtQuad, OpportunityNames.EP9_Academics_StudyAtStudentUnion }) { opportunity = OpportunityManager.GetStaticOpportunity(opp); if (opportunity != null) { if ((opportunity.SharedData.mRequirementList == null) || (opportunity.SharedData.mRequirementList.Count == 0)) { opportunity.SharedData.mRequirementList = new System.Collections.ArrayList(); // University Student career requirement Opportunity.OpportunitySharedData.RequirementInfo info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mType = RequirementType.Career; info.mGuid = (ulong)OccupationNames.AcademicCareer; info.mMinLevel = 1; info.mMaxLevel = 1; opportunity.SharedData.mRequirementList.Add(info); } } } }
private static ArrayList ParseRequirements(XmlDbRow dr, OpportunityNames opportunityKey) { ArrayList list = new ArrayList(); for (int i = 1; i <= 8; i++) { List<string> entry = dr.GetStringList("Requirement" + i, ',', false); if (entry.Count > 0) { RequirementType type; ParserFunctions.TryParseEnum<RequirementType>(entry[0], out type, RequirementType.Undefined); Opportunity.OpportunitySharedData.RequirementInfo info = null; if (type == RequirementType.Undefined) { info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mData = dr.GetString("Requirement" + i); info.mType = RequirementType.Undefined; } else { switch (type) { case RequirementType.Career: info = ParseCareerRequirements(entry); break; case RequirementType.Skill: info = ParseSkillRequirements(entry); break; case RequirementType.Trait: info = OpportunityManager.ParseTraitRequirements(entry); break; case RequirementType.WorldHasRabbitHoleType: info = OpportunityManager.ParseWorldHasRabbitHoleRequirement(entry); break; case RequirementType.LearnableRecipeExists: case RequirementType.HasAcquaintanceOrHigher: case RequirementType.HasYAAcquaintanceOrHigher: case RequirementType.HasNonFriendCoworker: case RequirementType.WorldHasPregnantSim: case RequirementType.HasChildOrTeenAcquaintanceOrHigher: case RequirementType.IsElder: case RequirementType.WorldHasCommunityLot: case RequirementType.HasHighRelationshipWithDeadSim: case RequirementType.Unemployed: case RequirementType.HasSingleSim: info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mType = type; break; case RequirementType.HasObjectOnHomeLot: case RequirementType.WorldHasLotWith: info = OpportunityManager.ParseObjectRequirement(entry); info.mType = type; break; case RequirementType.KnowsRecipe: info = OpportunityManager.ParseKnowsRecipeRequirement(entry); break; case RequirementType.HasStrangers: info = OpportunityManager.ParseHasStrangersRequirement(entry); break; case RequirementType.HasNonHouseholdAdultSims: info = OpportunityManager.ParseHasNonHouseholdAdultSimsRequirement(entry); break; case RequirementType.WorldHasInvitableSimInCareer: case RequirementType.WorldHasSimInCareer: case RequirementType.WorldHasSkillTutorableSimInCareer: info = OpportunityManager.ParseWorldHasSimInCareerRequirement(entry); info.mType = type; break; case RequirementType.HasInvitableCoworker: info = OpportunityManager.ParseHasInvitableCoworkerRequirement(entry); break; case RequirementType.HasGrade: info = OpportunityManager.ParseHasGradeRequirement(entry); break; case RequirementType.HasPlanted: info = OpportunityManager.ParseHasPlantedRequirement(entry); break; case RequirementType.HasWrittenXBooksOfGenre: info = OpportunityManager.ParseHasWrittenXBooksOfGenreRequirement(entry); break; case RequirementType.OpportunityNotComplete: info = ParseOpportunityNotCompleteRequirement(entry); break; case RequirementType.OpportunityComplete: info = ParseOpportunityCompleteRequirement(entry); break; case RequirementType.CanWriteGenre: info = OpportunityManager.ParseCanWriteGenreRequirement(entry); break; case RequirementType.WorldHasSpecificSim: info = OpportunityManager.ParseWorldHasSpecificSimRequirement(entry); break; case RequirementType.WorldHasCommunityLotType: info = OpportunityManager.ParseWorldHasCommunityLotTypeRequirement(entry, type); break; case RequirementType.NotInCareer: info = ParseNotInCareerRequirement(entry); break; case RequirementType.HasVacationLocal: info = OpportunityManager.ParseHasVacationLocalRequirement(entry); break; case RequirementType.WorldHasSimInRole: info = OpportunityManager.WorldHasSimInRoleRequirement(entry); break; case RequirementType.WorldHasSimOnSpecificLot: info = OpportunityManager.WorldHasSimOnSpecificLot(entry); break; case RequirementType.WorldHasEmptyTreasureSpawner: info = OpportunityManager.WorldHasEmptyTreasureSpawner(entry); break; case RequirementType.VisaLevel: info = OpportunityManager.ParseVisaLevelRequirements(entry, opportunityKey); break; case RequirementType.HasBuff: info = OpportunityManager.ParseBuffRequirements(entry); break; case RequirementType.KnowsInvention: info = OpportunityManager.ParseKnownInventionRequirement(entry); break; case RequirementType.KnowsSculpture: info = OpportunityManager.ParseKnownSculptureRequirement(entry); break; case RequirementType.Celebrity: info = OpportunityManager.ParseCelebrityRequirements(entry); break; case RequirementType.HasCompletedNGigs: info = OpportunityManager.ParseHasCompletedNGigsRequirements(entry); break; case RequirementType.HasPet: info = OpportunityManager.ParseHasPetRequirement(entry); break; } } if (info != null) { list.Add(info); } } } return list; }
public static Opportunity.OpportunitySharedData.RequirementInfo ParseOpportunityCompleteRequirement(List<string> entry) { if (entry.Count == 2) { OpportunityNames names; Opportunity.OpportunitySharedData.RequirementInfo info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mType = RequirementType.OpportunityComplete; ParserFunctions.TryParseEnum<OpportunityNames>(entry[1], out names, OpportunityNames.Undefined); // New Code if (names == OpportunityNames.Undefined) { names = unchecked((OpportunityNames)ResourceUtils.HashString64(entry[1])); } info.mGuid = (ulong)names; return info; } return null; }
private static Opportunity.OpportunitySharedData.RequirementInfo ParseSkillRequirements(List<string> entry) { if (entry.Count == 4) { Opportunity.OpportunitySharedData.RequirementInfo info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mType = RequirementType.Skill; // Custom SkillNames names = SkillManager.sSkillEnumValues.ParseEnumValue(entry[1]); info.mGuid = (ulong)names; bool flag = int.TryParse(entry[2], out info.mMinLevel); bool flag2 = int.TryParse(entry[3], out info.mMaxLevel); if (flag && flag2) { return info; } } return null; }
private static Opportunity.OpportunitySharedData.RequirementInfo ParseCareerRequirements(List<string> entry) { if (entry.Count == 4) { OccupationNames names; Opportunity.OpportunitySharedData.RequirementInfo info = new Opportunity.OpportunitySharedData.RequirementInfo(); info.mType = RequirementType.Career; ParserFunctions.TryParseEnum<OccupationNames>(entry[1], out names, OccupationNames.Undefined); // New Code if (names == OccupationNames.Undefined) { names = unchecked((OccupationNames)ResourceUtils.HashString64(entry[1])); } info.mGuid = (ulong)names; bool flag = int.TryParse(entry[2], out info.mMinLevel); bool flag2 = int.TryParse(entry[3], out info.mMaxLevel); if (flag && flag2) { return info; } } return null; }