scoreboard-js/scoreboard/controllers/score.js
Julian Appel c4325ae8ac Merge branch 'master' of https://git.jappel.io/jappel/scoreboard-js
Konflikt in scoreboard/controllers/cli.js zugunsten der Remote-Version
aufgeloest: openBrowser()/killBrowser() bleiben erhalten, da routes/admin.js
sie verwendet. Der lokale Testcode wurde verworfen (er rief zudem das
child_process-Modul faelschlich als Funktion auf).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 20:32:29 +02:00

130 lines
No EOL
3.3 KiB
JavaScript

const io = require('./socketio');
const db = require('../controllers/db');
let enabled = true;
let teamA = {
name: "Team A",
name2: "",
score: 0,
isSpielgemeinschaft: 0,
};
let teamB = {
name: "Team B",
name2: "",
score: 0,
isSpielgemeinschaft: 0,
};
let sideswitch = false; // Attribute to switch sides after halftime
let referenceMirrored = false; // If sitting behind the scoreboard, switch sides for admin board
// Funktionsübersicht (Prototypen ohne Implementierung — nur zur Übersicht)
function setEnabled(status) {};
function configTeam(team, name, name2, isSpielgemeinschaft) {};
function setScore(team, score) {};
function alterScore(team, dir) {};
function clearScore() {};
function toggleSideswitch() {};
function getEnabled() {};
function getValues() {};
// Enable or disable the scoreboard
function setEnabled(status) {
enabled = status;
}
// Setzt Namen und Spielgemeinschafts-Status eines Teams
function configTeam(team, name, name2, isSpielgemeinschaft) {
if(team == "teamA") {
teamA.name = name;
teamA.name2 = name2;
teamA.isSpielgemeinschaft = isSpielgemeinschaft;
} else if(team == "teamB") {
teamB.name = name;
teamB.name2 = name2;
teamB.isSpielgemeinschaft = isSpielgemeinschaft;
}
}
// Set score of team to passed value
function setScore(team, score) {
if(team == "teamA") {
teamA.score = score;
} else if(team == "teamB") {
teamB.score = score;
}
}
// Ändert den Score eines Teams um 1 — Richtung "inc" (erhöhen) oder "dec" (verringern)
function alterScore(team, dir) {
if(team == "teamA") {
if(dir == "inc") {
teamA.score++;
console.log("teamA inc");
}
else if(dir == "dec") {
teamA.score--;
console.log("teamA dec");
}
} else if(team == "teamB") {
if(dir == "inc") {
teamB.score++;
console.log("teamB inc");
}
else if(dir == "dec") {
teamB.score--;
console.log("teamB dec");
}
}
io.sockets.emit('score', print());
}
// Clears score of both teams
function clearScore() {
teamA.score = 0;
teamB.score = 0;
io.sockets.emit('score', print());
}
// Toggle sideswitch
function toggleSideswitch() {
console.log("Seiten gewechselt");
sideswitch = !sideswitch;
io.sockets.emit('score', print());
io.sockets.emit('scoreSideswitch', '');
}
// Mirror team position on admin panel
function toggleReferenceMirrored() {
referenceMirrored = !referenceMirrored;
}
// Return enabled value
function getEnabled() {
return enabled
}
// Print current score depending on sideswitch
function print() {
if(sideswitch) {
return teamB.score + ":" + teamA.score
} else {
return teamA.score + ":" + teamB.score
}
}
// Return all important values
function getValues() {
return {
enabled: enabled,
teamA: teamA,
teamB: teamB,
sideswitch: sideswitch,
referenceMirrored: referenceMirrored,
print: print(),
teams: db.getTeams(),
};
}
module.exports = {
setEnabled, configTeam, setScore, alterScore, clearScore, toggleSideswitch, toggleReferenceMirrored, getEnabled, getValues,
}