initial commit

This commit is contained in:
Chris Chen
2022-09-30 10:53:48 -07:00
commit 911b45739d
1026 changed files with 149872 additions and 0 deletions
@@ -0,0 +1,59 @@
import { ChangeDetectorRef, Component, NgZone, OnInit } from '@angular/core';
import { Player, AvalonStage } from '../../../entity/Avalon';
import { AvalonService } from '../../../services/avalon.service';
import { MsgBoxService } from '../../../services/msg-box.service';
import { ADIcon } from '../../../ui/alert-dlg/alert-dlg.component';
import { AvalonBase } from '../avalonBase';
@Component({
selector: 'avalon-pick-teammate',
templateUrl: './pick-teammate.component.html',
styleUrls: ['./pick-teammate.component.scss']
})
export class PickTeammateComponent extends AvalonBase implements OnInit {
constructor(
protected cdRef: ChangeDetectorRef,
protected avalonService: AvalonService,
private ngZone: NgZone,
private msgBoxService: MsgBoxService
) {
super(cdRef, avalonService);
}
ngOnInit(): void {
}
toggleTeamMate(player: Player, value: boolean) {
player.goingToQuest = value;
this.cdRef.detectChanges();
}
public pickTeamMate() {
let teamSize = this.players.filter(p => p.goingToQuest).length;
if (teamSize == this.currentQuest.teamSize) {
this.avalonService.data.stage = AvalonStage.TeamVote;
this.clearVoteStatus();
this.broadcastAll();
this.avalonService.applyCdChange$.next();
} else {
this.ngZone.run(_ => {
this.msgBoxService.show('任務編組錯誤!', `本次任務出場人數為 ${this.currentQuest.teamSize} 人!`, ADIcon.WARNING);
});
}
}
public changeLeader(newLeader: Player) {
let oldLeader = this.players.find(p => p.isLeader);
if (oldLeader) oldLeader.isLeader = false;
newLeader.isLeader = true;
for (let i = 0; i < this.players.length; i++) {
const player = this.players[i];
player.goingToQuest = false;
}
this.refreshAllInfo();
this.cdRef.detectChanges();
}
}