This commit is contained in:
Kirill Ivlev 2024-11-27 13:38:18 +04:00
parent 29dc437cc8
commit 98fe79c396
5 changed files with 26 additions and 14 deletions

View file

@ -5,6 +5,7 @@
<h4>Game</h4>
<button class="btn btn-danger" (click)="clearGameQueue()">Clear queue</button>
<button class="btn btn-danger" (click)="simulateEndGamePoints()">Simulate endgame points</button>
<button class="btn btn-danger" (click)="simulateValidAnswer()">Simulate valid answer</button>
<h4>Versus</h4>
<button class="btn btn-danger" (click)="simulateVersus()">Begin versus</button>
<button class="btn btn-danger" (click)="resetAllVersusTasksAsIncompleted()">Mark all as uncompleted</button>

View file

@ -53,4 +53,8 @@ export class AdminTestingComponent implements OnInit, OnDestroy {
simulateEndGamePoints() {
this.testingApiService.simulateEndGamePoints().pipe(takeUntil(this.destroyed$)).subscribe(r => console.log(r));
}
simulateValidAnswer() {
this.testingApiService.simulateValidAnswer().pipe(takeUntil(this.destroyed$)).subscribe(r => console.log(r));
}
}

View file

@ -3,8 +3,10 @@
<div class="d-block justify-content-centers">
<h1 *ngIf="answerIsValid">🎉 Ура, правильный ответ!</h1>
<h1 *ngIf="!answerIsValid">А вот и нет! ❌</h1>
<div class="d-flex align-items-center justify-content-center">
<app-participant-item *ngIf="participant" [participant]="participant"></app-participant-item>
<div class="d-flex align-items-center justify-content-center flex-wrap">
<ng-container *ngFor="let participant of participants" >
<app-participant-item [participant]="participant"></app-participant-item>
</ng-container>
</div>
<h2 class="text-center" *ngIf="!answerIsValid">выйграл наказание</h2>
<audio *ngIf="!answerIsValid" src="assets/sfx/wrong_answer.mp3" autoplay></audio>

View file

@ -51,11 +51,10 @@ import { VoiceService } from "../../services/voice.service";
export class AnswerNotificationComponent implements OnInit, OnDestroy {
isShown = false;
answerIsValid = false;
participant: Participant;
timer: Observable<any>;
countdown = 10;
showCountdown = false;
announceAudio = true;
participants: Participant[] = [];
audioSrc: string;
private destroyed$ = new Subject<void>();
@ -68,20 +67,21 @@ export class AnswerNotificationComponent implements OnInit, OnDestroy {
takeUntil(this.destroyed$),
map(e => e.data)
).subscribe(d => this.showNotification(d.telegramId, false, d.validAnswer, null));
this.eventService.scoreChangedEvent.pipe(
takeUntil(this.destroyed$),
map(e => e.data),
).subscribe(e => {
if(e.telegramId === this.participant.telegramId) {
this.participant.score = e.newScore
}
});
// this.eventService.scoreChangedEvent.pipe(
// takeUntil(this.destroyed$),
// map(e => e.data),
// ).subscribe(e => {
// if(e.telegramId === this.participant.telegramId) {
// this.participant.score = e.newScore
// }
// });
}
showNotification(telegramId: number, validAnswer: boolean, validAnswerValue: string, note: string|null) {
this.countdown = validAnswer ? 10 : 5;
console.log(`showNotification`);
this.apiService.getParticipant(telegramId).subscribe(p => {
this.participant = p;
this.countdown = validAnswer ? 10 : 5;
this.participants.push(p);
this.isShown = true;
this.answerIsValid = validAnswer;
const template = validAnswer ? 'announce-valid' : 'announce-invalid';
@ -107,6 +107,7 @@ export class AnswerNotificationComponent implements OnInit, OnDestroy {
this.announceAudio = false;
this.countdown = 10;
this.apiService.continueGame().subscribe(r => console.log(r));
this.participants = [];
}
ngOnInit(): void {

View file

@ -28,4 +28,8 @@ export class TestingApiService {
simulateEndGamePoints() {
return this.httpClient.post(`${API_URL}/quiz/calculate-endgame-extrapoints`, {})
}
simulateValidAnswer() {
return this.httpClient.post(`${API_URL}/game/simulate-valid-answer`, {});
}
}