mirror of
https://github.com/smogon/pokemon-showdown.git
synced 2026-03-21 17:25:10 -05:00
Send Elo rating in rated battles (#5595)
This commit is contained in:
parent
aea0d09cac
commit
ade29349c6
|
|
@ -638,8 +638,10 @@ class Ladder extends LadderStore {
|
|||
Rooms.createBattle(ready1.formatid, {
|
||||
p1: user1,
|
||||
p1team: ready1.team,
|
||||
p1rating: ready1.rating,
|
||||
p2: user2,
|
||||
p2team: ready2.team,
|
||||
p2rating: ready2.rating,
|
||||
rated: Math.min(ready1.rating, ready2.rating),
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -505,11 +505,11 @@ class RoomBattle extends RoomGames.RoomGame {
|
|||
|
||||
this.listen();
|
||||
|
||||
this.addPlayer(options.p1, options.p1team || '');
|
||||
this.addPlayer(options.p2, options.p2team || '');
|
||||
this.addPlayer(options.p1, options.p1team || '', options.p1rating);
|
||||
this.addPlayer(options.p2, options.p2team || '', options.p2rating);
|
||||
if (this.playerCap > 2) {
|
||||
this.addPlayer(options.p3, options.p3team || '');
|
||||
this.addPlayer(options.p4, options.p4team || '');
|
||||
this.addPlayer(options.p3, options.p3team || '', options.p3rating);
|
||||
this.addPlayer(options.p4, options.p4team || '', options.p4rating);
|
||||
}
|
||||
this.timer = new RoomBattleTimer(this);
|
||||
if (Config.forcetimer) this.timer.start();
|
||||
|
|
@ -960,8 +960,9 @@ class RoomBattle extends RoomGames.RoomGame {
|
|||
*
|
||||
* @param {User | null} user
|
||||
* @param {string?} team
|
||||
* @param {number} rating
|
||||
*/
|
||||
addPlayer(user, team) {
|
||||
addPlayer(user, team, rating = 0) {
|
||||
// TypeScript bug: no `T extends RoomGamePlayer`
|
||||
const player = /** @type {RoomBattlePlayer} */ (super.addPlayer(user));
|
||||
if (!player) return null;
|
||||
|
|
@ -973,8 +974,9 @@ class RoomBattle extends RoomGames.RoomGame {
|
|||
name: player.name,
|
||||
avatar: user ? '' + user.avatar : '',
|
||||
team: team,
|
||||
rating: Math.round(rating),
|
||||
};
|
||||
this.stream.write(`>player ${slot} ` + JSON.stringify(options));
|
||||
this.stream.write(`>player ${slot} ${JSON.stringify(options)}`);
|
||||
}
|
||||
|
||||
if (user) this.room.auth[user.userid] = Users.PLAYER_SYMBOL;
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ Receiving messages
|
|||
|
||||
The beginning of a battle will look something like this:
|
||||
|
||||
|player|p1|Anonycat|60
|
||||
|player|p2|Anonybird|113
|
||||
|player|p1|Anonycat|60|1200
|
||||
|player|p2|Anonybird|113|1300
|
||||
|teamsize|p1|4
|
||||
|teamsize|p2|5
|
||||
|gametype|doubles
|
||||
|
|
@ -39,7 +39,7 @@ The beginning of a battle will look something like this:
|
|||
|
|
||||
|start
|
||||
|
||||
`|player|PLAYER|USERNAME|AVATAR`
|
||||
`|player|PLAYER|USERNAME|AVATAR|RATING`
|
||||
|
||||
> Player details.
|
||||
>
|
||||
|
|
@ -48,6 +48,7 @@ The beginning of a battle will look something like this:
|
|||
> - `USERNAME` is the username
|
||||
> - `AVATAR` is the player's avatar identifier (usually a number, but other
|
||||
> values can be used for custom avatars)
|
||||
> - `RATING` is the player's Elo rating in the format they're playing. This will only be displayed in rated battles and when the player is first introduced otherwise it's blank
|
||||
|
||||
`|teamsize|PLAYER|NUMBER`
|
||||
|
||||
|
|
|
|||
|
|
@ -3005,7 +3005,7 @@ export class Battle extends Dex.ModdedDex {
|
|||
}
|
||||
if (!didSomething) return;
|
||||
this.inputLog.push(`>player ${slot} ` + JSON.stringify(options));
|
||||
this.add('player', side.id, side.name, side.avatar);
|
||||
this.add('player', side.id, side.name, side.avatar, options.rating || '');
|
||||
this.start();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1208,6 +1208,7 @@ interface TypeInfo extends Readonly<TypeData> {
|
|||
interface PlayerOptions {
|
||||
name?: string;
|
||||
avatar?: string;
|
||||
rating?: number;
|
||||
team?: PokemonSet[] | string | null;
|
||||
seed?: PRNGSeed;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user