Fix empty merchant NPC - Christine#803
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses an issue where specific merchant NPCs in the game were initialized with empty, non-functional shop windows. By implementing a new optional configuration update plugin, the system now clones a valid general-goods store onto these NPCs, ensuring they are fully operational for players while remaining idempotent and configurable for server owners. Highlights
New Features🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new update plugin, AddMissingMerchantStoresPlugIn, which assigns a general-goods merchant store (cloned from Thompson the Merchant) to NPCs that have a merchant window but no items assigned (Christine, Julia, and Moss). It also registers this update version in the UpdateVersion enum. The review feedback suggests optimizing the ApplyAsync method by removing the unnecessary async keyword and #pragma warning suppression, and returning default instead to avoid the overhead of an async state machine.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
90d5a4b to
2944680
Compare
sven-n
left a comment
There was a problem hiding this comment.
Adding an update plugin is correct. However, also the NpcInitialization class (maybe MerchantStores.cs) needs to be updated as well.
The initialization runs for freshly setup servers, the update plugin for existing servers.
And one thing about Moss (the gambler?): Isn't he selling random items in the original game? As far as I remember, I didn't implement this feature yet.
|
Good catch. I will fix only Christine, Moss I will leave him untouched. Julia will try fix in another branch. |
Christine the General Goods Merchant (545) in the Loren Market has a merchant window but no MerchantStore, so talking to her opens an empty, non-working shop and the click can even fall through. Give her a clone of the general-goods (potion girl) store carried by Thompson the Merchant (231), in both places that set up game data: - the Season 6 NPC initialization, so freshly set up servers have it; - a configuration update (AddMissingMerchantStores), so existing servers get it without a reset. The update is idempotent and optional. Two other NPCs share the empty merchant window but are intentionally left out: Moss The Merchant (492) is the gambler and Market Union Member Julia (547) is a warp NPC, so a general-goods store fits neither of them.
2944680 to
ad600ed
Compare
Fix empty merchant NPC - Christine
Problem
Three Season 6 NPCs have a merchant window (NpcWindow.Merchant) but no MerchantStore, so talking to them opens an empty, non-working shop:
Change
Adds a configuration update plugin (AddMissingMerchantStoresPlugIn, UpdateVersion = 84) that clones the general-goods store carried by Thompson the Merchant (231) onto each of the three NPCs. Mirrors the existing pattern in AddKalimaPlugIn (cloning a store onto another NPC).
Result
After applying the update, the three NPCs sell general goods (potions, antidotes, bolts/arrows, town portal scroll, armor of guardsman) and show up in the admin panel's merchant editor for further per-NPC tuning. No engine/behavior changes — data only.
Files