Class GameMode#

class GameMode: Object#

GameMode用来描述一个游戏模式。

可以参考欢乐斗地主。

name: string#

游戏模式名

minPlayer: integer#

最小玩家数

maxPlayer: integer#

最大玩家数

minComp: integer#

最小电脑数

maxComp: integer#

最大电脑数

rule: string?#

规则(通过技能完成,通常用来为特定角色及特定时机提供触发事件)

logic: (fun(): GameLogic)?#

逻辑(通过function完成,通常用来初始化、分配身份及座次)

whitelist: (fun(self: GameMode, pkg: Package): boolean? | string[])?#

白名单

blacklist: (fun(self: GameMode, pkg: Package): boolean? | string[])?#

黑名单

main_mode: string?#

主模式名(用于判断此模式是否为某模式的衍生)

game_name: string?#

哪款桌游?默认lunarltk

getWinner(self: GameMode, victim: ServerPlayer): string#

判断胜利者的函数,若不为"",则游戏存在胜利者(一般会结束游戏)

Parameters:

victim (ServerPlayer) -- 死者

Returns:

_1 (string) -- 胜者阵营

surrenderFunc(self: GameMode, playedTime: number): table#

判断什么时候可以投降的函数

Parameters:

playedTime (number) -- 游戏时长(单位:秒)

countInFunc(self: GameMode, room: Room): boolean#

判断是否计入场次的函数

Parameters:

room (Room) -- 游戏房间

buildDrawPile(self: GameMode): integer[], table#

决定初始牌堆以及初始游戏外区域的函数 需要返回两个数组,一个是牌堆,一个是游戏外(void)

getAdjustedProperty(self: GameMode, player: ServerPlayer): table#

根据模式设定修改角色的属性。例如,至少5人局时主公+1血和上限

Returns:

_1 (table) -- 返回表,键为调整的角色属性,值为调整后的属性

deathRewardAndPunish(
    self: GameMode,
    victim: ServerPlayer,
    killer?: ServerPlayer
)#

执行死亡奖惩

Parameters:
friendEnemyJudge(
    self: GameMode,
    targetOne: Player | ServerPlayer,
    targetTwo: Player | ServerPlayer
): boolean#

敌友身份判断

Parameters: