diff --git a/src/rooms/commands/ChangeCardCommand.ts b/src/rooms/commands/ChangeCardCommand.ts index aa61863..3b85d86 100644 --- a/src/rooms/commands/ChangeCardCommand.ts +++ b/src/rooms/commands/ChangeCardCommand.ts @@ -7,6 +7,7 @@ import {PlayerStateConst} from "../../constants/PlayerStateConst"; import {singleton} from "../../common/Singleton"; import {GameEnv} from "../../cfg/GameEnv"; import {GameStateConst} from "../../constants/GameStateConst"; +import {NextTurnCommand} from "./NextTurnCommand"; /** * 开局换卡 @@ -37,11 +38,9 @@ export class ChangeCardCommand extends Command= this.room.maxClients) { // TODO:: 延后开始 根据 this.state.firstPlayer确定先手 // 正式开始游戏, 第一个玩家出牌 - let curClient = this.room.clients[0]; - this.state.currentTurn = curClient.sessionId; - this.state.round = 0; - this.room.addCard(curClient.sessionId, singleton(GameEnv).roundDrawNum, 0); this.state.gameState = GameStateConst.STATE_BEGIN_DRAW; + return [new NextTurnCommand()]; + } } diff --git a/src/rooms/commands/EatCardCommand.ts b/src/rooms/commands/EatCardCommand.ts index 7168b3d..5c72017 100644 --- a/src/rooms/commands/EatCardCommand.ts +++ b/src/rooms/commands/EatCardCommand.ts @@ -45,7 +45,13 @@ export class EatCardCommand extends Command { execute() { this.state.gameState = GameStateConst.STATE_BEGIN_DRAW; const sessionIds = [...this.state.players.keys()]; + if (!this.state.currentTurn) { + this.state.round = 0; + } // 如果上一轮是最后一个玩家, 则round + 1; if (this.state.currentTurn && sessionIds.indexOf(this.state.currentTurn) == (sessionIds.length - 1)) { @@ -26,6 +29,7 @@ export class NextTurnCommand extends Command { if (!player) { error('未找到玩家'); } + this.room.battleMan.onPlayerRoundStart(player); if (player.state == PlayerStateConst.PLAYER_DEAD) { return [new TurnEndCommand()]; } else { diff --git a/src/rooms/commands/TurnEndCommand.ts b/src/rooms/commands/TurnEndCommand.ts index 606f9f0..26638d4 100644 --- a/src/rooms/commands/TurnEndCommand.ts +++ b/src/rooms/commands/TurnEndCommand.ts @@ -14,6 +14,12 @@ export class TurnEndCommand extends Command { execute() { // @ts-ignore const sessionIds = [...this.state.players.keys()]; + if (this.state.currentTurn) { + let player = this.state.players.get(this.state.currentTurn); + if (player) { + this.room.battleMan.onPlayerRoundEnd(player); + } + } if (this.state.currentTurn && sessionIds.indexOf(this.state.currentTurn) == (sessionIds.length - 1)) { // 每n轮结束的时候结算一次 diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index b522295..20af84f 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -78,7 +78,7 @@ export class BattleHandler { switch(skill._data.targetid){ case GameUnitType.PLAYER: players.forEach((item:PlayerHandler)=>{ - lst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, item, GameUnitType.PLAYER)); + lst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, item, GameUnitType.PLAYER)); }); break; case GameUnitType.BATTLEUNIT: @@ -86,7 +86,7 @@ export class BattleHandler { case GameUnitType.PET: if(skill.isSingleTarget()){ if(param.dstpet && this.petIsValid(param.dstpet, players, skill._data.targetid)){ - lst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, + lst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, param.dstpet, param.dstpet._isHero? GameUnitType.HERO: GameUnitType.PET)); } }else{ @@ -150,12 +150,12 @@ export class BattleHandler { lst.push(obj); } break; - default: + default: break; } return lst; }; - + /** * 使用卡片 * @param obj @@ -176,7 +176,7 @@ export class BattleHandler { if(!ph){ return false; } - + let pt = obj.cardpoint; let cfg = CfgMan.findEffCardCfg(obj.card); @@ -203,7 +203,7 @@ export class BattleHandler { /** * 确认玩家是否有换效果牌技能 - * @param aplayer + * @param aplayer */ public hasTransEffCardSkill(aplayer: Player): boolean{ let ph = this.getPlayer(aplayer); @@ -222,7 +222,7 @@ export class BattleHandler { }; /** - * 吃牌/胡牌结束(暂时不用) + * 吃牌/胡牌结束(暂时不用)?? * @param aplayer :玩家 * @param linkcards :吃到的牌组信息 */ @@ -246,7 +246,7 @@ export class BattleHandler { }; /** - * 弃牌完成 + * 弃牌完成 ?? * @param aplayer :玩家 * @param fromplayer : 谁使玩家弃牌的(自己主动弃牌的传空) * @param dropcards : 弃掉的牌组 @@ -258,7 +258,7 @@ export class BattleHandler { }; /** - * 获取牌完成 + * 获取牌完成 ?? * @param aplayer :玩家 * @param fromplayer : 谁使玩家获得牌的(自己主动获得牌的传空) * @param dropcards : 获得的牌组 diff --git a/src/rooms/logic/Handler/PetHandler.ts b/src/rooms/logic/Handler/PetHandler.ts index 28b3fd9..cd4aa87 100644 --- a/src/rooms/logic/Handler/PetHandler.ts +++ b/src/rooms/logic/Handler/PetHandler.ts @@ -9,7 +9,7 @@ import { EnhanceEffectType, PowerValueType } from "../skill/SkillConst"; import { PlayerHandler } from "./PlayerHandler"; import { PetInfoMsg } from "../../../message/PetInfo"; import { SkillParam } from "../skill/SkillParam"; -import { RemovePetMsg } from "message/RemovePetMsg"; +import { RemovePetMsg } from "../../../message/RemovePetMsg"; export class PetHandler { _pet: Pet;