@@ -238732,11 +238732,17 @@ class GameMaster {
238732238732 this._nameNewCategory();
238733238733 // Create input
238734238734 new (0, _inputHandlerDefault.default)(this.mainScene);
238735+ // Add button to reset category.
238736+ const resetButton = new (0, _buttonDefault.default)(this.mainScene, this.mainScene.sys.canvas.width - 70, 70, 60, 60, "\uD83D\uDD04", ()=>this._resetCategory(), {
238737+ fontColor: (0, _colorKeysDefault.default).BLACK,
238738+ fontSize: "24px"
238739+ });
238740+ this.mainScene.add.existing(resetButton);
238735238741 };
238736238742 if (showIntro) {
238737238743 // Set game master face to happy
238738238744 this.gameMasterFace.say((0, _configDefault.default).INTRO_TEXT, "\uD83D\uDE42");
238739- this.mainScene.input.once("pointerdown ", ()=>{
238745+ this.mainScene.input.once("pointerup ", ()=>{
238740238746 if (!theme) this.chooseTheme();
238741238747 else finalStartGame();
238742238748 });
@@ -239007,7 +239013,17 @@ class GameMaster {
239007239013 return letterPool[randomIndex];
239008239014 }
239009239015 _updateCategoryDisplay() {
239010- this.gameMasterFace.say(`Kategorie: ${this.currentCategory}`);
239016+ this.gameMasterFace.say(`${this.currentCategory}`);
239017+ }
239018+ _resetCategory() {
239019+ // Add penalty letter to hand
239020+ const hand = this.mainScene.getHand();
239021+ if (hand.getLetters().length < (0, _configDefault.default).MAXIMUM_LETTER_COUNT) {
239022+ const penaltyLetter = this._getRandomLetter();
239023+ hand.addLetter(penaltyLetter);
239024+ }
239025+ // Set new category
239026+ this._nameNewCategory();
239011239027 }
239012239028}
239013239029exports.default = GameMaster;
@@ -239131,6 +239147,7 @@ Config.INTRO_TEXT = `Hi, Lust eine Runde "Quick Letter" zu spielen?
239131239147 - Wenn mir die Antwort gefällt, nehme ich dir Buchstaben ab.
239132239148 - Wenn mir die Antwort nicht gefällt, bekommst du einen Strafbuchstaben.
239133239149 - Du hast gewonnen, wenn du alle Buchstaben los bist.
239150+ - Mit Klick auf "🔄" kannst du eine Kategorie überspringen. Das kostet einen Strafbuchstaben.
239134239151
239135239152 Klicke um zu beginnen!
239136239153 `;
@@ -239867,8 +239884,8 @@ class Button extends Phaser.GameObjects.Container {
239867239884 fontColor: (0, _colorKeysDefault.default).WHITE,
239868239885 fontSize: "32px",
239869239886 strokeColor: (0, _colorKeysDefault.default).WHITE_0X,
239870- hoverColor: (0, _colorKeysDefault.default).GREY_VERY_DARK_0X ,
239871- backgroundColor: (0, _colorKeysDefault.default).GREY_LIGHT_0X ,
239887+ hoverColor: (0, _colorKeysDefault.default).GREY_0X ,
239888+ backgroundColor: (0, _colorKeysDefault.default).GREY_VERY_LIGHT_0X ,
239872239889 backgroundColorDeactivated: (0, _colorKeysDefault.default).DARKGREY_0X,
239873239890 shadowAlpha: 0.3,
239874239891 shadowColor: (0, _colorKeysDefault.default).GREY_0X,
@@ -240331,10 +240348,9 @@ class Hand {
240331240348 this.mainScene = mainScene;
240332240349 }
240333240350 addLetter(letter) {
240334- const lastLetterObject = this.letterObjects[this.letterObjects.length - 1];
240335240351 const letterCard = new (0, _letterCardDefault.default)(this.mainScene, 0, 0, letter);
240336240352 this.mainScene.add.existing(letterCard);
240337- const letterPosition = lastLetterObject ? lastLetterObject.position + 1 : 1 ;
240353+ const letterPosition = this._getNextEmptyPosition() ;
240338240354 this.letterObjects.push({
240339240355 letter: letter,
240340240356 position: letterPosition,
@@ -240357,6 +240373,17 @@ class Hand {
240357240373 ease: "Power2"
240358240374 });
240359240375 }
240376+ _getNextEmptyPosition() {
240377+ for(let i = 1; i <= (0, _configDefault.default).MAXIMUM_LETTER_COUNT; i++){
240378+ let letterFoundForThisPosition = false;
240379+ for (let letterObject of this.letterObjects)if (letterObject.position === i) {
240380+ letterFoundForThisPosition = true;
240381+ break;
240382+ }
240383+ if (!letterFoundForThisPosition) return i;
240384+ }
240385+ throw new Error("No empty position found between 1 and " + (0, _configDefault.default).MAXIMUM_LETTER_COUNT + ". This is an expection. It should not happen.");
240386+ }
240360240387 removeLetter(letter) {
240361240388 // Remove letter from letterObjects. Only remove the first occurrence of the letter.
240362240389 const letterObjectToRemove = this.letterObjects.find((letterObject)=>letterObject.letter === letter);
0 commit comments