Entry 73

Trade, a party member's list and Gift, the administrators and the Grunty breeders

Filescrates/piney-fieldui/src/menus/trade.rscrates/piney-fieldui/src/menus/talk.rscrates/piney-fieldui/src/menus/breeder.rscrates/piney-fieldui/src/talk.rscrates/piney-fieldui/src/world.rscrates/piney-game/src/world.rstools/test_fieldui_trade_rs.pytools/test_fieldui_talk_rs.pytools/test_fieldui_shop_rs.pydocs/engine/field-ui.md

70 left part of the talk menus to come. The talk agent's two helpers have now finished them. All 17 menus that the action button opens on a character are now ported, each checked frame by frame against the game's ccThMenu.

The menus

  • Trade. 48 TradeMenu and 49 TradeSubMenu: a PC's offers, the gauge, Approve, and the piece given in exchange.
  • A party member. 21 SpcMenu and 50 PresentMenu: Gift, with the member's thanks and AddSpcItem.
  • The administrators. 23 NpcMenu.
  • The Grunty breeders. 27 BreederMenu and 56 BreedingMenu: Give Food, with the Grunty's growth.

Merging

The shop agent merged the two helpers' work with each other and with 71's:

  • One copy of each shared piece.
    • AddSpcItem, which Trade and Gift share;
    • ChangeEquipment and the skill bookkeeping, from Equipment's equip.rs;
    • the menu fade, from PERSONAL's.
  • Members' stats written as Equipment writes them. A member's trade or gift writes its real and tune to the save through equip::calc_real. It also raises the existing CalcReal and ChangeEquip requests.

In the runtime

The action button's menus on a party member (21), an administrator (23) and a breeder (27) now tell the field UI who was spoken to first, as the PC and shop menus already did. Without that, the pages found no character.

Checked

  • Against the game.
    • tools/test_fieldui_trade_rs.py: 10 tests.
    • tools/test_fieldui_talk_rs.py: 25 tests.
    • The shop, field UI, PERSONAL and OPTION suites still pass.
    • Members in the trade and gift tests now have levels and worn pieces, so their real and tune are compared too.
  • Re-run in a clean worktree. All of these pass, with the workspace's tests, clippy (including piney-fieldui with trace), fmt and the docs check.
  • Shots from the runtime (the talk agent's): Crest's list, and Trade with its offers, the gauge and Approve, then the give page.
Still unknown
  • Not wired into the runtime. These requests are dropped: - a member's book use (SpcUseItem); - PresentOther; - feeding a Grunty (Feed, GruntyGrowth); - CalcReal and ChangeEquip.