diff --git a/apollo-frontend/src/app/app.component.ts b/apollo-frontend/src/app/app.component.ts index c24bd9f..d86c1c5 100644 --- a/apollo-frontend/src/app/app.component.ts +++ b/apollo-frontend/src/app/app.component.ts @@ -24,5 +24,4 @@ export class AppComponent implements OnInit { prepareRoute(outlet: RouterOutlet): void { return outlet && outlet.activatedRouteData && outlet.activatedRouteData.animation; } - } diff --git a/apollo-frontend/src/app/card/card.component.html b/apollo-frontend/src/app/card/card.component.html index 61f618d..6a6d689 100644 --- a/apollo-frontend/src/app/card/card.component.html +++ b/apollo-frontend/src/app/card/card.component.html @@ -1,4 +1,4 @@ -
+
diff --git a/apollo-frontend/src/app/card/card.component.scss b/apollo-frontend/src/app/card/card.component.scss index 24a1130..3414c46 100644 --- a/apollo-frontend/src/app/card/card.component.scss +++ b/apollo-frontend/src/app/card/card.component.scss @@ -76,8 +76,8 @@ display: flex; flex-direction: column; - width: 200px; - height: 300px; + width: 13em; + height: 20em; border-radius: 1em; padding: 1em; @@ -87,4 +87,8 @@ display: block; height: min-content; } +} + +.mini { + font-size: .75em; } \ No newline at end of file diff --git a/apollo-frontend/src/app/card/card.component.ts b/apollo-frontend/src/app/card/card.component.ts index 0d5ea01..1d91c60 100644 --- a/apollo-frontend/src/app/card/card.component.ts +++ b/apollo-frontend/src/app/card/card.component.ts @@ -28,8 +28,9 @@ export class CardComponent implements OnInit { }, ], }; + @Input() mini = false; - flipped: boolean = false; + flipped = false; constructor( private icons: IgxIconService, diff --git a/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.html b/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.html index 9499567..a6a236b 100644 --- a/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.html +++ b/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.html @@ -9,14 +9,21 @@
-
-
+
+
+
+
+
+
{{currQuestion.question}}
Нужен е отговор, за да продължите
- + {{choise}} @@ -25,24 +32,28 @@
-

Завършихте викторината

- Верни отговори: - -
-
Грешни отговори:
-
-
- {{answer.index}}. {{answer.question.question}}
-
Вашият отговор: {{answer.answer}}
-
Правилен отговор: {{answer.question.answer.correctChoise}}
+

Завършихте викторината

+ Верни отговори: + +
+
Грешни отговори:
+
+
+ {{answer.index}}. {{answer.question.question}}
+
+
Вашият отговор: {{answer.answer}} +
+
+
Правилен отговор: {{answer.question.answer.correctChoise}}
-
-

You've won this card:

- -
- - +
+
+

Вие спечелихте тази карта:

+ +
+ +
\ No newline at end of file diff --git a/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.scss b/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.scss index d16ead2..fbb1313 100644 --- a/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.scss +++ b/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.scss @@ -63,4 +63,17 @@ height: 1em; display: inline-block; } + + .photos { + display: flex; + justify-content: center; + gap: .5em; + margin: 1em 0; + .photo { + flex: 0 0 150px; + height: 150px; + background-size: cover; + background-position: center; + } + } } \ No newline at end of file diff --git a/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.ts b/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.ts index 5e34115..abf41cb 100644 --- a/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.ts +++ b/apollo-frontend/src/app/minigame-biotrivia/minigame-biotrivia.component.ts @@ -2,7 +2,7 @@ import { Component, ElementRef, NgZone, OnInit, ViewChild, ViewChildren } from ' import { IgxRadioComponent, IgxRadioGroupDirective } from 'igniteui-angular'; import { Observable, Subject } from 'rxjs'; import { Answer, Card, DbService, Question, Saved } from '../db.service'; -import { UserdataService } from '../userdata.service'; +import { Medal, UserdataService } from '../userdata.service'; @Component({ @@ -20,6 +20,7 @@ export class MinigameBiotriviaComponent implements OnInit { questions: Question[]; displayError = false; + player: HTMLAudioElement; guessedQuestions = 0; currQuestionN = 0; @@ -45,6 +46,8 @@ export class MinigameBiotriviaComponent implements OnInit { endGame(): void { this.stage = 'ongoing-ended'; + this.player.pause(); + this.player.remove(); const successRate = (this.guessedQuestions) / this.questions.length; @@ -61,6 +64,20 @@ export class MinigameBiotriviaComponent implements OnInit { this.wonCard = this.db.getCard(newCard); } + const id = this.db.getAllMinigames().filter(v => v.el.name === 'BioTrivia')[0].id; + const data = this.userdata.getMinigameUserdata(id); + + let medal = Medal.None; + + if (successRate > .5) medal = Medal.Bronze; + if (successRate > .75) medal = Medal.Silver; + if (successRate > .9) medal = Medal.Gold; + + if (data.medal < medal) data.medal = medal; + data.played = true; + + this.userdata.saveMinigameUserdata(id, data); + setTimeout(() => { this.endingElementRef.first.nativeElement.style.opacity = 0; this.animateElements( @@ -145,11 +162,17 @@ export class MinigameBiotriviaComponent implements OnInit { startGame(): void { if (this.stage !== 'starting') return; + this.player = document.createElement('audio'); + + this.player.src = '/assets/sound/music/biotrivia.wav'; + this.player.loop = true; + this.player.play(); + const startingEl = this.startingElementRef.first.nativeElement as HTMLElement; startingEl.style.position = 'absolute'; this.stage = 'starting-ongoing'; - this.questions = this.db.getRandomQuestions(1); + this.questions = this.db.getRandomQuestions(5); this.loadNextQuestion(); setTimeout(() => { @@ -197,7 +220,7 @@ export class MinigameBiotriviaComponent implements OnInit { this.stage = 'ongoing-ended'; - this.questions = this.db.getRandomQuestions(1); + this.questions = this.db.getRandomQuestions(5); this.displayError = false; diff --git a/apollo-frontend/src/app/minigame-card/minigame-card.component.ts b/apollo-frontend/src/app/minigame-card/minigame-card.component.ts index 32028f5..892c5bd 100644 --- a/apollo-frontend/src/app/minigame-card/minigame-card.component.ts +++ b/apollo-frontend/src/app/minigame-card/minigame-card.component.ts @@ -36,7 +36,7 @@ export class MinigameCardComponent implements OnInit { switch (this.minigameUserdata.medal) { case Medal.None: return 'никакъв'; case Medal.Bronze: return 'бронзов'; - case Medal.Silfer: return 'сребърен'; + case Medal.Silver: return 'сребърен'; case Medal.Gold: return 'златен'; } } diff --git a/apollo-frontend/src/app/mock.minigames.ts b/apollo-frontend/src/app/mock.minigames.ts index 0685c28..4782ae2 100644 --- a/apollo-frontend/src/app/mock.minigames.ts +++ b/apollo-frontend/src/app/mock.minigames.ts @@ -10,7 +10,7 @@ export const mock_minigames: Saved[] = [ } }, { - id: '0', + id: '1', el: { name: 'BioTrivia', url: '/minigames/biotrivia', diff --git a/apollo-frontend/src/app/mock.questions.ts b/apollo-frontend/src/app/mock.questions.ts index e4bafae..9ac5ffe 100644 --- a/apollo-frontend/src/app/mock.questions.ts +++ b/apollo-frontend/src/app/mock.questions.ts @@ -73,7 +73,7 @@ export const mock_questions: Saved[] = [ id: '4', el: { category: 'animals', - photoUrlsAbove: [ '/assets/images/questions/shtigga.png' ], + photoUrlsAbove: [ '/assets/images/questions/shtigga.jpg' ], question: 'Каква е причината за намаляването на бройките на Черният щъркел?', answer: { choises: [ @@ -137,7 +137,7 @@ export const mock_questions: Saved[] = [ id: '8', el: { category: 'animals', - photoUrlsAbove: [ '/assets/images/questions/kozirog.png' ], + photoUrlsAbove: [ '/assets/images/questions/kozirog.jpg' ], question: 'Вярно или невярно. През 2009г. е клониран Пиринейският козирог,който е изчезнал през 2000г.', answer: { choises: [ @@ -150,21 +150,6 @@ export const mock_questions: Saved[] = [ }, { id: '9', - el: { - category: 'animals', - photoUrlsAbove: [ '/assets/images/questions/kozirog.png' ], - question: 'Вярно или невярно. През 2009г. е клониран Пиринейският козирог,който е изчезнал през 2000г.', - answer: { - choises: [ - 'Вярно', - 'Грешно', - ], - correctChoise: 'Вярно', - } - } - }, - { - id: '10', el: { category: 'animals', photoUrlsAbove: [ '/assets/images/questions/ara.jpg' ], @@ -181,7 +166,7 @@ export const mock_questions: Saved[] = [ } }, { - id: '11', + id: '10', el: { category: 'recycling', photoUrlsAbove: [ '/assets/images/questions/teniski.png' ], @@ -198,7 +183,7 @@ export const mock_questions: Saved[] = [ } }, { - id: '12', + id: '11', el: { category: 'recycling', photoUrlsAbove: [ '/assets/images/questions/dunki.png' ], @@ -215,7 +200,7 @@ export const mock_questions: Saved[] = [ } }, { - id: '13', + id: '12', el: { category: 'recycling', photoUrlsAbove: [ '/assets/images/questions/bonishte.png' ], @@ -234,7 +219,7 @@ export const mock_questions: Saved[] = [ } }, { - id: '14', + id: '13', el: { category: 'recycling', photoUrlsAbove: [ '/assets/images/questions/kapeshto kranche.png' ], @@ -253,7 +238,7 @@ export const mock_questions: Saved[] = [ } }, { - id: '15', + id: '14', el: { category: 'recycling', photoUrlsAbove: [ '/assets/images/questions/roklq.png' ], @@ -271,10 +256,10 @@ export const mock_questions: Saved[] = [ } }, { - id: '16', + id: '15', el: { category: 'recycling', - photoUrlsAbove: [ '/assets/images/questions/roklq.png' ], + photoUrlsAbove: [ '/assets/images/questions/sudomiqlnq.png' ], question: 'Вярно или грешно. Миенето на чинии ръчно хаби почти толкова вода, колкото със съдомиялна машина.', answer: { choises: [ diff --git a/apollo-frontend/src/app/userdata.service.ts b/apollo-frontend/src/app/userdata.service.ts index b5d67da..9a5b557 100644 --- a/apollo-frontend/src/app/userdata.service.ts +++ b/apollo-frontend/src/app/userdata.service.ts @@ -2,10 +2,10 @@ import { Injectable } from '@angular/core'; import { Card, DbService } from './db.service'; export enum Medal { - None, - Bronze, - Silfer, - Gold, + None = 0, + Bronze = 1, + Silver = 2, + Gold = 3, } export interface MinigameUserdata { played: boolean; @@ -30,7 +30,7 @@ export class UserdataService { localStorage['minigame-' + id] = JSON.stringify(a); return a; } - return localStorage['minigame-' + id] as MinigameUserdata | undefined; + return JSON.parse(localStorage['minigame-' + id]); } getAllMinigameUserdata(): MinigameUserdata[] { const minigames: MinigameUserdata[] = []; @@ -62,7 +62,7 @@ export class UserdataService { saveMinigameUserdata(id: string, userdata: MinigameUserdata): void { const saved = {...userdata, cardId: id}; - localStorage['minigame-' + id] = saved; + localStorage['minigame-' + id] = JSON.stringify(saved); } addCard(id: string): void { let saved = this.getOwnedCardIds(); diff --git a/apollo-frontend/src/assets/images/questions/nosorog.png b/apollo-frontend/src/assets/images/questions/nosorog.png new file mode 100644 index 0000000..113437a Binary files /dev/null and b/apollo-frontend/src/assets/images/questions/nosorog.png differ diff --git a/apollo-frontend/src/assets/images/questions/ris.jpg b/apollo-frontend/src/assets/images/questions/ris.jpg index c2111cc..a7414b9 100644 Binary files a/apollo-frontend/src/assets/images/questions/ris.jpg and b/apollo-frontend/src/assets/images/questions/ris.jpg differ diff --git a/apollo-frontend/src/assets/images/questions/sudomiqlnq.png b/apollo-frontend/src/assets/images/questions/sudomiqlnq.png new file mode 100644 index 0000000..70b1fff Binary files /dev/null and b/apollo-frontend/src/assets/images/questions/sudomiqlnq.png differ diff --git a/apollo-frontend/src/assets/sound/music/biotrivia.wav b/apollo-frontend/src/assets/sound/music/biotrivia.wav new file mode 100644 index 0000000..31ac00e Binary files /dev/null and b/apollo-frontend/src/assets/sound/music/biotrivia.wav differ diff --git a/apollo-frontend/src/assets/sound/music/conveyorbin.wav b/apollo-frontend/src/assets/sound/music/conveyorbin.wav new file mode 100644 index 0000000..9d6a43e Binary files /dev/null and b/apollo-frontend/src/assets/sound/music/conveyorbin.wav differ diff --git a/apollo-frontend/src/assets/sound/music/triviablitz.wav b/apollo-frontend/src/assets/sound/music/triviablitz.wav new file mode 100644 index 0000000..f3db274 Binary files /dev/null and b/apollo-frontend/src/assets/sound/music/triviablitz.wav differ