DopingControl v0.6.4
This commit is contained in:
@@ -47,6 +47,44 @@ DC.DEFAULTS = {
|
||||
skillBooks = {},
|
||||
}
|
||||
|
||||
-- ------------------------------------------------------------------
|
||||
-- DC.SimOwnsStore(db) -> bool
|
||||
--
|
||||
-- The ONE owner predicate for DC.store, and the question every scan gate
|
||||
-- asks -- never db.testMode alone. Both simulated modes replace the store
|
||||
-- with the simulated raid, and while either is on "real data never beats
|
||||
-- the simulation":
|
||||
-- * db.testMode -- /dc test, persisted (DEFAULTS above)
|
||||
-- * DC.demoMode -- /dc demo, transient (core/demo.lua)
|
||||
--
|
||||
-- Why it exists: the gates named db.testMode only, so a finished scan
|
||||
-- overwrote the sim store while demo mode was still armed. The demo
|
||||
-- expectation layer then graded the REAL raid against all six school
|
||||
-- protection columns (five of which ship with no seed entry at all): every
|
||||
-- raider grew fabricated MISSING cells, the banner vanished with the "sim"
|
||||
-- source that had been the only marker that this is a mode and not a
|
||||
-- measurement, and each row's whisper button went live against a real
|
||||
-- player.
|
||||
--
|
||||
-- Why HERE and not in core/demo.lua, where the mode lives: config.lua loads
|
||||
-- second, ahead of every gate that calls this, so the gates need no
|
||||
-- load-order guard -- and a demo module that fails to load can never take
|
||||
-- test mode's protection down with it (DC.demoMode is then simply nil).
|
||||
--
|
||||
-- db is optional; the fallback is for callers that do not hold one.
|
||||
-- Always returns a real boolean -- the gates invert it.
|
||||
-- ------------------------------------------------------------------
|
||||
function DC.SimOwnsStore(db)
|
||||
db = db or DC.db or DopingControlDB
|
||||
if db and db.testMode then
|
||||
return true
|
||||
end
|
||||
if DC.demoMode then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- Generic deep copy (tables only; keys are copied by reference, values
|
||||
-- recursively). No cycle handling -- config/expectation shapes are trees.
|
||||
function DC.DeepCopy(src)
|
||||
|
||||
Reference in New Issue
Block a user