插件哟,boolean就让他默认可以为nil好不好呀

This commit is contained in:
notify 2023-08-11 03:30:59 +08:00
parent aa05984522
commit 32844bc394
11 changed files with 107 additions and 106 deletions

View File

@ -137,9 +137,9 @@ on_trigger在非常多情况下仅仅只是简单的执行一下doCost而已
---@field moveReason CardMoveReason ---@field moveReason CardMoveReason
---@field proposer integer ---@field proposer integer
---@field skillName string|null ---@field skillName string|null
---@field moveVisible boolean|null ---@field moveVisible bool
---@field specialName string|null ---@field specialName string|null
---@field specialVisible boolean|null ---@field specialVisible bool
moveCards函数的第一步是将参数中所有的moveInfo都转化为CardsMoveStruct。CardsMoveStruct与CardsMoveInfo几乎没有区别除了它将每一张牌都单独划分出了一个moveinfo之外。这么做是为了在同时移动来源不同的牌的时候让牌能该明牌明牌该暗牌暗牌。 moveCards函数的第一步是将参数中所有的moveInfo都转化为CardsMoveStruct。CardsMoveStruct与CardsMoveInfo几乎没有区别除了它将每一张牌都单独划分出了一个moveinfo之外。这么做是为了在同时移动来源不同的牌的时候让牌能该明牌明牌该暗牌暗牌。

View File

@ -24,7 +24,7 @@
---@field public special_skills string[] | nil @ 衍生技能,如重铸 ---@field public special_skills string[] | nil @ 衍生技能,如重铸
---@field public is_damage_card boolean @ 是否为会造成伤害的牌 ---@field public is_damage_card boolean @ 是否为会造成伤害的牌
---@field public multiple_targets boolean @ 是否为指定多个目标的牌 ---@field public multiple_targets boolean @ 是否为指定多个目标的牌
---@field public is_derived boolean|null @ 判断是否为衍生牌 ---@field public is_derived bool @ 判断是否为衍生牌
local Card = class("Card") local Card = class("Card")
---@alias Suit integer ---@alias Suit integer
@ -238,7 +238,7 @@ function Card:matchPattern(pattern)
end end
--- 获取卡牌花色并返回花色文字描述(如 黑桃、红桃、梅花、方块)或者符号(如♠♥♣♦,带颜色)。 --- 获取卡牌花色并返回花色文字描述(如 黑桃、红桃、梅花、方块)或者符号(如♠♥♣♦,带颜色)。
---@param symbol boolean|nil @ 是否以符号形式显示 ---@param symbol bool @ 是否以符号形式显示
---@return string @ 描述花色的字符串 ---@return string @ 描述花色的字符串
function Card:getSuitString(symbol) function Card:getSuitString(symbol)
local suit = self.suit local suit = self.suit
@ -430,7 +430,7 @@ end
--- 比较两张卡牌的花色是否相同 --- 比较两张卡牌的花色是否相同
---@param anotherCard Card @ 另一张卡牌 ---@param anotherCard Card @ 另一张卡牌
---@param diff boolean|nil @ 比较二者相同还是不同 ---@param diff bool @ 比较二者相同还是不同
---@return boolean 返回比较结果 ---@return boolean 返回比较结果
function Card:compareSuitWith(anotherCard, diff) function Card:compareSuitWith(anotherCard, diff)
if self ~= anotherCard and table.contains({ self.suit, anotherCard.suit }, Card.NoSuit) then if self ~= anotherCard and table.contains({ self.suit, anotherCard.suit }, Card.NoSuit) then

View File

@ -397,7 +397,7 @@ end
--- 根据id返回相应的卡牌。 --- 根据id返回相应的卡牌。
---@param id integer @ 牌的id ---@param id integer @ 牌的id
---@param ignoreFilter boolean|nil @ 是否要无视掉锁定视为技,直接获得真牌 ---@param ignoreFilter bool @ 是否要无视掉锁定视为技,直接获得真牌
---@return Card @ 这个id对应的卡牌 ---@return Card @ 这个id对应的卡牌
function Engine:getCardById(id, ignoreFilter) function Engine:getCardById(id, ignoreFilter)
if id == nil then return nil end if id == nil then return nil end

View File

@ -103,8 +103,8 @@ end
--- 设置角色、体力、技能。 --- 设置角色、体力、技能。
---@param general General @ 角色类型 ---@param general General @ 角色类型
---@param setHp boolean|nil @ 是否设置体力 ---@param setHp bool @ 是否设置体力
---@param addSkills boolean|nil @ 是否增加技能 ---@param addSkills bool @ 是否增加技能
function Player:setGeneral(general, setHp, addSkills) function Player:setGeneral(general, setHp, addSkills)
self.general = general.name self.general = general.name
if setHp then if setHp then
@ -354,7 +354,7 @@ end
--- 返回所有“如手牌般使用或打出”的牌。 --- 返回所有“如手牌般使用或打出”的牌。
--- 或者说,返回所有名字以“&”结尾的pile的牌。 --- 或者说,返回所有名字以“&”结尾的pile的牌。
---@param include_hand boolean|nil @ 是否包含真正的手牌 ---@param include_hand bool @ 是否包含真正的手牌
---@return integer[] ---@return integer[]
function Player:getHandlyIds(include_hand) function Player:getHandlyIds(include_hand)
local ret = include_hand and self:getCardIds("h") or {} local ret = include_hand and self:getCardIds("h") or {}
@ -445,7 +445,7 @@ end
--- 通过 二者位次+距离技能之和 与 两者间固定距离 进行对比,更大的为实际距离。 --- 通过 二者位次+距离技能之和 与 两者间固定距离 进行对比,更大的为实际距离。
---@param other Player @ 其他玩家 ---@param other Player @ 其他玩家
---@param mode string|nil @ 计算模式(left/right/both) ---@param mode string|nil @ 计算模式(left/right/both)
---@param ignore_dead boolean|nil @ 是否忽略尸体 ---@param ignore_dead bool @ 是否忽略尸体
function Player:distanceTo(other, mode, ignore_dead) function Player:distanceTo(other, mode, ignore_dead)
assert(other:isInstanceOf(Player)) assert(other:isInstanceOf(Player))
mode = mode or "both" mode = mode or "both"
@ -661,8 +661,8 @@ end
--- 检索玩家是否有对应技能。 --- 检索玩家是否有对应技能。
---@param skill string | Skill @ 技能名 ---@param skill string | Skill @ 技能名
---@param ignoreNullified boolean|nil @ 忽略技能是否被无效 ---@param ignoreNullified bool @ 忽略技能是否被无效
---@param ignoreAlive boolean|nil @ 忽略角色在场与否 ---@param ignoreAlive bool @ 忽略角色在场与否
function Player:hasSkill(skill, ignoreNullified, ignoreAlive) function Player:hasSkill(skill, ignoreNullified, ignoreAlive)
if not ignoreAlive and self.dead then if not ignoreAlive and self.dead then
return false return false
@ -847,8 +847,8 @@ fk.SwitchYin = 1
--- 获取转换技状态 --- 获取转换技状态
---@param skillName string @ 技能名 ---@param skillName string @ 技能名
---@param afterUse boolean|nil @ 是否提前计算转换后状态 ---@param afterUse bool @ 是否提前计算转换后状态
---@param inWord boolean|nil @ 是否返回文字 ---@param inWord bool @ 是否返回文字
---@return number|string @ 转换技状态 ---@return number|string @ 转换技状态
function Player:getSwitchSkillState(skillName, afterUse, inWord) function Player:getSwitchSkillState(skillName, afterUse, inWord)
if afterUse then if afterUse then

View File

@ -100,7 +100,7 @@ end
---@param target ServerPlayer @ Player who triggered this event ---@param target ServerPlayer @ Player who triggered this event
---@param player ServerPlayer @ Player who is operating ---@param player ServerPlayer @ Player who is operating
---@param data any @ useful data of the event ---@param data any @ useful data of the event
---@return boolean|nil ---@return bool
function TriggerSkill:use(event, target, player, data) end function TriggerSkill:use(event, target, player, data) end
function TriggerSkill:canWake(event, target, player, data) function TriggerSkill:canWake(event, target, player, data)

View File

@ -77,9 +77,9 @@ end
---@class StatusSkillSpec: StatusSkill ---@class StatusSkillSpec: StatusSkill
---@alias TrigFunc fun(self: TriggerSkill, event: Event, target: ServerPlayer, player: ServerPlayer, data: any):boolean|nil ---@alias TrigFunc fun(self: TriggerSkill, event: Event, target: ServerPlayer, player: ServerPlayer, data: any):bool
---@class TriggerSkillSpec: UsableSkillSpec ---@class TriggerSkillSpec: UsableSkillSpec
---@field public global nil|boolean ---@field public global bool
---@field public events nil|Event | Event[] ---@field public events nil|Event | Event[]
---@field public refresh_events nil|Event | Event[] ---@field public refresh_events nil|Event | Event[]
---@field public priority nil|number | table<Event, number> ---@field public priority nil|number | table<Event, number>
@ -165,15 +165,15 @@ function fk.CreateTriggerSkill(spec)
end end
---@class ActiveSkillSpec: UsableSkillSpec ---@class ActiveSkillSpec: UsableSkillSpec
---@field public can_use nil|fun(self: ActiveSkill, player: Player, card: Card): boolean|nil ---@field public can_use nil|fun(self: ActiveSkill, player: Player, card: Card): bool
---@field public card_filter nil|fun(self: ActiveSkill, to_select: integer, selected: integer[], selected_targets: integer[]): boolean|nil ---@field public card_filter nil|fun(self: ActiveSkill, to_select: integer, selected: integer[], selected_targets: integer[]): bool
---@field public target_filter nil|fun(self: ActiveSkill, to_select: integer, selected: integer[], selected_cards: integer[], card: Card): boolean|nil ---@field public target_filter nil|fun(self: ActiveSkill, to_select: integer, selected: integer[], selected_cards: integer[], card: Card): bool
---@field public feasible nil|fun(self: ActiveSkill, selected: integer[], selected_cards: integer[]): boolean|nil ---@field public feasible nil|fun(self: ActiveSkill, selected: integer[], selected_cards: integer[]): bool
---@field public on_use nil|fun(self: ActiveSkill, room: Room, cardUseEvent: CardUseStruct): boolean|nil ---@field public on_use nil|fun(self: ActiveSkill, room: Room, cardUseEvent: CardUseStruct): bool
---@field public about_to_effect nil|fun(self: ActiveSkill, room: Room, cardEffectEvent: CardEffectEvent): boolean|nil ---@field public about_to_effect nil|fun(self: ActiveSkill, room: Room, cardEffectEvent: CardEffectEvent): bool
---@field public on_effect nil|fun(self: ActiveSkill, room: Room, cardEffectEvent: CardEffectEvent): boolean|nil ---@field public on_effect nil|fun(self: ActiveSkill, room: Room, cardEffectEvent: CardEffectEvent): bool
---@field public on_nullified nil|fun(self: ActiveSkill, room: Room, cardEffectEvent: CardEffectEvent): boolean|nil ---@field public on_nullified nil|fun(self: ActiveSkill, room: Room, cardEffectEvent: CardEffectEvent): bool
---@field public mod_target_filter nil|fun(self: ActiveSkill, to_select: integer, selected: integer[], user: integer, card: Card, distance_limited: boolean): boolean|nil ---@field public mod_target_filter nil|fun(self: ActiveSkill, to_select: integer, selected: integer[], user: integer, card: Card, distance_limited: boolean): bool
---@field public prompt nil|fun(self: ActiveSkill, selected: integer[], selected_cards: integer[]): string ---@field public prompt nil|fun(self: ActiveSkill, selected: integer[], selected_cards: integer[]): string
---@field public interaction any ---@field public interaction any
@ -217,11 +217,11 @@ function fk.CreateActiveSkill(spec)
end end
---@class ViewAsSkillSpec: UsableSkillSpec ---@class ViewAsSkillSpec: UsableSkillSpec
---@field public card_filter nil|fun(self: ViewAsSkill, to_select: integer, selected: integer[]): boolean|nil ---@field public card_filter nil|fun(self: ViewAsSkill, to_select: integer, selected: integer[]): bool
---@field public view_as fun(self: ViewAsSkill, cards: integer[]): Card|nil ---@field public view_as fun(self: ViewAsSkill, cards: integer[]): Card|nil
---@field public pattern nil|string ---@field public pattern nil|string
---@field public enabled_at_play nil|fun(self: ViewAsSkill, player: Player): boolean|nil ---@field public enabled_at_play nil|fun(self: ViewAsSkill, player: Player): bool
---@field public enabled_at_response nil|fun(self: ViewAsSkill, player: Player, response: boolean): boolean|nil ---@field public enabled_at_response nil|fun(self: ViewAsSkill, player: Player, response: boolean): bool
---@field public before_use nil|fun(self: ViewAsSkill, player: ServerPlayer, use: CardUseStruct) ---@field public before_use nil|fun(self: ViewAsSkill, player: ServerPlayer, use: CardUseStruct)
---@field public prompt nil|fun(self: ActiveSkill, selected: integer[], selected_cards: integer[]): string ---@field public prompt nil|fun(self: ActiveSkill, selected: integer[], selected_cards: integer[]): string
@ -291,10 +291,10 @@ function fk.CreateDistanceSkill(spec)
end end
---@class ProhibitSpec: StatusSkillSpec ---@class ProhibitSpec: StatusSkillSpec
---@field public is_prohibited nil|fun(self: ProhibitSkill, from: Player, to: Player, card: Card): boolean|nil ---@field public is_prohibited nil|fun(self: ProhibitSkill, from: Player, to: Player, card: Card): bool
---@field public prohibit_use nil|fun(self: ProhibitSkill, player: Player, card: Card): boolean|nil ---@field public prohibit_use nil|fun(self: ProhibitSkill, player: Player, card: Card): bool
---@field public prohibit_response nil|fun(self: ProhibitSkill, player: Player, card: Card): boolean|nil ---@field public prohibit_response nil|fun(self: ProhibitSkill, player: Player, card: Card): bool
---@field public prohibit_discard nil|fun(self: ProhibitSkill, player: Player, card: Card): boolean|nil ---@field public prohibit_discard nil|fun(self: ProhibitSkill, player: Player, card: Card): bool
---@param spec ProhibitSpec ---@param spec ProhibitSpec
---@return ProhibitSkill ---@return ProhibitSkill
@ -313,7 +313,7 @@ end
---@class AttackRangeSpec: StatusSkillSpec ---@class AttackRangeSpec: StatusSkillSpec
---@field public correct_func nil|fun(self: AttackRangeSkill, from: Player, to: Player): number|nil ---@field public correct_func nil|fun(self: AttackRangeSkill, from: Player, to: Player): number|nil
---@field public within_func nil|fun(self: AttackRangeSkill, from: Player, to: Player): boolean|nil ---@field public within_func nil|fun(self: AttackRangeSkill, from: Player, to: Player): bool
---@param spec AttackRangeSpec ---@param spec AttackRangeSpec
---@return AttackRangeSkill ---@return AttackRangeSkill
@ -336,7 +336,7 @@ end
---@class MaxCardsSpec: StatusSkillSpec ---@class MaxCardsSpec: StatusSkillSpec
---@field public correct_func nil|fun(self: MaxCardsSkill, player: Player): number|nil ---@field public correct_func nil|fun(self: MaxCardsSkill, player: Player): number|nil
---@field public fixed_func nil|fun(self: MaxCardsSkill, player: Player): number|nil ---@field public fixed_func nil|fun(self: MaxCardsSkill, player: Player): number|nil
---@field public exclude_from nil|fun(self: MaxCardsSkill, player: Player, card: Card): boolean|nil ---@field public exclude_from nil|fun(self: MaxCardsSkill, player: Player, card: Card): bool
---@param spec MaxCardsSpec ---@param spec MaxCardsSpec
---@return MaxCardsSkill ---@return MaxCardsSkill
@ -358,9 +358,9 @@ function fk.CreateMaxCardsSkill(spec)
end end
---@class TargetModSpec: StatusSkillSpec ---@class TargetModSpec: StatusSkillSpec
---@field public bypass_times nil|fun(self: TargetModSkill, player: Player, skill: ActiveSkill, scope: integer, card: Card, to: Player): boolean|nil ---@field public bypass_times nil|fun(self: TargetModSkill, player: Player, skill: ActiveSkill, scope: integer, card: Card, to: Player): bool
---@field public residue_func nil|fun(self: TargetModSkill, player: Player, skill: ActiveSkill, scope: integer, card: Card, to: Player): number|nil ---@field public residue_func nil|fun(self: TargetModSkill, player: Player, skill: ActiveSkill, scope: integer, card: Card, to: Player): number|nil
---@field public bypass_distances nil|fun(self: TargetModSkill, player: Player, skill: ActiveSkill, card: Card, to: Player): boolean|nil ---@field public bypass_distances nil|fun(self: TargetModSkill, player: Player, skill: ActiveSkill, card: Card, to: Player): bool
---@field public distance_limit_func nil|fun(self: TargetModSkill, player: Player, skill: ActiveSkill, card: Card, to: Player): number|nil ---@field public distance_limit_func nil|fun(self: TargetModSkill, player: Player, skill: ActiveSkill, card: Card, to: Player): number|nil
---@field public extra_target_func nil|fun(self: TargetModSkill, player: Player, skill: ActiveSkill, card: Card): number|nil ---@field public extra_target_func nil|fun(self: TargetModSkill, player: Player, skill: ActiveSkill, card: Card): number|nil
@ -391,7 +391,7 @@ function fk.CreateTargetModSkill(spec)
end end
---@class FilterSpec: StatusSkillSpec ---@class FilterSpec: StatusSkillSpec
---@field public card_filter nil|fun(self: FilterSkill, card: Card, player: Player): boolean|nil ---@field public card_filter nil|fun(self: FilterSkill, card: Card, player: Player): bool
---@field public view_as nil|fun(self: FilterSkill, card: Card, player: Player): Card|nil ---@field public view_as nil|fun(self: FilterSkill, card: Card, player: Player): Card|nil
---@param spec FilterSpec ---@param spec FilterSpec
@ -408,7 +408,7 @@ function fk.CreateFilterSkill(spec)
end end
---@class InvaliditySpec: StatusSkillSpec ---@class InvaliditySpec: StatusSkillSpec
---@field public invalidity_func nil|fun(self: InvaliditySkill, from: Player, skill: Skill): boolean|nil ---@field public invalidity_func nil|fun(self: InvaliditySkill, from: Player, skill: Skill): bool
---@param spec InvaliditySpec ---@param spec InvaliditySpec
---@return InvaliditySkill ---@return InvaliditySkill
@ -426,8 +426,8 @@ end
---@field public skill nil|Skill ---@field public skill nil|Skill
---@field public equip_skill nil|Skill ---@field public equip_skill nil|Skill
---@field public special_skills string[] | nil ---@field public special_skills string[] | nil
---@field public is_damage_card nil|boolean ---@field public is_damage_card bool
---@field public multiple_targets nil|boolean ---@field public multiple_targets bool
local defaultCardSkill = fk.CreateActiveSkill{ local defaultCardSkill = fk.CreateActiveSkill{
name = "default_card_skill", name = "default_card_skill",

View File

@ -6,6 +6,7 @@
-- Just for convenience when using sumneko.lua -- Just for convenience when using sumneko.lua
---@alias null nil ---@alias null nil
---@alias bool boolean | nil
---@class fk ---@class fk
---FreeKill's lua API ---FreeKill's lua API

View File

@ -15,13 +15,13 @@
---@field public interrupted boolean @ 事件是否是因为被强行中断而结束的 ---@field public interrupted boolean @ 事件是否是因为被强行中断而结束的
local GameEvent = class("GameEvent") local GameEvent = class("GameEvent")
---@type (fun(self: GameEvent): boolean|nil)[] ---@type (fun(self: GameEvent): bool)[]
GameEvent.functions = {} GameEvent.functions = {}
---@type (fun(self: GameEvent): boolean|nil)[] ---@type (fun(self: GameEvent): bool)[]
GameEvent.cleaners = {} GameEvent.cleaners = {}
---@type (fun(self: GameEvent): boolean|nil)[] ---@type (fun(self: GameEvent): bool)[]
GameEvent.exit_funcs = {} GameEvent.exit_funcs = {}
local function wrapCoFunc(f, ...) local function wrapCoFunc(f, ...)

View File

@ -323,7 +323,7 @@ end
--- 获得当前房间中的所有玩家。 --- 获得当前房间中的所有玩家。
--- ---
--- 返回的数组的第一个元素是当前回合玩家,并且按行动顺序进行排序。 --- 返回的数组的第一个元素是当前回合玩家,并且按行动顺序进行排序。
---@param sortBySeat boolean|nil @ 是否无视按座位排序直接返回 ---@param sortBySeat bool @ 是否无视按座位排序直接返回
---@return ServerPlayer[] @ 房间中玩家的数组 ---@return ServerPlayer[] @ 房间中玩家的数组
function Room:getAllPlayers(sortBySeat) function Room:getAllPlayers(sortBySeat)
if not self.game_started then if not self.game_started then
@ -345,7 +345,7 @@ function Room:getAllPlayers(sortBySeat)
end end
--- 获得所有存活玩家参看getAllPlayers --- 获得所有存活玩家参看getAllPlayers
---@param sortBySeat boolean|nil ---@param sortBySeat bool
---@return ServerPlayer[] ---@return ServerPlayer[]
function Room:getAlivePlayers(sortBySeat) function Room:getAlivePlayers(sortBySeat)
if sortBySeat == nil or sortBySeat then if sortBySeat == nil or sortBySeat then
@ -372,8 +372,8 @@ end
--- 获得除一名玩家外的其他玩家。 --- 获得除一名玩家外的其他玩家。
---@param player ServerPlayer @ 要排除的玩家 ---@param player ServerPlayer @ 要排除的玩家
---@param sortBySeat boolean|nil @ 是否要按座位排序? ---@param sortBySeat bool @ 是否要按座位排序?
---@param include_dead boolean|nil @ 是否要把死人也算进去? ---@param include_dead bool @ 是否要把死人也算进去?
---@return ServerPlayer[] @ 其他玩家列表 ---@return ServerPlayer[] @ 其他玩家列表
function Room:getOtherPlayers(player, sortBySeat, include_dead) function Room:getOtherPlayers(player, sortBySeat, include_dead)
if sortBySeat == nil then if sortBySeat == nil then
@ -543,8 +543,8 @@ end
---@param player ServerPlayer ---@param player ServerPlayer
---@param general string ---@param general string
---@param changeKingdom boolean|nil ---@param changeKingdom bool
---@param noBroadcast boolean|null ---@param noBroadcast bool
function Room:setPlayerGeneral(player, general, changeKingdom, noBroadcast) function Room:setPlayerGeneral(player, general, changeKingdom, noBroadcast)
if Fk.generals[general] == nil then return end if Fk.generals[general] == nil then return end
player.general = general player.general = general
@ -572,9 +572,9 @@ end
---@param player ServerPlayer @ 要换将的玩家 ---@param player ServerPlayer @ 要换将的玩家
---@param new_general string @ 要变更的武将,若不存在则变身为孙策,孙策不存在变身为士兵 ---@param new_general string @ 要变更的武将,若不存在则变身为孙策,孙策不存在变身为士兵
---@param full boolean|nil @ 是否血量满状态变身 ---@param full bool @ 是否血量满状态变身
---@param isDeputy boolean|nil @ 是否变的是副将 ---@param isDeputy bool @ 是否变的是副将
---@param sendLog boolean|nil @ 是否发Log ---@param sendLog bool @ 是否发Log
function Room:changeHero(player, new_general, full, isDeputy, sendLog) function Room:changeHero(player, new_general, full, isDeputy, sendLog)
local orig = isDeputy and (player.deputyGeneral or "") or player.general local orig = isDeputy and (player.deputyGeneral or "") or player.general
@ -644,7 +644,7 @@ end
---@param player ServerPlayer @ 发出这个请求的目标玩家 ---@param player ServerPlayer @ 发出这个请求的目标玩家
---@param command string @ 请求的类型 ---@param command string @ 请求的类型
---@param jsonData string @ 请求的数据 ---@param jsonData string @ 请求的数据
---@param wait boolean|nil @ 是否要等待答复默认为true ---@param wait bool @ 是否要等待答复默认为true
---@return string | nil @ 收到的答复如果wait为false的话就返回nil ---@return string | nil @ 收到的答复如果wait为false的话就返回nil
function Room:doRequest(player, command, jsonData, wait) function Room:doRequest(player, command, jsonData, wait)
if wait == nil then wait = true end if wait == nil then wait = true end
@ -770,7 +770,7 @@ end
--- 向多名玩家告知一次移牌行为。 --- 向多名玩家告知一次移牌行为。
---@param players ServerPlayer[] | nil @ 要被告知的玩家列表,默认为全员 ---@param players ServerPlayer[] | nil @ 要被告知的玩家列表,默认为全员
---@param card_moves CardsMoveStruct[] @ 要告知的移牌信息列表 ---@param card_moves CardsMoveStruct[] @ 要告知的移牌信息列表
---@param forceVisible boolean|nil @ 是否让所有牌对告知目标可见 ---@param forceVisible bool @ 是否让所有牌对告知目标可见
function Room:notifyMoveCards(players, card_moves, forceVisible) function Room:notifyMoveCards(players, card_moves, forceVisible)
if players == nil or players == {} then players = self.players end if players == nil or players == {} then players = self.players end
for _, p in ipairs(players) do for _, p in ipairs(players) do
@ -997,9 +997,9 @@ end
---@param player ServerPlayer @ 询问目标 ---@param player ServerPlayer @ 询问目标
---@param skill_name string @ 主动技的技能名 ---@param skill_name string @ 主动技的技能名
---@param prompt string|nil @ 烧条上面显示的提示文本内容 ---@param prompt string|nil @ 烧条上面显示的提示文本内容
---@param cancelable boolean|nil @ 是否可以点取消 ---@param cancelable bool @ 是否可以点取消
---@param extra_data table|nil @ 额外信息,因技能而异了 ---@param extra_data table|nil @ 额外信息,因技能而异了
---@param no_indicate boolean|nil @ 是否不显示指示线 ---@param no_indicate bool @ 是否不显示指示线
---@return boolean, table ---@return boolean, table
function Room:askForUseActiveSkill(player, skill_name, prompt, cancelable, extra_data, no_indicate) function Room:askForUseActiveSkill(player, skill_name, prompt, cancelable, extra_data, no_indicate)
prompt = prompt or "" prompt = prompt or ""
@ -1059,13 +1059,13 @@ Room.askForUseViewAsSkill = Room.askForUseActiveSkill
---@param player ServerPlayer @ 弃牌角色 ---@param player ServerPlayer @ 弃牌角色
---@param minNum integer @ 最小值 ---@param minNum integer @ 最小值
---@param maxNum integer @ 最大值 ---@param maxNum integer @ 最大值
---@param includeEquip boolean|nil @ 能不能弃装备区? ---@param includeEquip bool @ 能不能弃装备区?
---@param skillName string|nil @ 引发弃牌的技能名 ---@param skillName string|nil @ 引发弃牌的技能名
---@param cancelable boolean|nil @ 能不能点取消? ---@param cancelable bool @ 能不能点取消?
---@param pattern string|nil @ 弃牌需要符合的规则 ---@param pattern string|nil @ 弃牌需要符合的规则
---@param prompt string|nil @ 提示信息 ---@param prompt string|nil @ 提示信息
---@param skipDiscard boolean|nil @ 是否跳过弃牌(即只询问选择可以弃置的牌) ---@param skipDiscard bool @ 是否跳过弃牌(即只询问选择可以弃置的牌)
---@param no_indicate boolean|nil @ 是否不显示指示线 ---@param no_indicate bool @ 是否不显示指示线
---@return integer[] @ 弃掉的牌的id列表可能是空的 ---@return integer[] @ 弃掉的牌的id列表可能是空的
function Room:askForDiscard(player, minNum, maxNum, includeEquip, skillName, cancelable, pattern, prompt, skipDiscard, no_indicate) function Room:askForDiscard(player, minNum, maxNum, includeEquip, skillName, cancelable, pattern, prompt, skipDiscard, no_indicate)
cancelable = (cancelable == nil) and true or cancelable cancelable = (cancelable == nil) and true or cancelable
@ -1141,8 +1141,8 @@ end
---@param maxNum integer @ 最大值 ---@param maxNum integer @ 最大值
---@param prompt string|nil @ 提示信息 ---@param prompt string|nil @ 提示信息
---@param skillName string|nil @ 技能名 ---@param skillName string|nil @ 技能名
---@param cancelable boolean|nil @ 能否点取消 ---@param cancelable bool @ 能否点取消
---@param no_indicate boolean|nil @ 是否不显示指示线 ---@param no_indicate bool @ 是否不显示指示线
---@return integer[] @ 选择的玩家id列表可能为空 ---@return integer[] @ 选择的玩家id列表可能为空
function Room:askForChoosePlayers(player, targets, minNum, maxNum, prompt, skillName, cancelable, no_indicate) function Room:askForChoosePlayers(player, targets, minNum, maxNum, prompt, skillName, cancelable, no_indicate)
if maxNum < 1 then if maxNum < 1 then
@ -1176,13 +1176,13 @@ end
---@param player ServerPlayer @ 要询问的玩家 ---@param player ServerPlayer @ 要询问的玩家
---@param minNum integer @ 最小值 ---@param minNum integer @ 最小值
---@param maxNum integer @ 最大值 ---@param maxNum integer @ 最大值
---@param includeEquip boolean|nil @ 能不能选装备 ---@param includeEquip bool @ 能不能选装备
---@param skillName string @ 技能名 ---@param skillName string @ 技能名
---@param cancelable boolean|nil @ 能否点取消 ---@param cancelable bool @ 能否点取消
---@param pattern string|nil @ 选牌规则 ---@param pattern string|nil @ 选牌规则
---@param prompt string|nil @ 提示信息 ---@param prompt string|nil @ 提示信息
---@param expand_pile string|nil @ 可选私人牌堆名称 ---@param expand_pile string|nil @ 可选私人牌堆名称
---@param no_indicate boolean|nil @ 是否不显示指示线 ---@param no_indicate bool @ 是否不显示指示线
---@return integer[] @ 选择的牌的id列表可能是空的 ---@return integer[] @ 选择的牌的id列表可能是空的
function Room:askForCard(player, minNum, maxNum, includeEquip, skillName, cancelable, pattern, prompt, expand_pile, no_indicate) function Room:askForCard(player, minNum, maxNum, includeEquip, skillName, cancelable, pattern, prompt, expand_pile, no_indicate)
if minNum < 1 then if minNum < 1 then
@ -1230,8 +1230,8 @@ end
---@param maxNum integer @ 选目标最大值 ---@param maxNum integer @ 选目标最大值
---@param pattern string|nil @ 选牌规则 ---@param pattern string|nil @ 选牌规则
---@param prompt string|nil @ 提示信息 ---@param prompt string|nil @ 提示信息
---@param cancelable boolean|nil @ 能否点取消 ---@param cancelable bool @ 能否点取消
---@param no_indicate boolean|nil @ 是否不显示指示线 ---@param no_indicate bool @ 是否不显示指示线
---@return integer[], integer ---@return integer[], integer
function Room:askForChooseCardAndPlayers(player, targets, minNum, maxNum, pattern, prompt, skillName, cancelable, no_indicate) function Room:askForChooseCardAndPlayers(player, targets, minNum, maxNum, pattern, prompt, skillName, cancelable, no_indicate)
if maxNum < 1 then if maxNum < 1 then
@ -1415,7 +1415,7 @@ end
---@param choices string[] @ 可选选项列表 ---@param choices string[] @ 可选选项列表
---@param skill_name string|nil @ 技能名 ---@param skill_name string|nil @ 技能名
---@param prompt string|nil @ 提示信息 ---@param prompt string|nil @ 提示信息
---@param detailed boolean|nil @ 选项详细描述 ---@param detailed bool @ 选项详细描述
---@param all_choices string[]|nil @ 所有选项(不可选变灰) ---@param all_choices string[]|nil @ 所有选项(不可选变灰)
---@return string @ 选择的选项 ---@return string @ 选择的选项
function Room:askForChoice(player, choices, skill_name, prompt, detailed, all_choices) function Room:askForChoice(player, choices, skill_name, prompt, detailed, all_choices)
@ -1511,7 +1511,7 @@ end
---@param bottom_limit integer[]|nil @ 置于牌堆底的牌的限制(下限,上限),不填写则不限 ---@param bottom_limit integer[]|nil @ 置于牌堆底的牌的限制(下限,上限),不填写则不限
---@param customNotify string|null @ 自定义读条操作提示 ---@param customNotify string|null @ 自定义读条操作提示
---param prompt string|null @ 观星框的标题(暂时雪藏) ---param prompt string|null @ 观星框的标题(暂时雪藏)
---@param noPut boolean|null @ 是否进行放置牌操作 ---@param noPut bool @ 是否进行放置牌操作
---@param areaNames string[]|null @ 左侧提示信息 ---@param areaNames string[]|null @ 左侧提示信息
---@return table<"top"|"bottom", integer[]> ---@return table<"top"|"bottom", integer[]>
function Room:askForGuanxing(player, cards, top_limit, bottom_limit, customNotify, noPut, areaNames) function Room:askForGuanxing(player, cards, top_limit, bottom_limit, customNotify, noPut, areaNames)
@ -1690,7 +1690,7 @@ end
---@param card_name string|nil @ 使用牌的牌名若pattern指定了则可随意写它影响的是烧条的提示信息 ---@param card_name string|nil @ 使用牌的牌名若pattern指定了则可随意写它影响的是烧条的提示信息
---@param pattern string|nil @ 使用牌的规则默认就是card_name的值 ---@param pattern string|nil @ 使用牌的规则默认就是card_name的值
---@param prompt string|nil @ 提示信息 ---@param prompt string|nil @ 提示信息
---@param cancelable boolean|nil @ 能否点取消 ---@param cancelable bool @ 能否点取消
---@param extra_data integer|nil @ 额外信息 ---@param extra_data integer|nil @ 额外信息
---@param event_data CardEffectEvent|nil @ 事件信息 ---@param event_data CardEffectEvent|nil @ 事件信息
---@return CardUseStruct | nil @ 返回关于本次使用牌的数据,以便后续处理 ---@return CardUseStruct | nil @ 返回关于本次使用牌的数据,以便后续处理
@ -1763,7 +1763,7 @@ end
---@param card_name string @ 牌名 ---@param card_name string @ 牌名
---@param pattern string|nil @ 牌的规则 ---@param pattern string|nil @ 牌的规则
---@param prompt string|nil @ 提示信息 ---@param prompt string|nil @ 提示信息
---@param cancelable boolean|nil @ 能否取消 ---@param cancelable bool @ 能否取消
---@param extra_data any|nil @ 额外数据 ---@param extra_data any|nil @ 额外数据
---@param effectData CardEffectEvent|nil @ 关联的卡牌生效流程 ---@param effectData CardEffectEvent|nil @ 关联的卡牌生效流程
---@return Card | nil @ 打出的牌 ---@return Card | nil @ 打出的牌
@ -1813,7 +1813,7 @@ end
---@param card_name string @ 询问的牌名,默认为无懈 ---@param card_name string @ 询问的牌名,默认为无懈
---@param pattern string @ 牌的规则 ---@param pattern string @ 牌的规则
---@param prompt string|nil @ 提示信息 ---@param prompt string|nil @ 提示信息
---@param cancelable boolean|nil @ 能否点取消 ---@param cancelable bool @ 能否点取消
---@param extra_data any|nil @ 额外信息 ---@param extra_data any|nil @ 额外信息
---@return CardUseStruct | nil @ 最终决胜出的卡牌使用信息 ---@return CardUseStruct | nil @ 最终决胜出的卡牌使用信息
function Room:askForNullification(players, card_name, pattern, prompt, cancelable, extra_data) function Room:askForNullification(players, card_name, pattern, prompt, cancelable, extra_data)
@ -1850,7 +1850,7 @@ end
--- 询问玩家从AG中选择一张牌。 --- 询问玩家从AG中选择一张牌。
---@param player ServerPlayer @ 要询问的玩家 ---@param player ServerPlayer @ 要询问的玩家
---@param id_list integer[] | Card[] @ 可选的卡牌列表 ---@param id_list integer[] | Card[] @ 可选的卡牌列表
---@param cancelable boolean|nil @ 能否点取消 ---@param cancelable bool @ 能否点取消
---@param reason string|nil @ 原因 ---@param reason string|nil @ 原因
---@return integer @ 选择的卡牌 ---@return integer @ 选择的卡牌
function Room:askForAG(player, id_list, cancelable, reason) function Room:askForAG(player, id_list, cancelable, reason)
@ -2024,9 +2024,9 @@ end
---@param player ServerPlayer @ 要做选择的玩家 ---@param player ServerPlayer @ 要做选择的玩家
---@param prompt string @ 提示信息 ---@param prompt string @ 提示信息
---@param skillName string @ 技能名 ---@param skillName string @ 技能名
---@param cancelable boolean|null @ 是否可以取消选择 ---@param cancelable bool @ 是否可以取消选择
---@param flag string|null @ 限定可移动的区域值为nil装备区和判定区ej ---@param flag string|null @ 限定可移动的区域值为nil装备区和判定区ej
---@param no_indicate boolean|nil @ 是否不显示指示线 ---@param no_indicate bool @ 是否不显示指示线
---@return integer[] @ 选择的玩家id列表可能为空 ---@return integer[] @ 选择的玩家id列表可能为空
function Room:askForChooseToMoveCardInBoard(player, prompt, skillName, cancelable, flag, no_indicate, excludeIds) function Room:askForChooseToMoveCardInBoard(player, prompt, skillName, cancelable, flag, no_indicate, excludeIds)
if flag then if flag then
@ -2497,7 +2497,7 @@ end
---@param from ServerPlayer @ 使用来源 ---@param from ServerPlayer @ 使用来源
---@param tos ServerPlayer | ServerPlayer[] @ 目标角色(列表) ---@param tos ServerPlayer | ServerPlayer[] @ 目标角色(列表)
---@param skillName string|nil @ 技能名 ---@param skillName string|nil @ 技能名
---@param extra boolean|nil @ 是否不计入次数 ---@param extra bool @ 是否不计入次数
function Room:useVirtualCard(card_name, subcards, from, tos, skillName, extra) function Room:useVirtualCard(card_name, subcards, from, tos, skillName, extra)
local card = Fk:cloneCard(card_name) local card = Fk:cloneCard(card_name)
card.skillName = skillName card.skillName = skillName
@ -2539,7 +2539,7 @@ end
--- 让一名玩家获得一张牌 --- 让一名玩家获得一张牌
---@param player integer|ServerPlayer @ 要拿牌的玩家 ---@param player integer|ServerPlayer @ 要拿牌的玩家
---@param cid integer|Card @ 要拿到的卡牌 ---@param cid integer|Card @ 要拿到的卡牌
---@param unhide boolean|nil @ 是否明着拿 ---@param unhide bool @ 是否明着拿
---@param reason CardMoveReason|nil @ 卡牌移动的原因 ---@param reason CardMoveReason|nil @ 卡牌移动的原因
function Room:obtainCard(player, cid, unhide, reason) function Room:obtainCard(player, cid, unhide, reason)
if type(cid) ~= "number" then if type(cid) ~= "number" then
@ -2605,8 +2605,8 @@ end
---@param reason integer|nil @ 移动时使用的移牌原因 ---@param reason integer|nil @ 移动时使用的移牌原因
---@param skill_name string|nil @ 技能名 ---@param skill_name string|nil @ 技能名
---@param special_name string|nil @ 私人牌堆名 ---@param special_name string|nil @ 私人牌堆名
---@param visible boolean|nil @ 是否明置 ---@param visible bool @ 是否明置
---@param proposer integer ---@param proposer integer | nil
function Room:moveCardTo(card, to_place, target, reason, skill_name, special_name, visible, proposer) function Room:moveCardTo(card, to_place, target, reason, skill_name, special_name, visible, proposer)
reason = reason or fk.ReasonJustMove reason = reason or fk.ReasonJustMove
skill_name = skill_name or "" skill_name = skill_name or ""
@ -2714,7 +2714,7 @@ end
---@param player ServerPlayer @ 玩家 ---@param player ServerPlayer @ 玩家
---@param skill_names string[] | string @ 要获得/失去的技能 ---@param skill_names string[] | string @ 要获得/失去的技能
---@param source_skill string | Skill | null @ 源技能 ---@param source_skill string | Skill | null @ 源技能
---@param no_trigger boolean | null @ 是否不触发相关时机 ---@param no_trigger bool @ 是否不触发相关时机
function Room:handleAddLoseSkills(player, skill_names, source_skill, sendlog, no_trigger) function Room:handleAddLoseSkills(player, skill_names, source_skill, sendlog, no_trigger)
if type(skill_names) == "string" then if type(skill_names) == "string" then
skill_names = skill_names:split("|") skill_names = skill_names:split("|")
@ -2797,7 +2797,7 @@ end
---@param player ServerPlayer @ 改判的玩家 ---@param player ServerPlayer @ 改判的玩家
---@param judge JudgeStruct @ 要被改判的判定数据 ---@param judge JudgeStruct @ 要被改判的判定数据
---@param skillName string|nil @ 技能名 ---@param skillName string|nil @ 技能名
---@param exchange boolean|nil @ 是否要替换原有判定牌(即类似鬼道那样) ---@param exchange bool @ 是否要替换原有判定牌(即类似鬼道那样)
function Room:retrial(card, player, judge, skillName, exchange) function Room:retrial(card, player, judge, skillName, exchange)
if not card then return end if not card then return end
local triggerResponded = self.owner_map[card:getEffectiveId()] == player local triggerResponded = self.owner_map[card:getEffectiveId()] == player
@ -3004,7 +3004,7 @@ function Room:useSkill(player, skill, effect_cb)
end end
---@param player ServerPlayer ---@param player ServerPlayer
---@param sendLog boolean|nil ---@param sendLog bool
function Room:revivePlayer(player, sendLog) function Room:revivePlayer(player, sendLog)
if not player.dead then return end if not player.dead then return end
self:setPlayerProperty(player, "dead", false) self:setPlayerProperty(player, "dead", false)

View File

@ -187,7 +187,7 @@ function ServerPlayer:waitForReply(timeout)
end end
---@param player ServerPlayer ---@param player ServerPlayer
---@param observe boolean|nil ---@param observe bool
function ServerPlayer:marshal(player, observe) function ServerPlayer:marshal(player, observe)
local room = self.room local room = self.room
if not room.game_started then if not room.game_started then
@ -746,7 +746,7 @@ function ServerPlayer:isFakeSkill(skill)
end end
---@param skill string | Skill ---@param skill string | Skill
---@param isPrelight boolean | nil ---@param isPrelight bool
function ServerPlayer:prelightSkill(skill, isPrelight) function ServerPlayer:prelightSkill(skill, isPrelight)
if type(skill) == "string" then skill = Fk.skills[skill] end if type(skill) == "string" then skill = Fk.skills[skill] end
assert(skill:isInstanceOf(Skill)) assert(skill:isInstanceOf(Skill))

View File

@ -7,12 +7,12 @@
---@field public from integer|null ---@field public from integer|null
---@field public to integer|null ---@field public to integer|null
---@field public toArea CardArea ---@field public toArea CardArea
---@field public moveReason CardMoveReason ---@field public moveReason CardMoveReason|nil
---@field public proposer integer ---@field public proposer integer|nil
---@field public skillName string|null ---@field public skillName string|null
---@field public moveVisible boolean|null ---@field public moveVisible bool
---@field public specialName string|null ---@field public specialName string|null
---@field public specialVisible boolean|null ---@field public specialVisible bool
---@class MoveInfo ---@class MoveInfo
---@field public cardId integer ---@field public cardId integer
@ -27,9 +27,9 @@
---@field public moveReason CardMoveReason ---@field public moveReason CardMoveReason
---@field public proposer integer|null ---@field public proposer integer|null
---@field public skillName string|null ---@field public skillName string|null
---@field public moveVisible boolean|null ---@field public moveVisible bool
---@field public specialName string|null ---@field public specialName string|null
---@field public specialVisible boolean|null ---@field public specialVisible bool
---@field public drawPilePosition number|null @ 移至牌堆的索引位置,值为-1代表置入牌堆底或者牌堆牌数+1也为牌堆底 ---@field public drawPilePosition number|null @ 移至牌堆的索引位置,值为-1代表置入牌堆底或者牌堆牌数+1也为牌堆底
---@class PindianResult ---@class PindianResult
@ -42,7 +42,7 @@
---@field public reason string @ 体力变化原因 ---@field public reason string @ 体力变化原因
---@field public skillName string @ 引起体力变化的技能名 ---@field public skillName string @ 引起体力变化的技能名
---@field public damageEvent DamageStruct|nil @ 引起这次体力变化的伤害数据 ---@field public damageEvent DamageStruct|nil @ 引起这次体力变化的伤害数据
---@field public preventDying boolean|null @ 是否阻止本次体力变更流程引发濒死流程 ---@field public preventDying bool @ 是否阻止本次体力变更流程引发濒死流程
--- 描述跟失去体力有关的数据 --- 描述跟失去体力有关的数据
---@class HpLostData ---@class HpLostData
@ -62,7 +62,7 @@ fk.IceDamage = 4
---@field public to ServerPlayer @ 伤害目标 ---@field public to ServerPlayer @ 伤害目标
---@field public damage integer @ 伤害值 ---@field public damage integer @ 伤害值
---@field public card Card | nil @ 造成伤害的牌 ---@field public card Card | nil @ 造成伤害的牌
---@field public chain boolean | nil @ 伤害是否是铁索传导的伤害 ---@field public chain bool @ 伤害是否是铁索传导的伤害
---@field public damageType DamageType | nil @ 伤害的属性 ---@field public damageType DamageType | nil @ 伤害的属性
---@field public skillName string | nil @ 造成本次伤害的技能名 ---@field public skillName string | nil @ 造成本次伤害的技能名
---@field public beginnerOfTheDamage boolean | nil @ 是否是本次铁索传导的起点 ---@field public beginnerOfTheDamage boolean | nil @ 是否是本次铁索传导的起点
@ -78,7 +78,7 @@ fk.IceDamage = 4
---@class DyingStruct ---@class DyingStruct
---@field public who integer ---@field public who integer
---@field public damage DamageStruct ---@field public damage DamageStruct
---@field public ignoreDeath boolean|null ---@field public ignoreDeath bool
---@class DeathStruct ---@class DeathStruct
---@field public who integer ---@field public who integer
@ -91,7 +91,7 @@ fk.IceDamage = 4
---@field public toCard Card|null ---@field public toCard Card|null
---@field public responseToEvent CardUseStruct|null ---@field public responseToEvent CardUseStruct|null
---@field public nullifiedTargets integer[]|null ---@field public nullifiedTargets integer[]|null
---@field public extraUse boolean|null ---@field public extraUse bool
---@field public disresponsiveList integer[]|null ---@field public disresponsiveList integer[]|null
---@field public unoffsetableList integer[]|null ---@field public unoffsetableList integer[]|null
---@field public additionalDamage integer|null ---@field public additionalDamage integer|null
@ -112,8 +112,8 @@ fk.IceDamage = 4
---@field public firstTarget boolean ---@field public firstTarget boolean
---@field public additionalDamage integer|null ---@field public additionalDamage integer|null
---@field public additionalRecover integer|null ---@field public additionalRecover integer|null
---@field public disresponsive boolean|null ---@field public disresponsive bool
---@field public unoffsetableList boolean|null ---@field public unoffsetableList bool
---@field public additionalResponseTimes table<string, integer>|integer|null ---@field public additionalResponseTimes table<string, integer>|integer|null
---@field public fixedAddTimesResponsors integer[] ---@field public fixedAddTimesResponsors integer[]
@ -126,16 +126,16 @@ fk.IceDamage = 4
---@field public toCard Card|null ---@field public toCard Card|null
---@field public responseToEvent CardEffectEvent|null ---@field public responseToEvent CardEffectEvent|null
---@field public nullifiedTargets integer[]|null ---@field public nullifiedTargets integer[]|null
---@field public extraUse boolean|null ---@field public extraUse bool
---@field public disresponsiveList integer[]|null ---@field public disresponsiveList integer[]|null
---@field public unoffsetableList integer[]|null ---@field public unoffsetableList integer[]|null
---@field public additionalDamage integer|null ---@field public additionalDamage integer|null
---@field public additionalRecover integer|null ---@field public additionalRecover integer|null
---@field public customFrom integer|null ---@field public customFrom integer|null
---@field public cardsResponded Card[]|null ---@field public cardsResponded Card[]|null
---@field public disresponsive boolean|null ---@field public disresponsive bool
---@field public unoffsetable boolean|null ---@field public unoffsetable bool
---@field public isCancellOut boolean|null ---@field public isCancellOut bool
---@field public fixedResponseTimes table<string, integer>|integer|null ---@field public fixedResponseTimes table<string, integer>|integer|null
---@field public fixedAddTimesResponsors integer[] ---@field public fixedAddTimesResponsors integer[]
---@field public prohibitedCardNames string[]|null ---@field public prohibitedCardNames string[]|null
@ -150,13 +150,13 @@ fk.IceDamage = 4
---@field public card Card ---@field public card Card
---@field public reason string ---@field public reason string
---@field public pattern string ---@field public pattern string
---@field public skipDrop boolean|null ---@field public skipDrop bool
---@class CardResponseEvent ---@class CardResponseEvent
---@field public from integer ---@field public from integer
---@field public card Card ---@field public card Card
---@field public responseToEvent CardEffectEvent|null ---@field public responseToEvent CardEffectEvent|null
---@field public skipDrop boolean|null ---@field public skipDrop bool
---@field public customFrom integer|null ---@field public customFrom integer|null
---@class AskForCardUse ---@class AskForCardUse
@ -197,9 +197,9 @@ fk.ReasonJudge = 11
---@field public from integer | nil ---@field public from integer | nil
---@field public to integer[] | nil ---@field public to integer[] | nil
---@field public card integer[] | nil ---@field public card integer[] | nil
---@field public arg any | nil ---@field public arg any
---@field public arg2 any | nil ---@field public arg2 any
---@field public arg3 any | nil ---@field public arg3 any
---@class SkillUseStruct ---@class SkillUseStruct
---@field public skill Skill ---@field public skill Skill