Example #1
0
 public bool CanCatchPreyFish()
 {
     foreach (KeyValuePair <FishType, FishData> sFishDatum in Fish.sFishData)
     {
         CatHuntingComponent.PreyData preyData = sFishDatum.Value.PreyData;
         if (preyData != null && SkillLevel >= preyData.MinSkillLevel && SkillLevel <= preyData.MaxSkillLevel)
         {
             return(true);
         }
     }
     return(false);
 }
Example #2
0
        public string RegisterCaughtFish(Fish prey, bool isFreshwater)
        {
            CatHuntingComponent.PreyData mPreyData = prey.CatHuntingComponent.mPreyData;
            string message = "";

            if (mPreyData != null && mPreyData.PreyType == PreyType.Fish)
            {
                ++mNumberFishCaught;

                // Tried to find a cute way to do this but failed. There's really no easy test?
                if (isFreshwater)
                {
                    ++mFreshFishCaught;
                }
                else
                {
                    ++mSaltFishCaught;
                }
                if (!mFishingInfo.ContainsKey(prey.mFishType))
                {
                    ++mUniqueFishCaught;
                    FishInfo fishInfo = new FishInfo();
                    fishInfo.mHeaviestTypeWeight = prey.Weight;
                    fishInfo.mNumberCaught       = 1;
                    mFishingInfo.Add(prey.mFishType, fishInfo);
                    message += Localization.LocalizeString(sEWLocalizationKey + ":newBreed", mSkillOwner) + " ";
                }
                else
                {
                    mFishingInfo[prey.mFishType].mHeaviestTypeWeight =
                        Math.Max(mFishingInfo[prey.mFishType].mHeaviestTypeWeight, prey.mWeight);
                    ++mFishingInfo[prey.mFishType].mNumberCaught;
                }
                if (mHeaviestFishWeight < prey.mWeight)
                {
                    mHeaviestFishWeight = prey.mWeight;
                    mHeaviestTypeName   = Fish.sFishData[prey.mFishType].StringKeyName;
                    message            += Localization.LocalizeString(sEWLocalizationKey + ":newRecord", mSkillOwner) + " ";
                }
                EventTracker.SendEvent(new GuidEvent <PreyType>(EventTypeId.kPreyTypeCaught,
                                                                base.SkillOwner.CreatedSim, mPreyData.PreyType));
                EventTracker.SendEvent(new GuidEvent <MinorPetRarity>(EventTypeId.kPreyRarityCaught,
                                                                      base.SkillOwner.CreatedSim, mPreyData.Rarity));
            }
            return(message);
        }