iplr
Version:
Node package for IPLR.
67 lines (53 loc) • 2.26 kB
JavaScript
import Squad from './Squad';
import TeamInning from './TeamInning';
export default class Match {
constructor (season, jo) {
this.season = season;
this.year = season.year;
this.tournament = season.tournament;
this.seasonIndex = season.matches.length;
this.playoff = false;
this.final = false;
this.jo = jo;
this.team_a = this.tournament.teams[jo.teams[0].team];
this.team_b = this.tournament.teams[jo.teams[1].team];
this.ground = this.tournament.grounds[jo.meta.ground];
this.winner = null;
this.loser = null;
if (jo.meta.outcome === "A") {
this.winner = this.team_a;
this.loser = this.team_b;
} else if (jo.meta.outcome === "B") {
this.winner = this.team_b;
this.loser = this.team_a;
}
this.bdStyle = this.winner && this.winner.bdStyle;
this.bgStyle = this.winner && this.winner.bgStyle;
this.fgStyle = this.winner && this.winner.fgStyle;
this.order = jo.meta.order;
this.squad_a = new Squad(this, jo.teams[0], this.team_a, this.team_b);
this.squad_b = new Squad(this, jo.teams[1], this.team_b, this.team_a);
this.squad_a.oppositionSquad = this.squad_b;
this.squad_b.oppositionSquad = this.squad_a;
this.players = this.squad_a.members.concat(this.squad_b.members);
this.players.forEach(player => player.addMatch(this));
if (this.order[0] === 0) {
this.inning_a = new TeamInning(this.squad_a, jo.innings[0]);
this.inning_b = new TeamInning(this.squad_b, jo.innings[1]);
} else {
this.inning_a = new TeamInning(this.squad_a, jo.innings[1]);
this.inning_b = new TeamInning(this.squad_b, jo.innings[0]);
}
this.firstInning = (this.order[0] === 0) ? this.inning_a : this.inning_b;
this.secondInning = (this.order[0] === 0) ? this.inning_b : this.inning_a;
this.players = [...this.squad_a.members, ...this.squad_b.members];
this.battingPerformances = [...this.inning_a.batsmen, ...this.inning_b.batsmen];
this.bowlingPerformances = [...this.inning_a.bowlers, ...this.inning_b.bowlers];
}
getLink = () => `/${this.year}/${this.seasonIndex+1}`;
getName4CL = () => `[${this.season.year}] ${this.team_a.abb} vs ${this.team_b.abb}`;
consoleLog () {
if (this.firstInning) this.firstInning.consoleLog();
if (this.secondInning) this.secondInning.consoleLog();
}
}