Skip to content

Dave offers follow the current lawn

Ordinary Dave conversations previously received the entire offer catalog even when a gift had been spent, a seed was locked, or a trade was unaffordable. The response validator rejected many of those actions, but the prompt still encouraged speech about them. Gift lore also repeated the full action list.

The prompt and response validator now share one eligibility policy. The prompt contains the current affordable Cherry Bomb range, unused eligible gifts, and the actual price of a currently offered tin. Mower replacement requires a missing mower outside a reserved reverse lane, matching the existing browser and native checks. The engine still checks planting squares and all live board conditions when the player accepts. Personality guidance supplies motives and speech examples, not a second inventory of actions.

A reply to a displayed scripted remark now continues that moment without a new offer. A non-null offer in that response is rejected before speech is displayed or saved. This handoff lasts one successful turn. Ordinary conversation resumes its available actions afterward; real authored choices retain their own legal decisions, including when accompanied by a displayed remark. The FunnyPvZ chapters, combat rules, account configuration and save schemas are unchanged.

Verification and limits

The missing availability and spent-lore cases failed before the changes. Resource/offer-state tests compare prompt availability with accepted responses; separate regressions cover missing mowers, reverse-lane reservations, supported client versions, the one-turn handoff and preserved native choices.

All 423 isolated game-NPC checks, hosted build and typecheck pass. An earlier full run aborted one HTTP test process with a Windows Node/V8 JIT-allocation assertion; its 10 checks passed in isolation, and the complete final suite then passed without flags or skipped tests. The full OSS export verification passes (its server suite reports 1,507 passes and four preexisting skips); these hosted NPC files are excluded by the existing manifest, and this document is outside the exported documentation set.

Live writing is not a quality pass. Two successive candidates each received one English and one Chinese generation on the same fixed model, qwen/qwen3-30b-a3b-instruct-2507, with the same captured 3-3 scenes. The first candidate combined the trick with a no-shovel reward and invented earlier history. After separating the scripted reply, both returned no new offer, but the Chinese response still suggested an unsupported taco-for-interest bargain. The English response was generic. No samples were rerolled, and no account, notebook, model-setting or save writes were made.

Local receipts in the game worktree are output/available-offers-live.json and output/scripted-reply-focus-live.json. These are negative writing evidence. The change corrects action/context selection, not arbitrary claims in generated prose. Further dialogue grounding and character quality remain launch work.