Пример #1
0
        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);
                    }
                }
            }
        }
Пример #2
0
        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);
                    }
                }
            }
        }
Пример #3
0
        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;
        }
Пример #4
0
        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;
        }
Пример #5
0
        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;
        }
Пример #6
0
        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;
        }