fix(learner): learner-only mode shows only learner data

Three-mode spawn-merge semantics:
- Learner: discard npcDataOverrides (which AscensionDB's _Asc_MergeInto
  populates with curated coords). GetNPC returns learnerRecord only.
  _ApplyNpcLiveUpdate and object-spawn injection use IsAscensionProtected
  (mode-dependent) so learner coords pass through in learner mode.
- Auto: static DB primary, learner fills gaps. Curated spawns protected.
- Static: base DB only.

Also removes the allowSpawnMerge bypass that was the original hole
letting learner coords leak into curated spawns in auto mode.
This commit is contained in:
Xurkon
2026-06-08 21:48:02 -05:00
parent f9a3301584
commit edbb64fb3d
2 changed files with 33 additions and 11 deletions
+4
View File
@@ -2277,6 +2277,10 @@ function QuestieDB:GetNPC(npcId)
if not rawdata then
rawdata = override
end
-- Learner mode: discard any curated coords that AscensionDB's
-- _Asc_MergeInto wrote into npcDataOverrides. The learner's own
-- coords come from rawdata (learnerRecord), not from the override.
override = nil
else
rawdata = QuestieDB.QueryNPC(npcId, QuestieDB._npcAdapterQueryOrder)
if not rawdata and learnerRecord and mode == "auto" then