Skip to content

Commit

Permalink
fix lookups for movie tickets that some NPCs would reject
Browse files Browse the repository at this point in the history
  • Loading branch information
Pathoschild committed Jan 26, 2022
1 parent 632580b commit 4c0a5c4
Show file tree
Hide file tree
Showing 18 changed files with 35 additions and 5 deletions.
4 changes: 3 additions & 1 deletion LookupAnything/Framework/Lookups/Items/ItemSubject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -296,13 +296,15 @@ select name
});

// movie tastes
const GiftTaste rejectKey = (GiftTaste)(-1);
IDictionary<GiftTaste, string[]> tastes = this.GameHelper.GetMovieTastes()
.GroupBy(entry => entry.Value)
.GroupBy(entry => entry.Value ?? rejectKey)
.ToDictionary(group => group.Key, group => group.Select(p => p.Key.Name).OrderBy(p => p).ToArray());

yield return new MovieTastesField(I18n.Item_MovieTicket_LovesMovie(), tastes, GiftTaste.Love);
yield return new MovieTastesField(I18n.Item_MovieTicket_LikesMovie(), tastes, GiftTaste.Like);
yield return new MovieTastesField(I18n.Item_MovieTicket_DislikesMovie(), tastes, GiftTaste.Dislike);
yield return new MovieTastesField(I18n.Item_MovieTicket_RejectsMovie(), tastes, rejectKey);
}
}

Expand Down
19 changes: 15 additions & 4 deletions LookupAnything/GameHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -262,16 +262,27 @@ where taste.HasValue
);
}

/// <summary>Get how much each NPC likes watching this week's movie.</summary>
public IEnumerable<KeyValuePair<NPC, GiftTaste>> GetMovieTastes()
/// <summary>Get how much each NPC likes watching this week's movie. If an NPC would reject the movie, the gift taste is set to null.</summary>
public IEnumerable<KeyValuePair<NPC, GiftTaste?>> GetMovieTastes()
{
foreach (NPC npc in this.GetAllCharacters())
{
if (!this.IsSocialVillager(npc))
continue;

GiftTaste taste = (GiftTaste)Enum.Parse(typeof(GiftTaste), MovieTheater.GetResponseForMovie(npc), ignoreCase: true);
yield return new KeyValuePair<NPC, GiftTaste>(npc, taste);
string rawTaste = MovieTheater.GetResponseForMovie(npc);
switch (rawTaste)
{
case "love" or "like" or "dislike":
yield return new KeyValuePair<NPC, GiftTaste?>(npc, Enum.Parse<GiftTaste>(rawTaste, ignoreCase: true));
break;

case "reject":
yield return new KeyValuePair<NPC, GiftTaste?>(npc, null);
break;

// any other value will be ignored for movie preferences
}
}
}

Expand Down
2 changes: 2 additions & 0 deletions LookupAnything/docs/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

# Release notes
## Upcoming release
* When looking up a movie ticket, added a list of NPCs would refuse to watch the current movie.
* Fixed item lookups no longer showing construction recipes.
* Fixed error looking up movie ticket if some NPCs will reject the invitation.
* Improved translations. Thanks to ChulkyBow (updated Ukrainian) and wally232 (added Korean)!

## 1.36.2
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@
"item.movie-ticket.loves-movie": "Liebt Film",
"item.movie-ticket.likes-movie": "Mag Film",
"item.movie-ticket.dislikes-movie": "Mag Film nicht",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} liebt das",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@
"item.movie-ticket.loves-movie": "Loves movie",
"item.movie-ticket.likes-movie": "Likes movie",
"item.movie-ticket.dislikes-movie": "Dislikes movie",
"item.movie-ticket.rejects-movie": "Won't watch movie",

// values
"item.movie-snack-preference.love": "{{name}} loves this",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -452,6 +452,7 @@
"item.movie-ticket.loves-movie": "Ama la película",
"item.movie-ticket.likes-movie": "Le gusta la película",
"item.movie-ticket.dislikes-movie": "No le gusta la película",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} ama esto",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -452,6 +452,7 @@
"item.movie-ticket.loves-movie": "Films aimés",
"item.movie-ticket.likes-movie": "Films appréciés",
"item.movie-ticket.dislikes-movie": "Films non appréciés",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} aime ça",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,7 @@
"item.movie-ticket.loves-movie": "Imádja a filmet",
"item.movie-ticket.likes-movie": "Szereti a filmet",
"item.movie-ticket.dislikes-movie": "Nem szereti a filmet",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} imádja ezt",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -452,6 +452,7 @@
"item.movie-ticket.loves-movie": "Adora il film",
"item.movie-ticket.likes-movie": "Gli piace il film",
"item.movie-ticket.dislikes-movie": "Non gli piace il film",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} lo adora",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,7 @@
"item.movie-ticket.loves-movie": "大好きな映画",
"item.movie-ticket.likes-movie": "好きな映画",
"item.movie-ticket.dislikes-movie": "嫌いな映画",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}}が大好き",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@
"item.movie-ticket.loves-movie": "사랑하는 영화",
"item.movie-ticket.likes-movie": "좋아하는 영화",
"item.movie-ticket.dislikes-movie": "싫어하는 영화",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} 사랑함",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@
"item.movie-ticket.loves-movie": "Kocha ten film",
"item.movie-ticket.likes-movie": "Lubi ten film",
"item.movie-ticket.dislikes-movie": "Nie lubi tego filmu",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} kocha to",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@
"item.movie-ticket.loves-movie": "Ama o filme",
"item.movie-ticket.likes-movie": "Gosta do filme",
"item.movie-ticket.dislikes-movie": "Não gosta do filme",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} ama isso",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@
"item.movie-ticket.loves-movie": "Любит кино",
"item.movie-ticket.likes-movie": "Нравится кино",
"item.movie-ticket.dislikes-movie": "Не нравится кино",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} любит это",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/th.json
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@
"item.movie-ticket.loves-movie": "รักหนังเรื่องนี้",
"item.movie-ticket.likes-movie": "ชอบหนังเรื่องนี้",
"item.movie-ticket.dislikes-movie": "ไม่ชอบหนังเรื่องนี้",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} ชอบสิ่งนี้มากๆ",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@
"item.movie-ticket.loves-movie": "Filmi sevenler",
"item.movie-ticket.likes-movie": "Filmi beğenenler",
"item.movie-ticket.dislikes-movie": "Filmi beğenmeyenler",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} bunu seviyor",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/uk.json
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,7 @@
"item.movie-ticket.loves-movie": "Любить фільм",
"item.movie-ticket.likes-movie": "Подобається фільм",
"item.movie-ticket.dislikes-movie": "Не подобається фільм",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}} любить це",
Expand Down
1 change: 1 addition & 0 deletions LookupAnything/i18n/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,7 @@
"item.movie-ticket.loves-movie": "热爱电影",
"item.movie-ticket.likes-movie": "喜欢电影",
"item.movie-ticket.dislikes-movie": "不喜欢电影",
"item.movie-ticket.rejects-movie": "Won't watch movie", // TODO

// values
"item.movie-snack-preference.love": "{{name}}酷爱这个",
Expand Down

0 comments on commit 4c0a5c4

Please sign in to comment.