This commit is contained in:
breitenbach76 2026-06-09 08:28:57 +02:00
parent e7e7912211
commit 3aa9d129f1
4 changed files with 19 additions and 10 deletions

View file

@ -275,6 +275,8 @@
.slcDonut.clickable .donutSeg{cursor:pointer;transition:opacity .12s}
.slcDonut.clickable .donutSeg:hover{opacity:.82}
.slcDonut .donutSeg.bad{stroke:var(--bad);stroke-width:4}
.akteItem.flash{animation:akteFlash 1.6s ease-out}
@keyframes akteFlash{0%,55%{background:#fff3bf}100%{background:transparent}}
.slcCap{font-size:11px;color:var(--muted);margin-top:4px;text-align:center}
@media(max-width:680px){.classifyTop{grid-template-columns:1fr}.classifyCard{max-width:300px;margin:0 auto}.classifyMain{margin-top:6px}}
.choice{text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:15px;font-weight:600}
@ -1106,7 +1108,7 @@ function defaultState(){
classifyDone:false, classifyWrong:null,
freigabeDone:false, freigabeWrong:null,
entryDone:false, entryWrong:null,
bonusReveal:false, bonusDone:{}, servicesDone:{},
bonusReveal:false, bonusDone:{}, servicesDone:{}, akteFlash:null,
index:0, stage:"discuss", quizIndex:0,
actStep:0, actReveal:false, actDone:false, arteWrong:null,
picks:{}, done:{}, akte:{},
@ -1173,7 +1175,7 @@ function renderAkte(){
html += `<h3>${PHASEN[ph].label}</h3>`;
group.forEach(a=>{
const ok = !!have[a];
html += `<div class="akteItem ${ok?'have':''}">
html += `<div class="akteItem ${ok?'have':''} ${a===S.akteFlash?'flash':''}">
<span class="aId" style="background:${PHASEN[ph].color}">${a}</span>
<span class="aNm">${ARTEFAKTE[a].name}${ARTEFAKTE[a].live?' · <i>lebend</i>':''}</span>
<span class="aChk">${ok?'✓':'○'}</span>
@ -1558,6 +1560,7 @@ function enterStation(idx){
S.stage = STATIONEN[idx].typ==="gate" ? "gate" : "act";
S.gatePick = null; S.quizIndex = 0;
S.actStep = 0; S.actReveal = false; S.actDone = false; S.arteWrong = null;
S.akteFlash = null; document.body.classList.remove("akteOpen");
}
function gateGoto(st, i){
S.done[st.id] = true;
@ -1811,13 +1814,16 @@ function wire(st){
const b = id => $("#"+id);
if(b("actReveal")) b("actReveal").onclick = ()=>{ S.actReveal=true; save(); draw(); };
if(b("actNext")) b("actNext").onclick = ()=>{ S.actStep=(S.actStep||0)+1; S.actReveal=false; save(); draw(); };
if(b("actToDone")) b("actToDone").onclick = ()=>{ S.actDone=true; save(); draw(); };
if(b("actToDone")) b("actToDone").onclick = ()=>{ S.actDone=true; S.akteFlash=null; document.body.classList.remove("akteOpen"); save(); draw(); };
// Artefakt-Choice
$("#panel").querySelectorAll(".arteChoice[data-a]").forEach(el=>{
el.onclick = ()=>{ const a = el.dataset.a;
if(a === STATION_ARTEFAKT[st.id]){ S.arteWrong=null; addArtefakt(a); S.actReveal=true; }
el.onclick = ()=>{ const a = el.dataset.a; let correct=false;
if(a === STATION_ARTEFAKT[st.id]){ S.arteWrong=null; addArtefakt(a); S.akteFlash=a; S.actReveal=true; correct=true; }
else { S.arteWrong = a; }
save(); draw(); };
save(); draw();
// Akte-Seitenleiste oeffnen, damit man sieht, dass das Artefakt nun drin ist
if(correct){ document.body.classList.remove("navOpen","rollenOpen"); document.body.classList.add("akteOpen"); }
};
});
if(b("actBack")) b("actBack").onclick = ()=>{
if(S.actDone){ S.actDone=false; }

View file

@ -1,5 +1,5 @@
/* Service Worker — SLC-Workshop Companion (App-Shell, offline-first) */
const CACHE = "slc-companion-v25";
const CACHE = "slc-companion-v26";
const SHELL = ["./", "index.html", "manifest.webmanifest", "icon.svg"];
// Action-Card-Grafiken (cards/s<service>-c<change>.png) fuer Offline vorab cachen (alle 24).
const CARDS = [];