超时没选英雄时, 根据玩家可用英雄随机

This commit is contained in:
zhl 2021-02-04 18:45:53 +08:00
parent c0391829be
commit 5435b67daa
3 changed files with 14 additions and 5 deletions

View File

@ -44,9 +44,10 @@ export class OnJoinCommand extends Command<CardGameState, {
// end of set seat and team // end of set seat and team
let player = new Player(client.sessionId, idx, team); let player = new Player(client.sessionId, idx, team);
this.state.players.set(client.sessionId, player); this.state.players.set(client.sessionId, player);
let uinfo: {nickname: string, avatar: string, score: number, accountid: string} let uinfo: {nickname: string, avatar: string, score: number, accountid: string, heros: number[]}
if (accountId && accountId != 'robot') { if (accountId && accountId != 'robot') {
uinfo = await getUserInfo(accountId, !!this.room.match) uinfo = await getUserInfo(accountId, !!this.room.match)
player.heros = uinfo.heros.map(o => parseInt(o+''))
} else { } else {
const fc = global.$cfg.get(BaseConst.FORMULA); const fc = global.$cfg.get(BaseConst.FORMULA);
let low = (this.room.score * fc.get(70034).number / 100) | 0; let low = (this.room.score * fc.get(70034).number / 100) | 0;

View File

@ -44,11 +44,17 @@ export class PlayReadyCommand extends Command<CardGameState, {
let pickHeroTimeOut = function () { let pickHeroTimeOut = function () {
for (let [, curPlayer] of self.state.players) { for (let [, curPlayer] of self.state.players) {
if (curPlayer.state == PlayerStateConst.PLAYER_READY ) { if (curPlayer.state == PlayerStateConst.PLAYER_READY ) {
let heroMap: Map<number, HeroCfg> = global.$cfg.get(BaseConst.HERO); let heroId: number
let heroArr: HeroCfg[] = [...heroMap.values()]; if (curPlayer.heros) {
let hero: HeroCfg = heroArr.randomOne(); heroId = curPlayer.heros.randomOne()
} else {
let heroMap: Map<number, HeroCfg> = global.$cfg.get(BaseConst.HERO);
let heroArr: HeroCfg[] = [...heroMap.values()];
let hero: HeroCfg = heroArr.randomOne();
heroId = hero.id
}
let targetClient = self.room.getClient(curPlayer); let targetClient = self.room.getClient(curPlayer);
self.room.dispatcher.dispatch(new SelectHeroCommand(), {client: targetClient, heroId: hero.id}); self.room.dispatcher.dispatch(new SelectHeroCommand(), {client: targetClient, heroId});
} }
} }
} }

View File

@ -108,6 +108,8 @@ export class Player extends Schema {
*/ */
petData: Map<number, number> = new Map(); petData: Map<number, number> = new Map();
heros: number[];
/** /**
* , , () * , , ()
* key = id * key = id