Ejemplo n.º 1
0
        private static LikeLevels MapGiftLikeLevel(int like_level)
        {
            LikeLevels gift_like_level = LikeLevels.None;

            switch (like_level)
            {
            case 6:
                gift_like_level = LikeLevels.Hated;
                break;

            case 4:
                gift_like_level = LikeLevels.Disliked;
                break;

            case 8:
                gift_like_level = LikeLevels.Neutral;
                break;

            case 2:
                gift_like_level = LikeLevels.Liked;
                break;

            case 0:
                gift_like_level = LikeLevels.Loved;
                break;
            }

            return(gift_like_level);
        }
Ejemplo n.º 2
0
        public override bool OnCheckProgress(IStoryMessage message)
        {
            if (this.IsCompleted())
            {
                return(false);
            }

            if (message is GiftMessage giftMessage && this.IsWhenMatched())
            {
                if (giftMessage.Item == null || giftMessage.Npc == null)
                {
                    return(false);
                }

                if (this.Data.NpcName != null && this.Data.NpcName != giftMessage.Npc.Name)
                {
                    return(false);
                }

                if (this.Data.AcceptedContextTags != null && !Helper.CheckItemContextTags(giftMessage.Item, this.Data.AcceptedContextTags))
                {
                    return(false);
                }

                if (this.Data.MinimumLikeLevel > LikeLevels.None)
                {
                    int        like_level      = giftMessage.Npc.getGiftTasteForThisItem(giftMessage.Item);
                    LikeLevels gift_like_level = MapGiftLikeLevel(like_level);

                    if (gift_like_level < this.Data.MinimumLikeLevel)
                    {
                        return(false);
                    }
                }

                this.IncrementCount(1);

                return(true);
            }

            return(false);
        }
Ejemplo n.º 3
0
        public virtual void OnGiftGiven(Farmer farmer, NPC npc, Item item)
        {
            bool is_valid_gift = true;

            foreach (string acceptableContextTagSet in acceptableContextTagSets)
            {
                is_valid_gift = false;
                bool     fail  = false;
                string[] array = acceptableContextTagSet.Split(',');
                foreach (string obj in array)
                {
                    bool     found_match = false;
                    string[] array2      = obj.Split('/');
                    foreach (string acceptable_tag in array2)
                    {
                        if (item.HasContextTag(acceptable_tag.Trim()))
                        {
                            found_match = true;
                            break;
                        }
                    }
                    if (!found_match)
                    {
                        fail = true;
                    }
                }
                if (!fail)
                {
                    is_valid_gift = true;
                    break;
                }
            }
            if (!is_valid_gift)
            {
                return;
            }
            if (minimumLikeLevel.Value > LikeLevels.None)
            {
                int        like_level      = npc.getGiftTasteForThisItem(item);
                LikeLevels gift_like_level = LikeLevels.None;
                switch (like_level)
                {
                case 6:
                    gift_like_level = LikeLevels.Hated;
                    break;

                case 4:
                    gift_like_level = LikeLevels.Disliked;
                    break;

                case 8:
                    gift_like_level = LikeLevels.Neutral;
                    break;

                case 2:
                    gift_like_level = LikeLevels.Liked;
                    break;

                case 0:
                    gift_like_level = LikeLevels.Loved;
                    break;
                }
                if (gift_like_level < minimumLikeLevel.Value)
                {
                    return;
                }
            }
            IncrementCount(1);
        }