Class Engine#
-
class Engine:
Base.Engine,Base.ModManager# Engine是整个FreeKill赖以运行的核心。
它包含了FreeKill涉及的所有武将、卡牌、游戏模式等等
同时也提供了许多常用的函数。
-
same_generals:
table<string,string[]># 所有同名武将组合
-
lords:
string[]# 所有主公武将,用于常备主公
-
all_card_names:
string[]# 有序的所有的卡牌牌名,顺序:基本牌(杀置顶),普通锦囊,延时锦囊,按副类别排序的装备
-
game_mode_disabled:
table<string,string[]># 游戏模式禁用的包
-
main_mode_list:
table<string,string[]># 主模式检索表
-
currentResponsePattern:
string# 要求用牌的种类(如要求用特定花色的桃···)
-
currentResponseReason:
string# 要求用牌的原因(如濒死,被特定牌指定,使用特定技能···)
-
kingdoms:
string[]# 总势力
-
kingdom_map:
table<string,string[]># 势力映射表
-
damage_nature:
table<any, [string,boolean]># 伤害映射表
-
poxi_methods:
table<string,PoxiSpec># “魄袭”框操作方法表
-
qml_marks:
table<string,QmlMarkSpec># 自定义Qml标记的表
-
mini_games:
table<string,MiniGameSpec># 自定义多人交互表
-
target_tips:
table<string,TargetTipSpec># 选择目标提示对应表
-
choose_general_rule:
table<string,ChooseGeneralSpec># 选将框操作方法表
-
skin_packages:
table<string,string[]># Skins
-
skill_keys:
table# key --> {SkillSkeleton.createSkill, integer}
-
reloadPackages:
function# Don't do this
-
addSkillType(
self:Engine,
key:string,
func:function,
priority?:integer
)# 注册技能(effect)类型
- Parameters:
key (
string) -- 技能类型名func (
function) -- 技能类型创建函数priority? (
integer) -- 优先级,默认为1
-
addGeneral(self:
Engine, general:General)# 加载一个武将到Engine中。
如果武将的trueName和name不同的话,那么也会将其加到同将清单中。
- Parameters:
general (
General) -- 要添加的武将
-
addGenerals(self:
Engine, generals:General[])# 加载一系列武将。
- Parameters:
generals (
General[]) -- 要加载的武将列表
-
appendKingdomMap(self:
Engine, kingdom:string, kingdoms:string[])# 为一个势力添加势力映射
这意味着原势力登场时必须改变为添加的几个势力之一(须存在)
- Parameters:
kingdom (
string) -- 原势力kingdoms (
string[]) -- 需要映射到的势力
-
getKingdomMap(self:
Engine, kingdom:string):string[]# 获得一个势力所映射到的势力,若没有,返回空集
- Parameters:
kingdom (
string) -- 原势力- Returns:
_1 (
string[]) -- 可用势力列表,可能是空的
-
addDamageNature(
self:Engine,
nature:string|number,
name:string,
can_chain?:boolean
)# 注册一个伤害
- Parameters:
nature (
string|number) -- 伤害IDname (
string) -- 属性伤害名can_chain? (
boolean) -- 是否可传导,默认可
-
getDamageNatures(self:
Engine):table<any, [string,boolean]># 返回伤害列表
- Returns:
_1 (
table<any, [string,boolean]>) -- 具体信息(伤害ID => {伤害名,是否可传导})
-
getDamageNature(self:
Engine, nature:string|number):table# 由伤害ID获得伤害属性
- Parameters:
nature (
string|number) -- 伤害ID- Returns:
_1 (
table) -- 具体信息({伤害名,是否可传导}),若不存在则为空
-
getDamageNatureName(self:
Engine, nature:string|number):string# 由伤害ID获得伤害名
- Parameters:
nature (
string|number) -- 伤害ID- Returns:
_1 (
string) -- 伤害名
-
canChain(self:
Engine, nature:string|number):boolean?# 判断一种伤害是否可传导
- Parameters:
nature (
string|number) -- 伤害ID
-
getSameGenerals(self:
Engine, name:string):string[]# 根据武将名称,获取它的同名武将。
注意以此法返回的同名武将列表不包含他自己。
- Parameters:
name (
string) -- 要查询的武将名字- Returns:
_1 (
string[]) -- 这个武将对应的同名武将列表
-
addCard(self:
Engine, card:Card)# 向Engine中加载一张卡牌。
卡牌在加载的时候,会被赋予一个唯一的id。(从1开始)
- Parameters:
card (
Card) -- 要加载的卡牌
-
cloneCard(
self:Engine,
name:string,
suit?:integer,
number?:integer
):Card# 根据牌名、花色、点数,复制一张牌。
返回的牌是一张虚拟牌。
- Parameters:
name (
string) -- 牌名suit? (
integer) -- 花色number? (
integer) -- 点数
-
addGameModes(self:
Engine, game_modes:GameMode[])# 向Engine中添加一系列游戏模式。
- Parameters:
game_modes (
GameMode[]) -- 要添加的游戏模式列表
-
addGameMode(self:
Engine, game_mode:GameMode)# 向Engine中添加一个游戏模式。
- Parameters:
game_mode (
GameMode) -- 要添加的游戏模式
-
addGameEvent(
self:Engine,
name:string,
pfunc?:function,
mfunc:function,
cfunc?:function,
efunc?:function
)# 向Engine中添加一个自定义事件。
- Parameters:
name (
string) -- 名称pfunc? (
function) -- prepare functionmfunc (
function) -- (main) functioncfunc? (
function) -- cleaner functionefunc? (
function) -- exit function
-
getGeneralsRandomly(
self:Engine,
num:integer,
generalPool?:General[],
except?:string[],
filter?: fun(g:General):boolean?
):General[]# 从已经开启的拓展包中,随机选出若干名武将。
对于同名武将不会重复选取。
如果符合条件的武将不够,那么就不能保证能选出那么多武将。
-
getAllCardIds(self:
Engine, except?:integer[]):integer[]# 获取当前已经启用的所有卡牌。
- Parameters:
except? (
integer[]) -- 特别指定要排除在外的id列表- Returns:
_1 (
integer[]) -- 所有卡牌id的列表
-
getAllCardNames(
self:Engine,
card_type:string,
true_name?:boolean,
is_derived?:boolean
):string[]# 获取加入游戏的卡的牌名(暂不考虑装备牌),常用于泛转化技能的interaction
- Parameters:
card_type (
string) -- 卡牌的类别,b 基本牌,t - 普通锦囊牌,d - 延时锦囊牌,e - 装备牌true_name? (
boolean) -- 是否使用真实卡名(即不区分【杀】、【无懈可击】等的具体种类)is_derived? (
boolean) -- 是否包括衍生牌,默认不包括
- Returns:
_1 (
string[]) -- 返回牌名列表
-
same_generals: