154 lines
3.8 KiB
TypeScript
154 lines
3.8 KiB
TypeScript
import {IMsg} from "./message/IMsg";
|
|
|
|
export {};
|
|
|
|
declare global {
|
|
namespace NodeJS {
|
|
interface Global {
|
|
NODE_ENV: string
|
|
ROOT_PATH: string
|
|
$cfg: any
|
|
}
|
|
}
|
|
}
|
|
|
|
import {Client, Room} from "colyseus";
|
|
import {PetInfoMsg} from "./message/PetInfo";
|
|
import {BattleHandler} from "./rooms/logic/Handler/BattleHandler";
|
|
import {SkillInfoData, SkillInfoMsg} from "./message/SkillInfo";
|
|
/**
|
|
* GeneralRoom 扩展方法
|
|
*/
|
|
declare module "colyseus" {
|
|
interface Room {
|
|
battleMan: BattleHandler;
|
|
|
|
/**
|
|
* 根据sessionId获取client
|
|
* @param sessionId
|
|
*/
|
|
getClient(sessionId: string): Client;
|
|
// >>>>>>>>> Begin of extend send message <<<<<<<<<<<<<
|
|
/**
|
|
* 广播玩家加入房间
|
|
* @param data
|
|
* @param options
|
|
*/
|
|
bUserJoin(data?: any, options?: any): void;
|
|
|
|
/**
|
|
* 给指定用户下发英雄选择结果
|
|
* @param client
|
|
* @param data
|
|
*/
|
|
sSelectHero(client: Client, data?: any):void;
|
|
|
|
/**
|
|
* 广播英雄选择结果
|
|
* @param data
|
|
*/
|
|
bSelectHero(data?: any):void;
|
|
|
|
/**
|
|
* 下发抽牌信息
|
|
* @param client
|
|
* @param data
|
|
*/
|
|
sDrawCard(client: Client, data?: any):void;
|
|
|
|
/**
|
|
* 广播游戏中的结算结果
|
|
* @param data
|
|
*/
|
|
bPartResult(data?: any): void;
|
|
|
|
/**
|
|
* 增加一个随从
|
|
* @param data
|
|
*/
|
|
bAddPet(data?: PetInfoMsg): void;
|
|
|
|
/**
|
|
* 施放一个技能
|
|
* @param data
|
|
*/
|
|
bCastSkill(data?: SkillInfoMsg): void;
|
|
|
|
/**
|
|
* 广播偷卡信息
|
|
* @param data
|
|
* @param options
|
|
*/
|
|
bStealCard(data?: any, options?: any):void;
|
|
|
|
/**
|
|
* 单独下发一个偷卡信息
|
|
* @param data
|
|
*/
|
|
sStealCard(data?: any):void;
|
|
|
|
/**
|
|
* 广播一个抽卡信息
|
|
* @param data
|
|
* @param options
|
|
*/
|
|
bDrawCard(data?: any, options?: any):void;
|
|
|
|
/**
|
|
* 广播一个弃卡信息
|
|
* @param data
|
|
* @param options
|
|
*/
|
|
bRemoveCard(data?: any, options?: any):void;
|
|
/**
|
|
* 发送给个人的消息列表
|
|
* @param client
|
|
* @param data
|
|
*/
|
|
sMsgQueue(client: Client, data: IMsg[]): void;
|
|
|
|
|
|
/**
|
|
* 广播的消息列表
|
|
* 例:
|
|
* let datas:IMsg[] = [];
|
|
* datas.push({errcode: 0, type: '消息类型', data: {pid: 1}});
|
|
* this.room.bMsgQueue(datas);
|
|
* @param datas
|
|
* @param options
|
|
*/
|
|
bMsgQueue(datas: IMsg[], options?: any): void;
|
|
|
|
|
|
// >>>>>>>>> End of extend send message <<<<<<<<<<<<<
|
|
|
|
// >>>>>>>>> Begin of extend functions <<<<<<<<<<<<<
|
|
|
|
/**
|
|
* 随机从一个玩家那里抽一定数量的卡, 并将抽卡信息广播出去
|
|
* @param srcplayer
|
|
* @param dstplayer 目标玩家
|
|
* @param count 抽卡数量
|
|
*/
|
|
drawCardFromPlayer(srcplayer: string, dstplayer: string, count: number) :number;
|
|
|
|
/**
|
|
* 弃卡, 并广播消息
|
|
* @param dstplayer 目标玩家
|
|
* @param count
|
|
*/
|
|
giveUpCard(dstplayer: string, count: number): boolean;
|
|
|
|
/**
|
|
* 补卡, 并广播消息
|
|
* @param dstplayer 目标玩家
|
|
* @param count 补多少张, 该值和max_count至少一个不为0
|
|
* @param max_count 补到多少张, 如果count和max_count都不为0, 则抽 Math.min(count, (max_count - 当前手牌数))
|
|
*/
|
|
addCard(dstplayer: string, count: number, max_count: number): boolean;
|
|
|
|
}
|
|
}
|
|
|
|
|