增加一些流程中对BattleHandler的回调
This commit is contained in:
parent
b130453718
commit
1febf4ee13
@ -7,6 +7,7 @@ import {PlayerStateConst} from "../../constants/PlayerStateConst";
|
|||||||
import {singleton} from "../../common/Singleton";
|
import {singleton} from "../../common/Singleton";
|
||||||
import {GameEnv} from "../../cfg/GameEnv";
|
import {GameEnv} from "../../cfg/GameEnv";
|
||||||
import {GameStateConst} from "../../constants/GameStateConst";
|
import {GameStateConst} from "../../constants/GameStateConst";
|
||||||
|
import {NextTurnCommand} from "./NextTurnCommand";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开局换卡
|
* 开局换卡
|
||||||
@ -37,11 +38,9 @@ export class ChangeCardCommand extends Command<CardGameState, { client: Client,
|
|||||||
if (finishCount >= this.room.maxClients) {
|
if (finishCount >= this.room.maxClients) {
|
||||||
// TODO:: 延后开始 根据 this.state.firstPlayer确定先手
|
// 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;
|
this.state.gameState = GameStateConst.STATE_BEGIN_DRAW;
|
||||||
|
return [new NextTurnCommand()];
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +45,13 @@ export class EatCardCommand extends Command<CardGameState, { client: Client, car
|
|||||||
player.cardSet.delete(id+'');
|
player.cardSet.delete(id+'');
|
||||||
}
|
}
|
||||||
this.state.gameState = GameStateConst.STATE_PICK_PET;
|
this.state.gameState = GameStateConst.STATE_PICK_PET;
|
||||||
//TODO:: 调用 onCardLinkReady()
|
let fromPlayer = this.state.players.get(this.state.currentTurn);
|
||||||
|
if (fromPlayer.id !== player.id) {
|
||||||
|
this.room.battleMan.onCardLinkReady(player, fromPlayer);
|
||||||
|
} else {
|
||||||
|
this.room.battleMan.onCardLinkReady(player);
|
||||||
|
}
|
||||||
|
|
||||||
// 成功后广播吃牌成功消息
|
// 成功后广播吃牌成功消息
|
||||||
this.room.broadcast('eat_card_s2c', {player: client.sessionId, errocode: 0, errmsg: ''})
|
this.room.broadcast('eat_card_s2c', {player: client.sessionId, errocode: 0, errmsg: ''})
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,9 @@ export class NextTurnCommand extends Command<CardGameState, {}> {
|
|||||||
execute() {
|
execute() {
|
||||||
this.state.gameState = GameStateConst.STATE_BEGIN_DRAW;
|
this.state.gameState = GameStateConst.STATE_BEGIN_DRAW;
|
||||||
const sessionIds = [...this.state.players.keys()];
|
const sessionIds = [...this.state.players.keys()];
|
||||||
|
if (!this.state.currentTurn) {
|
||||||
|
this.state.round = 0;
|
||||||
|
}
|
||||||
// 如果上一轮是最后一个玩家, 则round + 1;
|
// 如果上一轮是最后一个玩家, 则round + 1;
|
||||||
if (this.state.currentTurn
|
if (this.state.currentTurn
|
||||||
&& sessionIds.indexOf(this.state.currentTurn) == (sessionIds.length - 1)) {
|
&& sessionIds.indexOf(this.state.currentTurn) == (sessionIds.length - 1)) {
|
||||||
@ -26,6 +29,7 @@ export class NextTurnCommand extends Command<CardGameState, {}> {
|
|||||||
if (!player) {
|
if (!player) {
|
||||||
error('未找到玩家');
|
error('未找到玩家');
|
||||||
}
|
}
|
||||||
|
this.room.battleMan.onPlayerRoundStart(player);
|
||||||
if (player.state == PlayerStateConst.PLAYER_DEAD) {
|
if (player.state == PlayerStateConst.PLAYER_DEAD) {
|
||||||
return [new TurnEndCommand()];
|
return [new TurnEndCommand()];
|
||||||
} else {
|
} else {
|
||||||
|
@ -14,6 +14,12 @@ export class TurnEndCommand extends Command<CardGameState, {}> {
|
|||||||
execute() {
|
execute() {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const sessionIds = [...this.state.players.keys()];
|
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
|
if (this.state.currentTurn
|
||||||
&& sessionIds.indexOf(this.state.currentTurn) == (sessionIds.length - 1)) {
|
&& sessionIds.indexOf(this.state.currentTurn) == (sessionIds.length - 1)) {
|
||||||
// 每n轮结束的时候结算一次
|
// 每n轮结束的时候结算一次
|
||||||
|
@ -78,7 +78,7 @@ export class BattleHandler {
|
|||||||
switch(skill._data.targetid){
|
switch(skill._data.targetid){
|
||||||
case GameUnitType.PLAYER:
|
case GameUnitType.PLAYER:
|
||||||
players.forEach((item:PlayerHandler)=>{
|
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;
|
break;
|
||||||
case GameUnitType.BATTLEUNIT:
|
case GameUnitType.BATTLEUNIT:
|
||||||
@ -86,7 +86,7 @@ export class BattleHandler {
|
|||||||
case GameUnitType.PET:
|
case GameUnitType.PET:
|
||||||
if(skill.isSingleTarget()){
|
if(skill.isSingleTarget()){
|
||||||
if(param.dstpet && this.petIsValid(param.dstpet, players, skill._data.targetid)){
|
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));
|
param.dstpet, param.dstpet._isHero? GameUnitType.HERO: GameUnitType.PET));
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
@ -150,12 +150,12 @@ export class BattleHandler {
|
|||||||
lst.push(obj);
|
lst.push(obj);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return lst;
|
return lst;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 使用卡片
|
* 使用卡片
|
||||||
* @param obj
|
* @param obj
|
||||||
@ -176,7 +176,7 @@ export class BattleHandler {
|
|||||||
if(!ph){
|
if(!ph){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
let pt = obj.cardpoint;
|
let pt = obj.cardpoint;
|
||||||
|
|
||||||
let cfg = CfgMan.findEffCardCfg(obj.card);
|
let cfg = CfgMan.findEffCardCfg(obj.card);
|
||||||
@ -203,7 +203,7 @@ export class BattleHandler {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 确认玩家是否有换效果牌技能
|
* 确认玩家是否有换效果牌技能
|
||||||
* @param aplayer
|
* @param aplayer
|
||||||
*/
|
*/
|
||||||
public hasTransEffCardSkill(aplayer: Player): boolean{
|
public hasTransEffCardSkill(aplayer: Player): boolean{
|
||||||
let ph = this.getPlayer(aplayer);
|
let ph = this.getPlayer(aplayer);
|
||||||
@ -222,7 +222,7 @@ export class BattleHandler {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 吃牌/胡牌结束(暂时不用)
|
* 吃牌/胡牌结束(暂时不用)??
|
||||||
* @param aplayer :玩家
|
* @param aplayer :玩家
|
||||||
* @param linkcards :吃到的牌组信息
|
* @param linkcards :吃到的牌组信息
|
||||||
*/
|
*/
|
||||||
@ -246,7 +246,7 @@ export class BattleHandler {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 弃牌完成
|
* 弃牌完成 ??
|
||||||
* @param aplayer :玩家
|
* @param aplayer :玩家
|
||||||
* @param fromplayer : 谁使玩家弃牌的(自己主动弃牌的传空)
|
* @param fromplayer : 谁使玩家弃牌的(自己主动弃牌的传空)
|
||||||
* @param dropcards : 弃掉的牌组
|
* @param dropcards : 弃掉的牌组
|
||||||
@ -258,7 +258,7 @@ export class BattleHandler {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取牌完成
|
* 获取牌完成 ??
|
||||||
* @param aplayer :玩家
|
* @param aplayer :玩家
|
||||||
* @param fromplayer : 谁使玩家获得牌的(自己主动获得牌的传空)
|
* @param fromplayer : 谁使玩家获得牌的(自己主动获得牌的传空)
|
||||||
* @param dropcards : 获得的牌组
|
* @param dropcards : 获得的牌组
|
||||||
|
@ -9,7 +9,7 @@ import { EnhanceEffectType, PowerValueType } from "../skill/SkillConst";
|
|||||||
import { PlayerHandler } from "./PlayerHandler";
|
import { PlayerHandler } from "./PlayerHandler";
|
||||||
import { PetInfoMsg } from "../../../message/PetInfo";
|
import { PetInfoMsg } from "../../../message/PetInfo";
|
||||||
import { SkillParam } from "../skill/SkillParam";
|
import { SkillParam } from "../skill/SkillParam";
|
||||||
import { RemovePetMsg } from "message/RemovePetMsg";
|
import { RemovePetMsg } from "../../../message/RemovePetMsg";
|
||||||
|
|
||||||
export class PetHandler {
|
export class PetHandler {
|
||||||
_pet: Pet;
|
_pet: Pet;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user