Class Card#
-
class Card:
Object# Card记录了FreeKill所有卡牌的基础信息。
它包含了ID、所属包、牌名、花色、点数等等
-
id:
integer# 标志某一张卡牌唯一的数字,从1开始。若此牌是虚拟牌,则其id为0。服务器启动时为卡牌赋予ID。
-
name:
string# 卡牌的名字
-
suit:
integer# 卡牌的花色(四色及无花色)
-
number:
integer# 卡牌的点数(0到K)
-
trueName:
string# 卡牌的真名,一般用于分辨杀。
-
color:
integer# 卡牌的颜色(分为黑色、红色、无色)
-
type:
integer# 卡牌的种类(基本牌、锦囊牌、装备牌)
-
sub_type:
integer# 卡牌的子种类(例如延时锦囊牌、武器、防具等)
-
area:
integer# 卡牌所在区域(例如手牌区,判定区,装备区,牌堆,弃牌堆···)
-
mark:
table<string,integer># 当前拥有的所有标记,用烂了
-
subcards:
integer[]# 子卡ID表
-
fake_subcards:
integer[]# 伪子卡ID表,用于活墨类转化和飞刀判定
-
skillName:
string# 虚拟牌的技能名 for virtual cards
-
skillNames:
string[]# 虚拟牌的技能名们(一张虚拟牌可能有多个技能名,如芳魂、龙胆、朱雀羽扇)
-
skill:
CardSkill# 技能(用于实现卡牌效果)
-
special_skills:
string[]?# 衍生技能,如重铸
-
is_damage_card:
boolean# 是否为会造成伤害的牌
-
multiple_targets:
boolean# 是否为指定多个目标的牌
-
stackable_delayed:
boolean# 是否为可堆叠的延时锦囊牌
-
is_passive:
boolean?# 是否只能在响应时使用或打出
-
is_derived:
boolean?# 判断是否为衍生牌
-
virt_id:
integer# 虚拟牌的特殊id,默认为0
-
extra_data:
table?# 保存其他信息的键值表,如“合纵”、“应变”、“赠予”等
-
Spade:
integer# 黑桃
-
Club:
integer# 梅花
-
Heart:
integer# 红桃
-
Diamond:
integer# 方块
-
NoSuit:
integer# 无花色
-
Black:
integer# 黑色
-
Red:
integer# 红色
-
NoColor:
integer# 无色
-
TypeBasic:
integer# 基本牌
-
TypeTrick:
integer# 锦囊牌
-
TypeEquip:
integer# 装备牌
-
SubtypeNone:
integer# 无子类型
-
SubtypeDelayedTrick:
integer# 延时锦囊牌
-
SubtypeWeapon:
integer# 武器牌
-
SubtypeArmor:
integer# 防具牌
-
SubtypeDefensiveRide:
integer# 防御坐骑牌
-
SubtypeOffensiveRide:
integer# 进攻坐骑牌
-
SubtypeTreasure:
integer# 宝物牌
-
Unknown:
integer# 未知区域
-
PlayerHand:
integer# 手牌区
-
PlayerEquip:
integer# 装备区
-
PlayerJudge:
integer# 判定区
-
PlayerSpecial:
integer# 武将牌上/旁
-
Processing:
integer# 处理区
-
DrawPile:
integer# 牌堆
-
DiscardPile:
integer# 弃牌堆
-
Void:
integer# 移出游戏区
-
clone(self:
Card, suit?:integer, number?:integer):Card# 克隆特定卡牌并赋予花色与点数。
会将skill/special_skills/equip_skill继承到克隆牌中。
- Parameters:
suit? (
integer) -- 克隆后的牌的花色number? (
integer) -- 克隆后的牌的点数
- Returns:
_1 (
Card) -- 产品
-
addSubcard(self:
Card, card:integer|Card)# 将一张子卡牌加入某张牌中(是addSubcards的基础函数,常用addSubcards)。
- Parameters:
card (
integer|Card) -- 要加入的子卡
-
addSubcards(self:
Card, cards:Card[] |integer[])# 将一批子卡牌加入某张牌中(常用于将这批牌弃置/交给某个角色···)。
- Parameters:
cards (
Card[] |integer[]) -- 要加入的子卡列表
-
addFakeSubcard(self:
Card, card:integer|Card)# 将一张子卡加入某张牌的虚拟子卡,用于活墨类转化和飞刀判定
- Parameters:
card (
integer|Card) -- 要加入的虚拟子卡
-
addFakeSubcards(self:
Card, cards:Card[] |integer[])# 将一批子卡加入某张牌的虚拟子卡,用于活墨类转化和飞刀判定
- Parameters:
cards (
Card[] |integer[]) -- 要加入的虚拟子卡列表
-
getSuitString(self:
Card, symbol?:boolean):string# 获取卡牌花色并返回花色文字描述(如``spade``黑桃、``heart``红桃、``club``梅花、``diamond``方块)或者符号(如♠♥♣♦,带颜色)。
- Parameters:
symbol? (
boolean) -- 是否以符号形式显示- Returns:
_1 (
string) -- 描述花色的字符串
-
getColorString(self:
Card):string# 获取卡牌颜色并返回点数颜色描述(例如``black``黑色/``red``红色/``nocolor``无色)。
- Returns:
_1 (
string) -- 描述颜色的字符串
-
getNumberStr(self:
Card, num?:integer):string# 获取卡牌点数并返回点数文字描述(仅限A/J/Q/K/X)。
- Parameters:
num? (
integer) -- 当你只想翻译点数为文字时(优先检查,请注意)
-
getSuitCompletedString(self:
Card, symbol:boolean):string# 获取卡牌的完整点数(花色+点数),如(黑桃A/♠A)。
- Parameters:
symbol (
boolean) -- 是否以符号形式显示花色- Returns:
_1 (
string) -- 完整点数(字符串)
-
addMark(self:
Card, mark:string, count:integer)# 为卡牌赋予Mark。
mark name and UI: 'xxx': invisible mark '@mark': mark with extra data (maybe string or number) '@@mark': mark without data
- Parameters:
mark (
string) -- 标记count (
integer) -- 为标记赋予的数量
-
removeMark(self:
Card, mark:string, count:integer)# 为卡牌移除Mark。
- Parameters:
mark (
string) -- 标记count (
integer) -- 为标记删除的数量
-
setMark(self:
Card, mark:string, count:any)# 为卡牌设置Mark为指定值。设置为0时会清空标记。若需要通知其他玩家,请使用Room:setCardMark
@开头的为可见标记,其余为隐藏标记。
- Parameters:
mark (
string) -- 标记名词count (
any) -- 标记值
-
hasMark(self:
Card, mark:string, suffixes?:string[]): [any,integer] |nil# 检索角色是否拥有指定Mark,考虑后缀(字符串find)。返回检索到的的第一个标记值与标记名
- Parameters:
mark (
string) -- 标记名suffixes? (
string[]) -- 后缀,默认为```MarkEnum.CardTempMarkSuffix```
- Returns:
_1 ([
any,integer] |nil) -- 返回一个表,包含标记值与标记名,或nil
-
compareSuitWith(self:
Card, anotherCard:Card, diff?:boolean):boolean# 比较两张卡牌的花色是否相同(无花色牌不与其他任何牌相同)
- Parameters:
anotherCard (
Card) -- 另一张卡牌diff? (
boolean) -- 比较二者不同
- Returns:
_1 (
boolean) -- 返回比较结果
-
compareColorWith(self:
Card, anotherCard:Card, diff?:boolean):boolean# 比较两张卡牌的颜色是否相同(无颜色牌不与其他任何牌相同)
- Parameters:
anotherCard (
Card) -- 另一张卡牌diff? (
boolean) -- 比较二者不同
- Returns:
_1 (
boolean) -- 返回比较结果
-
compareNumberWith(self:
Card, anotherCard:Card, diff?:boolean):boolean# 比较两张卡牌的点数是否相同
- Parameters:
anotherCard (
Card) -- 另一张卡牌diff? (
boolean) -- 比较二者不同
- Returns:
_1 (
boolean) -- 返回比较结果
-
getFixedTargets(self:
Card, player:Player, extra_data?:UseExtraData):Player[] |nil# 获得使用此牌的固定目标,仅有不能自由选择目标的牌会有固定目标。即桃、无中、装备、AOE等
-
getAvailableTargets(
self:Card,
player:Player,
extra_data?:table|UseExtraData
):Player[]# 获得使用一张牌的所有合法目标角色表。用于判断一张必须使用的牌能否使用
eg.杀返回攻击范围内***所有***角色,桃返回自己,濒死桃返回目标濒死角色,借刀杀人***返回目标角色不返回子目标***
-
getDefaultTarget(
self:Card,
player:Player,
extra_data?:table|UseExtraData
):Player[]# 获得使用一张牌的一个可能的指定方式。
用于判断一张必须使用的牌能否使用,或给一张必须使用的牌添加默认目标。
eg.杀返回攻击范围内***一个***合法目标,借刀杀人返回***一对***角色,南蛮入侵返回***所有***其他角色
-
id: