lottis_birthday_escaperoom_app/lib/controller/gamecontroller.dart

88 lines
4.5 KiB
Dart
Raw Permalink Normal View History

2024-08-17 03:19:32 +00:00
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(' ', '');
}