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); }
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); }
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); }