DopingControl v0.6.4
This commit is contained in:
+36
-3
@@ -59,6 +59,14 @@ function DC.SetTestMode(v)
|
||||
-- into a suggestion badge (the sim roster deliberately contains
|
||||
-- exactly two suggestion-badge cases).
|
||||
DC.store = DC_Sim.buildStore()
|
||||
elseif DC.demoMode then
|
||||
-- Demo mode owns the simulated store on its own account
|
||||
-- (DC.SimOwnsStore) -- the mirror image of core/demo.lua's
|
||||
-- "leaving demo mode must not kick test mode out of the sim
|
||||
-- store". Without this the showcase would be emptied here and the
|
||||
-- rescan below would be dropped by the scan gate anyway, leaving a
|
||||
-- blank window. /dc demo is what ends demo mode.
|
||||
DC.store = DC_Sim.buildStore()
|
||||
else
|
||||
DC.store = { players = {}, source = "scan" }
|
||||
DC_Scan.Start(true) -- leaving test mode: immediate real rescan
|
||||
@@ -108,7 +116,7 @@ end
|
||||
-- ------------------------------------------------------------------
|
||||
-- Slash commands: /dc, /doping
|
||||
-- ------------------------------------------------------------------
|
||||
local HELP_TEXT = "commands: /dc (window) | scan | options | report | test | probe [range <name>] | unknown | talents [on|off|clear]"
|
||||
local HELP_TEXT = "commands: /dc (window) | scan | options | report | test | demo | probe [range <name>] | unknown | talents [on|off|clear]"
|
||||
|
||||
function DC.HandleSlash(msg)
|
||||
msg = msg or ""
|
||||
@@ -119,9 +127,15 @@ function DC.HandleSlash(msg)
|
||||
if cmd == "" then
|
||||
DC_Matrix.Toggle()
|
||||
elseif cmd == "scan" then
|
||||
-- Real data never beats the simulation while EITHER simulated mode
|
||||
-- owns the store (DC.SimOwnsStore, core/config.lua). Test mode is
|
||||
-- named first because it is the persisted one -- but the refusal
|
||||
-- must name the mode that is actually on, or the user toggles the
|
||||
-- wrong switch and the scan keeps refusing.
|
||||
if db and db.testMode then
|
||||
-- real data never beats the simulation while test mode is on
|
||||
DC.Print("test mode is on - /dc test to switch back before scanning")
|
||||
elseif DC.SimOwnsStore(db) then
|
||||
DC.Print("demo mode is on - /dc demo to switch back before scanning")
|
||||
else
|
||||
DC_Scan.Start()
|
||||
end
|
||||
@@ -133,9 +147,28 @@ function DC.HandleSlash(msg)
|
||||
DC.SetTestMode(not (db and db.testMode))
|
||||
if db and db.testMode then
|
||||
DC.Print("test mode ON - simulated raid, chat output disabled")
|
||||
elseif DC.demoMode then
|
||||
-- SetTestMode kept the sim store for demo mode and started no
|
||||
-- rescan; a "rescanning" message here would be false.
|
||||
DC.Print("test mode OFF - demo mode still on, still showing the simulated raid (/dc demo to leave)")
|
||||
else
|
||||
DC.Print("test mode OFF - rescanning the real group")
|
||||
end
|
||||
elseif cmd == "demo" then
|
||||
-- Showcase view: the simulated raid plus a TRANSIENT expectation
|
||||
-- layer that shows all six school protection columns at once
|
||||
-- (core/demo.lua). Nothing about it is saved -- unlike /dc test,
|
||||
-- which persists db.testMode.
|
||||
if not DC.SetDemoMode then
|
||||
DC.Print("demo module not loaded")
|
||||
else
|
||||
DC.SetDemoMode(not DC.demoMode)
|
||||
if DC.demoMode then
|
||||
DC.Print("demo mode ON - simulated raid, all six protection columns shown")
|
||||
else
|
||||
DC.Print("demo mode OFF - back to the normal view")
|
||||
end
|
||||
end
|
||||
elseif cmd == "probe" then
|
||||
-- core/probe.lua owns the probe subcommand grammar:
|
||||
-- DC_Probe.HandleSlash(rest) handles "" (battery),
|
||||
@@ -222,7 +255,7 @@ if CreateFrame then
|
||||
|
||||
elseif event == "RAID_ROSTER_UPDATE" or event == "PARTY_MEMBERS_CHANGED" then
|
||||
local db = DC.db
|
||||
if db and not db.testMode and MatrixIsShown() then
|
||||
if db and not DC.SimOwnsStore(db) and MatrixIsShown() then
|
||||
DC_Scan.Start()
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user