将扩展的Map.inc方法改为zinc

This commit is contained in:
zhl 2021-03-25 13:49:56 +08:00
parent a45e0665b5
commit 606cf3ae10
5 changed files with 13 additions and 13 deletions

View File

@ -888,7 +888,7 @@ interface Map<K, V> {
* @param key * @param key
* @param value * @param value
*/ */
inc?(key: K, value: V): this; zinc?(key: K, value: V): this;
/** /**
* Map中第一个值 * Map中第一个值
@ -898,7 +898,7 @@ interface Map<K, V> {
} }
Object.defineProperties(Map.prototype, { Object.defineProperties(Map.prototype, {
inc: { zinc: {
value: function<K, V> (key: K, value: V) { value: function<K, V> (key: K, value: V) {
if (typeof value == 'number') { if (typeof value == 'number') {
this.set(key, (this.get(key) || 0) + value ); this.set(key, (this.get(key) || 0) + value );

View File

@ -29,7 +29,7 @@ Object.defineProperties(Room.prototype, {
gameUtil.addCardToPlayer(this, player0, tmpCards, player1); gameUtil.addCardToPlayer(this, player0, tmpCards, player1);
let cardIds = tmpCards.map(card => card.id); let cardIds = tmpCards.map(card => card.id);
let client = this.getClient(player0); let client = this.getClient(player0);
player0.statData.inc(StateTypeEnum.SCOUNT, tmpCards.length); player0.statData.zinc(StateTypeEnum.SCOUNT, tmpCards.length);
//广播一个偷卡成功信息, 并私信一个偷卡详情给当前玩家 //广播一个偷卡成功信息, 并私信一个偷卡详情给当前玩家
let msgData = { let msgData = {
srcplayer, srcplayer,
@ -54,7 +54,7 @@ Object.defineProperties(Room.prototype, {
debugRoom(`giveUpCard add time: ${time}`); debugRoom(`giveUpCard add time: ${time}`);
let fromP = this.state.players.get(fromplayer); let fromP = this.state.players.get(fromplayer);
if (fromP.id != player.id){ if (fromP.id != player.id){
fromP.statData.inc(StateTypeEnum.GCOUNT, tmpCards.length); fromP.statData.zinc(StateTypeEnum.GCOUNT, tmpCards.length);
} }
let cardIds = tmpCards.map(card => card.id); let cardIds = tmpCards.map(card => card.id);
let msgData = { let msgData = {
@ -98,7 +98,7 @@ Object.defineProperties(Room.prototype, {
let player2 = fromplayer ? this.state.players.get(fromplayer) : null; let player2 = fromplayer ? this.state.players.get(fromplayer) : null;
let cards = gameUtil.drawCard(this, this.state.cardQueue, player, count, player2, extData); let cards = gameUtil.drawCard(this, this.state.cardQueue, player, count, player2, extData);
if (source == 1 && player2 && player2.id != player.id) { if (source == 1 && player2 && player2.id != player.id) {
player2.statData.inc(StateTypeEnum.ACOUNT, cards.length); player2.statData.zinc(StateTypeEnum.ACOUNT, cards.length);
} }
let client = this.getClient(dstplayer); let client = this.getClient(dstplayer);
let sData = { let sData = {
@ -130,8 +130,8 @@ Object.defineProperties(Room.prototype, {
let dstHp = player.hp + (hp | 0); let dstHp = player.hp + (hp | 0);
let sourceP = this.state.players.get(fromplayer); let sourceP = this.state.players.get(fromplayer);
if (sourceP && hp < 0) { if (sourceP && hp < 0) {
sourceP.statData.inc(StateTypeEnum.DMG, Math.min(-hp, player.hp)); sourceP.statData.zinc(StateTypeEnum.DMG, Math.min(-hp, player.hp));
player.statData.inc(StateTypeEnum.TDMG, Math.min(-hp, player.hp)); player.statData.zinc(StateTypeEnum.TDMG, Math.min(-hp, player.hp));
} }
debugRoom(`更新血量: ${player.id} ${player.hp} -> ${hp}, reason: ${reason}, from: ${fromplayer}`); debugRoom(`更新血量: ${player.id} ${player.hp} -> ${hp}, reason: ${reason}, from: ${fromplayer}`);
if (dstHp <= 0) { if (dstHp <= 0) {
@ -206,8 +206,8 @@ Object.defineProperties(Room.prototype, {
} }
debugRoom(`updatePetStat, val change, old: ${valOld}, new: ${valNew}`); debugRoom(`updatePetStat, val change, old: ${valOld}, new: ${valNew}`);
if (valNew < valOld) { if (valNew < valOld) {
player?.statData.inc(StateTypeEnum.DMG, valOld - valNew); player?.statData.zinc(StateTypeEnum.DMG, valOld - valNew);
targetPlayer?.statData.inc(StateTypeEnum.TDMG, valOld - valNew); targetPlayer?.statData.zinc(StateTypeEnum.TDMG, valOld - valNew);
} }
} }
} }
@ -247,7 +247,7 @@ Object.defineProperties(Room.prototype, {
if (typeof fromplayer == 'string') { if (typeof fromplayer == 'string') {
sourcePlayer = this.state.players.get(fromplayer); sourcePlayer = this.state.players.get(fromplayer);
if (sourcePlayer.id !== dstplayer.id) { if (sourcePlayer.id !== dstplayer.id) {
sourcePlayer.statData.inc(StateTypeEnum.CCOUNT, tmpCards.length); sourcePlayer.statData.zinc(StateTypeEnum.CCOUNT, tmpCards.length);
} }
} else { } else {
sourcePlayer = player; sourcePlayer = player;

View File

@ -182,7 +182,7 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
cardMsg.cards = cards cardMsg.cards = cards
this.room.send(client, 'eat_card_s2c', cardMsg) this.room.send(client, 'eat_card_s2c', cardMsg)
let delay = this.room.battleMan.onCardLinkOver(player, cardArr, targetUser) let delay = this.room.battleMan.onCardLinkOver(player, cardArr, targetUser)
player.statData.inc(StateTypeEnum.EATCOUNT, 1) player.statData.zinc(StateTypeEnum.EATCOUNT, 1)
await this.delay(delay) await this.delay(delay)
let time = new GameEnv().playerActTime * 1000 + player.extraTime let time = new GameEnv().playerActTime * 1000 + player.extraTime
this.state.updateGameState(GameStateConst.STATE_PICK_PET) this.state.updateGameState(GameStateConst.STATE_PICK_PET)

View File

@ -77,7 +77,7 @@ export class EatConfirmCommand extends Command<CardGameState, { timeUp: boolean
let currentPlayer = this.state.players.get(this.state.currentTurn); let currentPlayer = this.state.players.get(this.state.currentTurn);
currentPlayer.cardQueue.clear(); currentPlayer.cardQueue.clear();
player.cardQueue.clear(); player.cardQueue.clear();
player.statData.inc(StateTypeEnum.EATCOUNT, 1); player.statData.zinc(StateTypeEnum.EATCOUNT, 1);
player.cardQueue.push(this.state.cards.values().next().value.clone()); player.cardQueue.push(this.state.cards.values().next().value.clone());
for (let id of cards) { for (let id of cards) {
if (!player.cards.has(id + '')) { if (!player.cards.has(id + '')) {

View File

@ -377,7 +377,7 @@ let gameUtil = {
let teamMap: Map<number, number> = new Map() let teamMap: Map<number, number> = new Map()
for (let [, player] of state.players) { for (let [, player] of state.players) {
if (player.state != PlayerStateConst.PLAYER_DEAD) { if (player.state != PlayerStateConst.PLAYER_DEAD) {
teamMap.inc(player.team, 1) teamMap.zinc(player.team, 1)
} }
} }