card_svr/src/global.d.ts
2020-12-08 16:40:20 +08:00

185 lines
4.7 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";
import {PartResultMsg} from "./message/PartResult";
import {RemovePetMsg} from "./message/RemovePetMsg";
import {Dispatcher} from "@colyseus/command";
import {Delayed} from "@gamestdio/timer/lib/Delayed";
import {Player} from "./rooms/schema/Player";
/**
* GeneralRoom 扩展方法
*/
declare module "colyseus" {
interface Room {
battleMan: BattleHandler;
dispatcher: Dispatcher;
mainClock: Delayed;
/**
* 根据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
*/
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 data
* @param options
*/
bRemovePet(data?: RemovePetMsg, options?: any): void;
/**
* 广播游戏进行中的决斗结果
* @param data
* @param options
*/
bPartResult(data?: PartResultMsg, options?: any): void;
/**
* 广播游戏最终结果
* @param data
* @param options
*/
bGameResult(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 - 当前手牌数))
* @param source 0: 正常抽卡, 1: 技能
* @param fromplayer
*/
addCard(dstplayer: string, count: number, max_count: number, source?: number, fromplayer?: string): boolean;
/**
* 更新玩家血量
* @param dstplayer
* @param hp
*/
updateHp(dstplayer: string, hp: number): number;
}
}