diff --git a/lua/server/room.lua b/lua/server/room.lua index 182ebb48467ece0d894c2f08549b46ff798c69fb..a77b7693a01390e399a6c441486f337d84587d2f 100644 --- a/lua/server/room.lua +++ b/lua/server/room.lua @@ -3426,6 +3426,27 @@ function Room:addSkill(skill) end end +--- 检查房间是否已经被加入了触发技或状态技 +---@param skill Skill|string +---@return boolean +function Room:hasSkill(skill) + if type(skill) == "string" then + skill = Fk.skills[skill] + end + if skill == nil then return false end + if skill:isInstanceOf(StatusSkill) then + if type(self.status_skills[skill.class]) == "table" then + return table.contains(self.status_skills[skill.class], skill) + end + elseif skill:isInstanceOf(TriggerSkill) then + local event = skill.event + if type(self.logic.skill_table[event]) == "table" then + return table.contains(self.logic.skill_table[event], skill) + end + end + return false +end + --- 在判定或使用流程中,将使用或判定牌应用锁视转化,发出战报,并返回转化后的牌 ---@param id integer @ 牌id