88 lines
4.5 KiB
Dart
88 lines
4.5 KiB
Dart
|
import 'package:flutter/material.dart';
|
||
|
import 'package:get/get.dart';
|
||
|
import 'package:mobile_scanner/mobile_scanner.dart';
|
||
|
|
||
|
class GameController extends GetxController {
|
||
|
final String markerSequence;
|
||
|
final TextEditingController markerSequenceController =
|
||
|
TextEditingController();
|
||
|
|
||
|
final String adminPass;
|
||
|
|
||
|
final Map<String, String> markerNumbersToDeclaration = {
|
||
|
"4511338007860": "YG06", // Yellowish Green
|
||
|
"4511338007778": "YR07", // Pale Cherry Pink
|
||
|
"4511338007655": "RV04", // Shock Pink
|
||
|
"4511338007808": "Y06", // Yellow
|
||
|
"4511338007983": "BG09", // Blue Green
|
||
|
"4511338007716": "R29", // Lipstick Red
|
||
|
"4511338008058": "B29", // Ultramarine
|
||
|
"4511338008171": "E29", // Brown
|
||
|
"4511338007921": "G17", // Forest Green
|
||
|
"4511338007594": "V09", // Violet
|
||
|
"4511338008232": "100" // Black
|
||
|
};
|
||
|
|
||
|
final String calendarQrData;
|
||
|
final TextEditingController calendarQrDataController =
|
||
|
TextEditingController();
|
||
|
|
||
|
final String finalCode;
|
||
|
final TextEditingController finalCodeController = TextEditingController();
|
||
|
|
||
|
String storyTitle = "Das Verlassene Museum";
|
||
|
String story =
|
||
|
"Die Sonne stand hoch am Himmel, als Jonas durch die stillen Straßen seiner kleinen Stadt schlich. "
|
||
|
"Der Wind trug das Flüstern der Bäume und das entfernte Lachen spielender Kinder mit sich, "
|
||
|
"doch Jonas hatte nur ein Ziel vor Augen: das verlassene Museum am Stadtrand.\n\n"
|
||
|
"Seit Jahren hörte er Geschichten über diesen geheimnisvollen Ort, und heute war der Tag, an dem er den Mut fand, ihn selbst zu erkunden. "
|
||
|
"Mit klopfendem Herzen näherte sich Jonas den schweren Holztüren des Museums. "
|
||
|
"Ein leises Knarren durchbrach die Stille, als er sie langsam öffnete, und ein Schauer lief ihm über den Rücken. "
|
||
|
"Die Luft im Inneren war kühl und roch nach Staub und alten Geheimnissen. "
|
||
|
"Jonas zückte seine Taschenlampe und trat ein.\n\n"
|
||
|
"Die Strahlen der Lampe tanzten über verstaubte Vitrinen, in denen antike Artefakte lagen, die von längst vergangenen Zeiten erzählten. "
|
||
|
"Verblasste Gemälde hingen an den Wänden, ihre Farben von der Zeit verschluckt, und seltsame Skulpturen warfen lange Schatten auf den Boden. "
|
||
|
"Jonas spürte eine Mischung aus Ehrfurcht und Aufregung. "
|
||
|
"Jeder Schritt, den er machte, ließ den Boden leise knarren, als ob das Museum selbst ihm seine Geschichten zuflüstern wollte.\n\n"
|
||
|
"In einem der hinteren Räume hielt Jonas inne. "
|
||
|
"Vor ihm stand ein alter Mechanismus, bedeckt mit Symbolen und Zahlen, die ihm fremd waren. "
|
||
|
"Fasziniert trat er näher und strich mit den Fingern über die kalte Oberfläche. "
|
||
|
"Es war, als ob das Rätsel ihn rief, als ob es darauf wartete, von ihm gelöst zu werden.\n\n"
|
||
|
"Jonas setzte sich auf den Boden und begann, die Symbole zu studieren. "
|
||
|
"Sein Verstand arbeitete fieberhaft, während er versuchte, die Bedeutung hinter den Zeichen zu entschlüsseln. "
|
||
|
"Die Welt um ihn herum schien zu verschwinden, und er war allein mit dem Geheimnis, das das Museum verbarg.\n\n"
|
||
|
"Stunden vergingen, oder vielleicht waren es nur Minuten, als Jonas schließlich aufstand. "
|
||
|
"Er hatte das Rätsel nicht gelöst, doch er fühlte sich nicht enttäuscht. "
|
||
|
"Stattdessen erfüllte ihn ein Gefühl der Erfüllung. "
|
||
|
"Er hatte den Mut gefunden, sich seinen Ängsten zu stellen und das Abenteuer seines Lebens zu erleben.\n\n"
|
||
|
"Als Jonas das Museum verließ, war die Sonne bereits untergegangen, und die ersten Sterne funkelten am Himmel. "
|
||
|
"Er blickte zurück auf das alte Gebäude, das nun in der Dunkelheit lag, und lächelte. "
|
||
|
"Die Welt war voller Geheimnisse, und er wusste, dass dies nur der Anfang seiner Entdeckungsreise war.";
|
||
|
|
||
|
final MobileScannerController markerPageScannerController =
|
||
|
MobileScannerController(
|
||
|
facing: CameraFacing.back,
|
||
|
formats: [BarcodeFormat.ean13],
|
||
|
autoStart: false,
|
||
|
detectionSpeed: DetectionSpeed.noDuplicates,
|
||
|
);
|
||
|
|
||
|
final MobileScannerController qrPageController = MobileScannerController(
|
||
|
facing: CameraFacing.back,
|
||
|
cameraResolution: const Size(600, 600),
|
||
|
formats: [BarcodeFormat.qrCode],
|
||
|
autoStart: true,
|
||
|
detectionSpeed: DetectionSpeed.noDuplicates,
|
||
|
);
|
||
|
|
||
|
GameController(
|
||
|
{required this.markerSequence,
|
||
|
required this.calendarQrData,
|
||
|
this.finalCode = "17824",
|
||
|
required this.adminPass});
|
||
|
|
||
|
checkMarkerString() =>
|
||
|
markerSequenceController.text.toUpperCase().trim().replaceAll(' ', '') ==
|
||
|
markerSequence.toUpperCase().trim().replaceAll(' ', '');
|
||
|
}
|