Compare commits
No commits in common. "aec84dca5dcde8614f757a12a9c8a783e3ec04c3" and "7c3404acb031c4d8cc5e401406c6d280e6784251" have entirely different histories.
aec84dca5d
...
7c3404acb0
|
@ -34,8 +34,8 @@ export class AddGameComponent implements OnInit {
|
||||||
team: Team.CONTRA,
|
team: Team.CONTRA,
|
||||||
gamePoints: 0,
|
gamePoints: 0,
|
||||||
finalCardScore: 0,
|
finalCardScore: 0,
|
||||||
// foxesCaught: 1,
|
foxesCaught: 1,
|
||||||
// wonLastTrickWithCharlie: true
|
wonLastTrickWithCharlie: true
|
||||||
});
|
});
|
||||||
this.potentialPlayers.push({
|
this.potentialPlayers.push({
|
||||||
firebonkId: 2,
|
firebonkId: 2,
|
||||||
|
@ -384,18 +384,17 @@ export class AddGameComponent implements OnInit {
|
||||||
calculateCurrentScores(): void {
|
calculateCurrentScores(): void {
|
||||||
let gameScore: number = 0;
|
let gameScore: number = 0;
|
||||||
|
|
||||||
let winningTeam = this.getWinningTeamAndScore().team;
|
|
||||||
let winningTeamScore = this.getWinningTeamAndScore().score;
|
let winningTeamScore = this.getWinningTeamAndScore().score;
|
||||||
let unfulfilledAnnouncementPoints = this.checkUnfulfilledAnnouncements(winningTeam, winningTeamScore);
|
let winningTeam = this.getWinningTeamAndScore().team;
|
||||||
let isSoloPlay = this.checkIfSolo();
|
let unfulfilledAnnouncements = this.checkUnfulfilledAnnouncements(winningTeam, winningTeamScore);
|
||||||
|
let isSoloPlay = false;
|
||||||
|
|
||||||
// We are going to calculate the points for the winning team and then set all players points accordingly
|
// We are going to calculate the points for the winning team and then set all players points accordingly
|
||||||
|
|
||||||
if (unfulfilledAnnouncementPoints === 0) {
|
if(!unfulfilledAnnouncements) {
|
||||||
gameScore += this.calculateNormalScore(winningTeamScore, winningTeam);
|
gameScore += this.calculateNormalScore(winningTeamScore, winningTeam);
|
||||||
} else {
|
} else {
|
||||||
gameScore += unfulfilledAnnouncementPoints;
|
// TODO method to calculate game score for unfulfilled announcements
|
||||||
winningTeam = winningTeam === Team.RE ? Team.CONTRA : Team.RE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Double Score in case of announcement
|
// Double Score in case of announcement
|
||||||
|
@ -407,20 +406,15 @@ export class AddGameComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bonus points
|
// Bonus points
|
||||||
if (!isSoloPlay) {
|
if(!isSoloPlay) {
|
||||||
gameScore += this.getFinalFoxPoints(winningTeam);
|
gameScore += this.getFinalFoxPoints(winningTeam);
|
||||||
gameScore += this.getCharliePoints(winningTeam);
|
gameScore += this.getCharliePoints(winningTeam);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setGameScores(gameScore, winningTeam, isSoloPlay);
|
// TODO: Game score in case of a solo
|
||||||
|
this.setGameScores(gameScore, winningTeam);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculate the score according to card points and announcements in case of a "normal" game, so without unfulfilled announcements
|
|
||||||
* @param winningTeamScore
|
|
||||||
* @param winningTeam
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
private calculateNormalScore(winningTeamScore: number, winningTeam: Team): number {
|
private calculateNormalScore(winningTeamScore: number, winningTeam: Team): number {
|
||||||
let gameScore = 1; // 1 Point for Winning
|
let gameScore = 1; // 1 Point for Winning
|
||||||
|
|
||||||
|
@ -508,14 +502,10 @@ export class AddGameComponent implements OnInit {
|
||||||
* @param score The score to set
|
* @param score The score to set
|
||||||
* @param winningTeam The team that won
|
* @param winningTeam The team that won
|
||||||
*/
|
*/
|
||||||
setGameScores(score: number, winningTeam: Team, isSolo: boolean) {
|
setGameScores(score: number, winningTeam: Team) {
|
||||||
for (let player of this.actualPlayers) {
|
for (let player of this.actualPlayers) {
|
||||||
if (player.team === winningTeam) {
|
if (player.team === winningTeam) {
|
||||||
if(isSolo) {
|
player.gamePoints = score;
|
||||||
player.gamePoints = score * 3;
|
|
||||||
} else {
|
|
||||||
player.gamePoints = score;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
player.gamePoints = -score;
|
player.gamePoints = -score;
|
||||||
}
|
}
|
||||||
|
@ -567,8 +557,8 @@ export class AddGameComponent implements OnInit {
|
||||||
* @param winningTeam The winning team
|
* @param winningTeam The winning team
|
||||||
*/
|
*/
|
||||||
getCharliePoints(winningTeam: Team): number {
|
getCharliePoints(winningTeam: Team): number {
|
||||||
for (let player of this.actualPlayers) {
|
for(let player of this.actualPlayers) {
|
||||||
if (player.wonLastTrickWithCharlie) {
|
if(player.wonLastTrickWithCharlie) {
|
||||||
return player.team === winningTeam ? 1 : -1;
|
return player.team === winningTeam ? 1 : -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -576,60 +566,34 @@ export class AddGameComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the winning team has made announcements that have not been fulfilled.
|
* Checks if the winning team has made announcements that have not been fulfilled
|
||||||
* If so, returns the points that the "losing" team gets for these unfulfilled announcements
|
|
||||||
* @param normalWinningTeam The team that would have won under normal circumstances
|
* @param normalWinningTeam The team that would have won under normal circumstances
|
||||||
* @param normalWinningTeamScore The card score of said team
|
* @param normalWinningTeamScore The card score of said team
|
||||||
*/
|
*/
|
||||||
checkUnfulfilledAnnouncements(normalWinningTeam: Team, normalWinningTeamScore: number): number {
|
checkUnfulfilledAnnouncements(normalWinningTeam: Team, normalWinningTeamScore: number): boolean {
|
||||||
let gamePoints = 0;
|
if(normalWinningTeam === Team.RE) {
|
||||||
|
if(this.checkAnnouncementActive(announcements.Announcement.RE_NO_NINETY) && normalWinningTeamScore < 151) {
|
||||||
if (normalWinningTeam === Team.RE) {
|
return true;
|
||||||
if (this.checkAnnouncementActive(announcements.Announcement.RE_NO_NINETY) && normalWinningTeamScore < 151) {
|
|
||||||
gamePoints++;
|
|
||||||
}
|
}
|
||||||
if (this.checkAnnouncementActive(announcements.Announcement.RE_NO_SIXTY) && normalWinningTeamScore < 181) {
|
if(this.checkAnnouncementActive(announcements.Announcement.RE_NO_SIXTY) && normalWinningTeamScore < 181) {
|
||||||
gamePoints++;
|
return true;
|
||||||
}
|
}
|
||||||
if (this.checkAnnouncementActive(announcements.Announcement.RE_NO_THIRTY) && normalWinningTeamScore < 211) {
|
if(this.checkAnnouncementActive(announcements.Announcement.RE_NO_THIRTY) && normalWinningTeamScore < 211) {
|
||||||
gamePoints++;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (normalWinningTeam === Team.CONTRA) {
|
if(normalWinningTeam === Team.CONTRA) {
|
||||||
if (this.checkAnnouncementActive(announcements.Announcement.CONTRA_NO_NINETY) && normalWinningTeamScore < 151) {
|
if(this.checkAnnouncementActive(announcements.Announcement.CONTRA_NO_NINETY) && normalWinningTeamScore < 151) {
|
||||||
gamePoints++;
|
return true;
|
||||||
}
|
}
|
||||||
if (this.checkAnnouncementActive(announcements.Announcement.CONTRA_NO_SIXTY) && normalWinningTeamScore < 181) {
|
if(this.checkAnnouncementActive(announcements.Announcement.CONTRA_NO_SIXTY) && normalWinningTeamScore < 181) {
|
||||||
gamePoints++;
|
return true;
|
||||||
}
|
}
|
||||||
if (this.checkAnnouncementActive(announcements.Announcement.CONTRA_NO_THIRTY) && normalWinningTeamScore < 211) {
|
if(this.checkAnnouncementActive(announcements.Announcement.CONTRA_NO_THIRTY) && normalWinningTeamScore < 211) {
|
||||||
gamePoints++;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return gamePoints;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* _____ __
|
|
||||||
* / ___/____ / /___
|
|
||||||
* \__ \/ __ \/ / __ \
|
|
||||||
* ___/ / /_/ / / /_/ /
|
|
||||||
* /____/\____/_/\____/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks, according to the assigned Teams, if this is a solo play
|
|
||||||
*/
|
|
||||||
checkIfSolo(): boolean {
|
|
||||||
let numberOfElders: number = 0;
|
|
||||||
|
|
||||||
for(let player of this.actualPlayers) {
|
|
||||||
if(player.team === Team.RE) {
|
|
||||||
numberOfElders++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return numberOfElders === 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user