MatchScoreData type

This commit is contained in:
Holly Stubbs 2022-11-27 15:59:43 +00:00
parent f08e34dc82
commit bb6d86ebbd
Signed by: tgpholly
GPG key ID: B8583C4B7D18119E
3 changed files with 27 additions and 7 deletions

View file

@ -0,0 +1,19 @@
export interface MatchScoreData {
time:number,
id:number,
count300:number,
count100:number,
count50:number,
countGeki:number,
countKatu:number,
countMiss:number,
totalScore:number,
maxCombo:number,
currentCombo:number,
perfect:boolean,
currentHp:number,
tagByte:number,
usingScoreV2:boolean,
comboPortion:number,
bonusPortion:number
}

View file

@ -1,5 +1,6 @@
import { Slot } from "../objects/Slot"; import { Slot } from "../objects/Slot";
import { User } from "../objects/User"; import { User } from "../objects/User";
import { MatchScoreData } from "./MatchScoreData";
export interface PlayerScore { export interface PlayerScore {
player:User, player:User,
@ -7,5 +8,5 @@ export interface PlayerScore {
score:number, score:number,
isCurrentlyFailed:boolean, isCurrentlyFailed:boolean,
hasFailed:boolean, hasFailed:boolean,
_raw:any _raw?:MatchScoreData
} }

View file

@ -10,6 +10,7 @@ import { Team } from "../enums/Team";
import { MatchStartSkipData } from "../interfaces/MatchStartSkipData"; import { MatchStartSkipData } from "../interfaces/MatchStartSkipData";
import { Mods } from "../enums/Mods"; import { Mods } from "../enums/Mods";
import { PlayerScore } from "../interfaces/PlayerScore"; import { PlayerScore } from "../interfaces/PlayerScore";
import { MatchScoreData } from "../interfaces/MatchScoreData";
const osu = require("osu-packet"); const osu = require("osu-packet");
@ -512,7 +513,7 @@ export class Match {
score: 0, score: 0,
isCurrentlyFailed: false, isCurrentlyFailed: false,
hasFailed: false, hasFailed: false,
_raw: {} _raw: undefined,
}); });
} }
} }
@ -586,7 +587,7 @@ export class Match {
} }
for (let _playerScore of this.playerScores) { for (let _playerScore of this.playerScores) {
if (_playerScore.player?.id === slot.player?.id) { if (_playerScore.player?.id === slot.player?.id && _playerScore._raw !== undefined) {
const score = _playerScore._raw; const score = _playerScore._raw;
queryData.push(`${slot.player?.id}|${score.totalScore}|${score.maxCombo}|${score.count300}|${score.count100}|${score.count50}|${score.countGeki}|${score.countKatu}|${score.countMiss}|${(score.currentHp == 254) ? 1 : 0}${(this.specialModes === 1) ? `|${slot.mods}` : ""}|${score.usingScoreV2 ? 1 : 0}${score.usingScoreV2 ? `|${score.comboPortion}|${score.bonusPortion}` : ""}`); queryData.push(`${slot.player?.id}|${score.totalScore}|${score.maxCombo}|${score.count300}|${score.count100}|${score.count50}|${score.countGeki}|${score.countKatu}|${score.countMiss}|${(score.currentHp == 254) ? 1 : 0}${(this.specialModes === 1) ? `|${slot.mods}` : ""}|${score.usingScoreV2 ? 1 : 0}${score.usingScoreV2 ? `|${score.comboPortion}|${score.bonusPortion}` : ""}`);
break; break;
@ -613,15 +614,14 @@ export class Match {
this.playerScores = undefined; this.playerScores = undefined;
} }
// TODO: Interface type for matchScoreData updatePlayerScore(user:User, matchScoreData:MatchScoreData) {
updatePlayerScore(user:User, matchScoreData:any) {
const osuPacketWriter = new osu.Bancho.Writer; const osuPacketWriter = new osu.Bancho.Writer;
if (user.matchSlot === undefined || this.playerScores === undefined) { if (user.matchSlot === undefined || user.matchSlot.player === undefined || this.playerScores === undefined) {
return; return;
} }
matchScoreData.id = user.matchSlot; matchScoreData.id = user.matchSlot.player.id;
// Update playerScores // Update playerScores
for (let playerScore of this.playerScores) { for (let playerScore of this.playerScores) {