diff --git a/audio/death/maliang.mp3 b/audio/death/maliang.mp3 deleted file mode 100644 index 9c996de3bf3d3bea3869995a226925df40f0ec66..0000000000000000000000000000000000000000 Binary files a/audio/death/maliang.mp3 and /dev/null differ diff --git a/audio/death/new__wangyi.mp3 b/audio/death/new__wangyi.mp3 deleted file mode 100644 index 3ee026465e8c36d41408ac1f25e96bc35150d1d8..0000000000000000000000000000000000000000 Binary files a/audio/death/new__wangyi.mp3 and /dev/null differ diff --git a/audio/death/ol_ex__weiyan.mp3 b/audio/death/ol_ex__weiyan.mp3 deleted file mode 100644 index 03590cd807cce2e1f1fd3a229cea9ad4b2a1baae..0000000000000000000000000000000000000000 Binary files a/audio/death/ol_ex__weiyan.mp3 and /dev/null differ diff --git a/audio/death/quyi.mp3 b/audio/death/quyi.mp3 deleted file mode 100644 index 9a3ca64d69f1c3400070e3644cf150a386c25c52..0000000000000000000000000000000000000000 Binary files a/audio/death/quyi.mp3 and /dev/null differ diff --git a/audio/death/xizhicai.mp3 b/audio/death/xizhicai.mp3 deleted file mode 100644 index ced18cf77e1cb9e5c28e60962afd7878353c9577..0000000000000000000000000000000000000000 Binary files a/audio/death/xizhicai.mp3 and /dev/null differ diff --git a/audio/skill/chouce1.mp3 b/audio/skill/chouce1.mp3 deleted file mode 100644 index 503e806539bf67392d5e8f60ee9f2b7b100017a3..0000000000000000000000000000000000000000 Binary files a/audio/skill/chouce1.mp3 and /dev/null differ diff --git a/audio/skill/chouce2.mp3 b/audio/skill/chouce2.mp3 deleted file mode 100644 index 4576ff95568be8b19eb196d379fdf127366aadc5..0000000000000000000000000000000000000000 Binary files a/audio/skill/chouce2.mp3 and /dev/null differ diff --git a/audio/skill/fuji1.mp3 b/audio/skill/fuji1.mp3 deleted file mode 100644 index 5f4d9e8c457a14c987475369327451ac59f013b9..0000000000000000000000000000000000000000 Binary files a/audio/skill/fuji1.mp3 and /dev/null differ diff --git a/audio/skill/fuji2.mp3 b/audio/skill/fuji2.mp3 deleted file mode 100644 index 0d6e6e360f02df0c54a09164bec4f47767a56f15..0000000000000000000000000000000000000000 Binary files a/audio/skill/fuji2.mp3 and /dev/null differ diff --git a/audio/skill/jiaozi1.mp3 b/audio/skill/jiaozi1.mp3 deleted file mode 100644 index edf5f788aaf4364b3bba6e2c0d5b455ed964f950..0000000000000000000000000000000000000000 Binary files a/audio/skill/jiaozi1.mp3 and /dev/null differ diff --git a/audio/skill/jiaozi2.mp3 b/audio/skill/jiaozi2.mp3 deleted file mode 100644 index a27f49ca9e2cafd29105bcb96f3908e7362abb32..0000000000000000000000000000000000000000 Binary files a/audio/skill/jiaozi2.mp3 and /dev/null differ diff --git a/audio/skill/new__miji1.mp3 b/audio/skill/new__miji1.mp3 deleted file mode 100644 index 1104d45d47b68da5899c76e733a483423cff0b14..0000000000000000000000000000000000000000 Binary files a/audio/skill/new__miji1.mp3 and /dev/null differ diff --git a/audio/skill/new__miji2.mp3 b/audio/skill/new__miji2.mp3 deleted file mode 100644 index 3d79ed157bca48ac29635b145b20352a5d07ba74..0000000000000000000000000000000000000000 Binary files a/audio/skill/new__miji2.mp3 and /dev/null differ diff --git a/audio/skill/new__zhenlie1.mp3 b/audio/skill/new__zhenlie1.mp3 deleted file mode 100644 index f656a7f805fcabc8b74f64f0bdaf0d6ae51070fb..0000000000000000000000000000000000000000 Binary files a/audio/skill/new__zhenlie1.mp3 and /dev/null differ diff --git a/audio/skill/new__zhenlie2.mp3 b/audio/skill/new__zhenlie2.mp3 deleted file mode 100644 index bfdcbc7dbc669b2eebc13087ff18cd97638fb512..0000000000000000000000000000000000000000 Binary files a/audio/skill/new__zhenlie2.mp3 and /dev/null differ diff --git a/audio/skill/ol_ex__kuanggu1.mp3 b/audio/skill/ol_ex__kuanggu1.mp3 deleted file mode 100644 index 80cc83cdbf3ad61ed870a1b4852f477ac3e6cff3..0000000000000000000000000000000000000000 Binary files a/audio/skill/ol_ex__kuanggu1.mp3 and /dev/null differ diff --git a/audio/skill/ol_ex__kuanggu2.mp3 b/audio/skill/ol_ex__kuanggu2.mp3 deleted file mode 100644 index 2ab922c0ab67dd671a3db8467ec108715c0ecaf4..0000000000000000000000000000000000000000 Binary files a/audio/skill/ol_ex__kuanggu2.mp3 and /dev/null differ diff --git a/audio/skill/ol_ex__qimou1.mp3 b/audio/skill/ol_ex__qimou1.mp3 deleted file mode 100644 index 9c34bd3df3f2e293ea74148ca688b9bf29a74f84..0000000000000000000000000000000000000000 Binary files a/audio/skill/ol_ex__qimou1.mp3 and /dev/null differ diff --git a/audio/skill/ol_ex__qimou2.mp3 b/audio/skill/ol_ex__qimou2.mp3 deleted file mode 100644 index b9e585d9813bb70c91814b8fe63c6dadbd5d8f33..0000000000000000000000000000000000000000 Binary files a/audio/skill/ol_ex__qimou2.mp3 and /dev/null differ diff --git a/audio/skill/tiandu1.mp3 b/audio/skill/tiandu1.mp3 deleted file mode 100644 index 05b82c51149586afa57cffd5e29ea7da958337c7..0000000000000000000000000000000000000000 Binary files a/audio/skill/tiandu1.mp3 and /dev/null differ diff --git a/audio/skill/tiandu2.mp3 b/audio/skill/tiandu2.mp3 deleted file mode 100644 index e43f60cf944ba66d617c0b6d4901848537058514..0000000000000000000000000000000000000000 Binary files a/audio/skill/tiandu2.mp3 and /dev/null differ diff --git a/audio/skill/xianfu1.mp3 b/audio/skill/xianfu1.mp3 deleted file mode 100644 index 88449406c7ab3bf2b616370e5f2ec22d5fc66156..0000000000000000000000000000000000000000 Binary files a/audio/skill/xianfu1.mp3 and /dev/null differ diff --git a/audio/skill/xianfu2.mp3 b/audio/skill/xianfu2.mp3 deleted file mode 100644 index 8d10af4646bd517e681f45afa6a79884e5cc0d5f..0000000000000000000000000000000000000000 Binary files a/audio/skill/xianfu2.mp3 and /dev/null differ diff --git a/audio/skill/yingyuan1.mp3 b/audio/skill/yingyuan1.mp3 deleted file mode 100644 index e27ae270a2df7d450ea8feac7610c0b3149da2a4..0000000000000000000000000000000000000000 Binary files a/audio/skill/yingyuan1.mp3 and /dev/null differ diff --git a/audio/skill/yingyuan2.mp3 b/audio/skill/yingyuan2.mp3 deleted file mode 100644 index c68472d65029974b41b25fb4afe479100a60aef2..0000000000000000000000000000000000000000 Binary files a/audio/skill/yingyuan2.mp3 and /dev/null differ diff --git a/audio/skill/zishu1.mp3 b/audio/skill/zishu1.mp3 deleted file mode 100644 index b65959084bc566218649aaf94247cdeb133e66cd..0000000000000000000000000000000000000000 Binary files a/audio/skill/zishu1.mp3 and /dev/null differ diff --git a/audio/skill/zishu2.mp3 b/audio/skill/zishu2.mp3 deleted file mode 100644 index 65cd236dd7a4a878d6a621ac7c8e8be655180de9..0000000000000000000000000000000000000000 Binary files a/audio/skill/zishu2.mp3 and /dev/null differ diff --git a/image/generals/maliang.jpg b/image/generals/maliang.jpg deleted file mode 100644 index c151fd9205232b0a2c1d6a4e7a236f03cc7dfc13..0000000000000000000000000000000000000000 Binary files a/image/generals/maliang.jpg and /dev/null differ diff --git a/image/generals/new__wangyi.jpg b/image/generals/new__wangyi.jpg deleted file mode 100644 index 4b38f1cdc6be15bef3d89cc51af0ebfd329d223a..0000000000000000000000000000000000000000 Binary files a/image/generals/new__wangyi.jpg and /dev/null differ diff --git a/image/generals/ol_ex__weiyan.jpg b/image/generals/ol_ex__weiyan.jpg deleted file mode 100644 index 59b265483605155a4c60674c5adfdc6e96ad480b..0000000000000000000000000000000000000000 Binary files a/image/generals/ol_ex__weiyan.jpg and /dev/null differ diff --git a/image/generals/quyi.jpg b/image/generals/quyi.jpg deleted file mode 100644 index 314c3f2006bc1bfbbce59d175012ba1214a6181c..0000000000000000000000000000000000000000 Binary files a/image/generals/quyi.jpg and /dev/null differ diff --git a/image/generals/xizhicai.jpg b/image/generals/xizhicai.jpg deleted file mode 100644 index a0a6720db43ff1997d4950f25c4bc9c3329b9ccd..0000000000000000000000000000000000000000 Binary files a/image/generals/xizhicai.jpg and /dev/null differ diff --git a/init.lua b/init.lua index ed819a76c8e1fdbd42e2b79e05d0caafb958ffad..d7d6f50db6c001f3eaf44c4b1d61b8e2c8830e12 100644 --- a/init.lua +++ b/init.lua @@ -1,11 +1,9 @@ local extension = Package("joy") Fk:loadTranslationTable{ - ["joy"] = "热门武将", - -- TODO: move them + ["joy"] = "热门武将", ["m_ex"] = "手杀界", - ["ol_ex"] = "OL界", } local liuzan = General(extension, "liuzan", "wu", 4) @@ -43,19 +41,18 @@ local fenyin = fk.CreateTriggerSkill{ end, } liuzan:addSkill(fenyin) - Fk:loadTranslationTable{ ["liuzan"] = "留赞", - ["~liuzan"] = "贼子们,来吧!啊…………", - ["$fenyin1"] = "吾军杀声震天,则敌心必乱!", - ["$fenyin2"] = "阵前亢歌,以振军心!", ["fenyin"] = "奋音", [":fenyin"] = "你的回合内,当你使用和上一张牌颜色不同的牌时,你可以摸一张牌。", ["@fenyin"] = "奋音", + + ["$fenyin1"] = "吾军杀声震天,则敌心必乱!", + ["$fenyin2"] = "阵前亢歌,以振军心!", + ["~liuzan"] = "贼子们,来吧!啊…………", } local wangji = General(extension, "wangji", "wei", 3) - local qizhi = fk.CreateTriggerSkill{ name = "qizhi", anim_type = "control", @@ -106,8 +103,6 @@ local qizhi = fk.CreateTriggerSkill{ player.room:setPlayerMark(player, "@" .. self.name, 0) end, } -wangji:addSkill(qizhi) - local jinqu = fk.CreateTriggerSkill{ name = "jinqu", anim_type = "drawcard", @@ -123,85 +118,22 @@ local jinqu = fk.CreateTriggerSkill{ end end, } +wangji:addSkill(qizhi) wangji:addSkill(jinqu) - Fk:loadTranslationTable{ ["wangji"] = "王基", - ["~wangji"] = "天下之势,必归大魏,可恨,未能得见呐!", - ["$qizhi1"] = "声东击西,敌寇一网成擒。", - ["$qizhi2"] = "吾意不在此地,已遣别部出发。", ["qizhi"] = "奇制", [":qizhi"] = "当你使用基本牌或锦囊牌指定第一个目标后,你可以弃置一名不为目标的角色的一张牌,然后令其摸一张牌。", + ["jinqu"] = "进趋", + [":jinqu"] = "结束阶段开始时,你可以摸两张牌,然后将手牌弃置至X张(X为你于本回合内发动过“奇制”的次数。", ["@qizhi"] = "奇制", ["#qizhi-ask"] = "奇制:你可以弃置一名非目标角色的一张牌,然后令其摸一张牌", + + ["$qizhi1"] = "声东击西,敌寇一网成擒。", + ["$qizhi2"] = "吾意不在此地,已遣别部出发。", ["$jinqu1"] = "建上昶水城,以逼夏口!", ["$jinqu2"] = "通川聚粮,伐吴之业,当步步为营。", - ["jinqu"] = "进趋", - [":jinqu"] = "结束阶段开始时,你可以摸两张牌,然后将手牌弃置至X张(X为你于本回合内发动过“奇制”的次数。", -} - -local quyi = General(extension, "quyi", "qun", 4) - -local fuji = fk.CreateTriggerSkill{ - name = "fuji", - anim_type = "offensive", - events = { fk.CardUsing }, - frequency = Skill.Compulsory, - can_trigger = function(self, event, target, player, data) - return - target == player and - player:hasSkill(self.name) and - (data.card.trueName == "slash" or (data.card.type == Card.TypeTrick and data.card.sub_type ~= Card.SubtypeDelayedTrick)) and - #table.filter(player.room:getOtherPlayers(player), function(curPlayer) - return curPlayer:distanceTo(player) == 1 - end) > 0 - end, - on_use = function(self, event, target, player, data) - local room = player.room - local availableTargets = table.filter(room:getOtherPlayers(player), function(curPlayer) - return curPlayer:distanceTo(player) == 1 - end) - - if #availableTargets > 0 then - data.disresponsiveList = data.disresponsiveList or {} - for _, target in ipairs(availableTargets) do - table.insertIfNeed(data.disresponsiveList, target.id) - end - end - end, -} -quyi:addSkill(fuji) - -local jiaozi = fk.CreateTriggerSkill{ - name = "jiaozi", - anim_type = "offensive", - events = { fk.DamageCaused, fk.DamageInflicted }, - frequency = Skill.Compulsory, - can_trigger = function(self, event, target, player, data) - return - target == player and - player:hasSkill(self.name) and - table.every(player.room:getOtherPlayers(player), function(curPlayer) - return #player:getCardIds(Player.Hand) > #curPlayer:getCardIds(Player.Hand) - end) - end, - on_use = function(self, event, target, player, data) - data.damage = data.damage + 1 - end, -} -quyi:addSkill(jiaozi) - -Fk:loadTranslationTable{ - ["quyi"] = "麴义", - ["~quyi"] = "主公,我无异心啊!", - ["$fuji1"] = "白马?不足挂齿!", - ["$fuji2"] = "掌握之中,岂可逃之?", - ["fuji"] = "伏骑", - [":fuji"] = "锁定技,当你使用【杀】或普通锦囊牌时,你令所有至你距离为1的角色不能响应此牌。", - ["$jiaozi1"] = "数战之功,吾应得此赏!", - ["$jiaozi2"] = "无我出力,怎会连胜?", - ["jiaozi"] = "骄恣", - [":jiaozi"] = "锁定技,当你造成或受到伤害时,若你的手牌为全场唯一最多,则此伤害+1。", + ["~wangji"] = "天下之势,必归大魏,可恨,未能得见呐!", } local m_ex__xusheng = General(extension, "m_ex__xusheng", "wu", 4) @@ -235,7 +167,7 @@ local m_ex__pojun = fk.CreateTriggerSkill{ local cards = room:askForCardsChosen(player, to, 0, to.hp, "he", self.name) to:addToPile(self.name, cards, false, self.name) end, - + refresh_events = {fk.DamageCaused}, can_refresh = function(self, event, target, player, data) return target == player and player:hasSkill(self.name) and @@ -255,118 +187,13 @@ m_ex__pojun:addRelatedSkill(m_ex__pojun_clean) m_ex__xusheng:addSkill(m_ex__pojun) Fk:loadTranslationTable{ ["m_ex__xusheng"] = "界徐盛", - ["~m_ex__xusheng"] = "盛只恨,不能再为主公,破敌致胜了。", - ["$m_ex__pojun1"] = "犯大吴疆土者,盛必击而破之!", - ["$m_ex__pojun2"] = "若敢来犯,必叫你大败而归!", ["m_ex__pojun"] = "破军", ["#m_ex__pojun_clean"] = "破军", [":m_ex__pojun"] = "当你使用【杀】指定一个目标后,你可以将其至多X张牌扣置于该角色的武将牌旁(X为其体力值);若如此做,当前回合结束后,该角色获得这些牌。你使用【杀】对手牌数与装备数均不大于你的角色造成伤害时,此伤害+1。", -} -local xizhicai = General(extension, "xizhicai", "wei", 3) -xizhicai:addSkill("tiandu") -local xianfu = fk.CreateTriggerSkill{ - name = "xianfu", - events = {fk.GameStart, fk.Damaged, fk.HpRecover}, - frequency = Skill.Compulsory, - can_trigger = function(self, event, target, player, data) - if event == fk.GameStart then return player:hasSkill(self.name) end - return target:getMark(self.name) == player.id and player:hasSkill(self.name) and not target.dead - end, - on_use = function(self, event, target, player, data) - local room = player.room - if event == fk.GameStart then - local to = room:askForChoosePlayers(player, table.map(room:getOtherPlayers(player), function(p) - return p.id - end), 1, 1, "#xianfu-choose", self.name)[1] - to = room:getPlayerById(to) - room:setPlayerMark(to, self.name, player.id) - elseif event == fk.Damaged then - local mark_name = "@" .. self.name - if player:getMark(mark_name) == 0 then - room:setPlayerMark(player, mark_name, target.general) - end - room:damage{ - to = player, - damage = data.damage, - skillName = self.name, - } - elseif event == fk.HpRecover then - local mark_name = "@" .. self.name - if player:getMark(mark_name) == 0 then - room:setPlayerMark(player, mark_name, target.general) - end - room:recover{ - who = player, - num = data.num, - skillName = self.name, - } - end - end, -} -xizhicai:addSkill(xianfu) -local chouce = fk.CreateTriggerSkill{ - name = "chouce", - anim_type = "masochism", - events = {fk.Damaged}, - on_trigger = function(self, event, target, player, data) - self.cancel_cost = false - for i = 1, data.damage do - if self.cancel_cost then break end - self:doCost(event, target, player, data) - end - end, - on_cost = function(self, event, target, player, data) - local room = player.room - if room:askForSkillInvoke(player, self.name, data) then - return true - end - self.cancel_cost = true - end, - on_use = function(self, event, target, player, data) - local room = player.room - local judge = { - who = player, - reason = self.name, - } - room:judge(judge) - if judge.card.color == Card.Red then - local to = room:askForChoosePlayers(player, table.map(room:getAlivePlayers(), function(p) - return p.id - end), 1, 1, "#chouce-draw", self.name)[1] - to = room:getPlayerById(to) - to:drawCards(1 + (to:getMark("xianfu") == player.id and 1 or 0), self.name) - elseif judge.card.color == Card.Black then - local targets = table.filter(room:getAlivePlayers(), function(p) - return not p:isAllNude() - end) - local to = room:askForChoosePlayers(player, table.map(targets, function(p) - return p.id - end), 1, 1, "#chouce-discard", self.name)[1] - to = room:getPlayerById(to) - local card = room:askForCardChosen(player, to, "hej", self.name) - room:throwCard(card, self.name, to) - end - end, -} -xizhicai:addSkill(chouce) -Fk:loadTranslationTable{ - ["xizhicai"] = "戏志才", - ["~xizhicai"] = "为何……不再给我……一点点时间……", - -- ["$tiandu1"] = "天意不可逆。", - -- ["$tiandu2"] = "既是如此。", - ["$xianfu1"] = "辅佐明君,从一而终。", - ["$xianfu2"] = "吾于此生,竭尽所能。", - ["xianfu"] = "先辅", - ["@xianfu"] = "先辅", - [":xianfu"] = "锁定技,游戏开始时,你选择一名其他角色,当其受到伤害后,你受到等量的伤害;当其回复体力后,你回复等量的体力。", - ["$chouce1"] = "一筹一划,一策一略。", - ["$chouce2"] = "主公之忧,吾之所思也。", - ["chouce"] = "筹策", - [":chouce"] = "当你受到1点伤害后,你可以进行判定,若结果为:黑色,你弃置一名角色区域里的一张牌;红色,你令一名角色摸一张牌(先辅的角色摸两张)。", - ["#xianfu-choose"] = "先辅: 请选择要先辅的角色", - ["#chouce-draw"] = "筹策: 请选择一名角色令其摸牌", - ["#chouce-discard"] = "筹策: 请选择一名角色,弃置其区域内的牌", + ["$m_ex__pojun1"] = "犯大吴疆土者,盛必击而破之!", + ["$m_ex__pojun2"] = "若敢来犯,必叫你大败而归!", + ["~m_ex__xusheng"] = "盛只恨,不能再为主公,破敌致胜了。", } -- Because packages are loaded before gamelogic.lua loaded @@ -659,123 +486,11 @@ local lingcao = General(extension, "lingcao", "wu", 4) lingcao:addSkill(dujin) Fk:loadTranslationTable{ ["lingcao"] = "凌操", - ["~lingcao"] = "呃啊!(扑通)此箭……何来……", + ["dujin"] = "独进", + [":dujin"] = "摸牌阶段,你可以多摸X+1张牌,X为你装备区内牌数的一半(向下取整)", ["$dujin1"] = "带兵十万,不如老夫多甲一件!", ["$dujin2"] = "轻舟独进,破敌先锋!", - ["dujin"] = "独进", - [":dujin"] = "摸牌阶段,你可以多摸X+1张牌," .. - "X为你装备区内牌数的一半(向下取整)", -} - -local ol_ex__weiyan = General(extension, "ol_ex__weiyan", "shu", 4) -local ol_ex__kuanggu = fk.CreateTriggerSkill{ - name = "ol_ex__kuanggu", - anim_type = "drawcard", - events = {fk.Damage}, - can_trigger = function(self, event, target, player, data) - return player:hasSkill(self.name) and target == player - and player:distanceTo(data.to) <= 1 - end, - on_trigger = function(self, event, target, player, data) - self.cancel_cost = false - for i = 1, data.damage do - self:doCost(event, target, player, data) - if self.cost_data == "Cancel" then break end - end - end, - on_cost = function(self, event, target, player, data) - local room = player.room - local choices = {"draw1card", "Cancel"} - if player:isWounded() then table.insert(choices, 2, "heal1hp") end - self.cost_data = room:askForChoice(player, choices, self.name) - return self.cost_data ~= "Cancel" - end, - on_use = function(self, event, target, player, data) - local room = player.room - if self.cost_data == "heal1hp" then - room:recover({ - who = player, - num = 1, - recoverBy = player, - skillName = self.name - }) - elseif self.cost_data == "draw1card" then - player:drawCards(1, self.name) - end - end, -} -local ol_ex__qimouBuff = fk.CreateTargetModSkill{ - name = "#ol_ex__qimouBuff", - residue_func = function(self, player, skill, scope) - if skill.trueName == "slash_skill" and scope == Player.HistoryPhase then - return player:getMark("@ol_ex__qimou") or 0 - end - end, -} -local ol_ex__qimouDistance = fk.CreateDistanceSkill{ - name = "#ol_ex__qimouDistance", - global = true, -- FIXME - correct_func = function(self, from, to) - return -from:getMark("@ol_ex__qimou") - end, -} -Fk:addSkill(ol_ex__qimouDistance) --FIXME -local ol_ex__qimouCleaner = fk.CreateTriggerSkill{ - name = "#ol_ex__qimouCleaner", - refresh_events = {fk.EventPhaseStart}, - can_refresh = function(self, event, target, player, data) - return target == player and player:hasSkill(self.name) - and player.phase == Player.NotActive - end, - on_refresh = function(self, event, target, player, data) - local room = player.room - room:setPlayerMark(player, "@ol_ex__qimou", 0) - end, -} -local ol_ex__qimou = fk.CreateActiveSkill{ - name = "ol_ex__qimou", - anim_type = "offensive", - frequency = Skill.Limited, - can_use = function(self, player) - -- TODO: fk未完成的功能之一,考虑后面自动判断限定或者觉醒 - return player:usedSkillTimes(self.name, Player.HistoryGame) == 0 - end, - target_num = 0, - card_num = 0, - on_use = function(self, room, effect) - local player = room:getPlayerById(effect.from) - -- TODO: 这里应该给fk加新功能,视为/主动技使用之前应该有个额外的交互 - local choices = {} - for i = 1, player.hp do - table.insert(choices, tostring(i)) - end - local tolose = tonumber(room:askForChoice(player, choices, self.name)) - room:loseHp(player, tolose, self.name) - player:drawCards(tolose) - room:setPlayerMark(player, "@ol_ex__qimou", tolose) - end, -} -ol_ex__qimou:addRelatedSkill(ol_ex__qimouBuff) ---ol_ex__qimou:addRelatedSkill(ol_ex__qimouDistance) --FIXME -ol_ex__qimou:addRelatedSkill(ol_ex__qimouCleaner) -ol_ex__weiyan:addSkill(ol_ex__kuanggu) -ol_ex__weiyan:addSkill(ol_ex__qimou) -Fk:loadTranslationTable{ - ["ol_ex__weiyan"] = "界魏延", - ["~ol_ex__weiyan"] = "这次失败,意料之中……", - ["$ol_ex__kuanggu1"] = "反骨狂傲,彰显本色!", - ["$ol_ex__kuanggu2"] = "只有战场,能让我感到兴奋!", - ["ol_ex__kuanggu"] = "狂骨", - [":ol_ex__kuanggu"] = "你对距离1以内的角色造成1点伤害后,可以选择:" .. - "1. 摸一张牌; 2. 回复一点体力。", - ["draw1card"] = "摸一张牌", - ["heal1hp"] = "回复一点体力", - ["$ol_ex__qimou1"] = "为了胜利,可以出其不意!", - ["$ol_ex__qimou2"] = "勇战不如奇谋。", - ["ol_ex__qimou"] = "奇谋", - ["@ol_ex__qimou"] = "奇谋", - [":ol_ex__qimou"] = "限定技。出牌阶段,你可以失去X点体力,本回合内" .. - "与其他角色计算距离-X且可以多使用X张杀。", + ["~lingcao"] = "呃啊!(扑通)此箭……何来……", } local qinzheng = fk.CreateTriggerSkill{ @@ -860,224 +575,13 @@ luotong:addSkill(qinzheng) Fk:loadTranslationTable{ ["luotong"] = "骆统", - ["~luotong"] = "臣统之大愿,足以死而不朽矣。", - ["$qinzheng1"] = "夫国之有民,犹水之有舟,停则以安,扰则以危。", - ["$qinzheng2"] = "治疾及其未笃,除患贵其莫深。", ["qinzheng"] = "勤政", [":qinzheng"] = "锁定技,你每使用或打出:三张牌时,你随机获得一张【杀】或【闪】;五张牌时,你随机获得一张【桃】或【酒】;八张牌时,你随机获得一张【无中生有】或【决斗】。", ["@qinzheng"] = "勤政", -} - -local new__zhenlie = fk.CreateTriggerSkill{ - name = "new__zhenlie", - anim_type = "defensive", - events = {fk.TargetConfirmed}, - can_trigger = function(self, event, target, player, data) - if player:hasSkill(self.name) and target == player and data.from ~= player.id then - return (data.card.type == Card.TypeTrick and data.card.sub_type ~= Card.SubtypeDelayedTrick) or data.card.trueName == "slash" - end - end, - on_use = function(self, event, target, player, data) - player.room:loseHp(player, 1, from) - - table.insertIfNeed(data.nullifiedTargets, player.id) - - local tar = player.room:getPlayerById(data.from) - if tar:isAllNude() then return end - local cid = player.room:askForCardChosen( - player, - tar, - "he", - self.name - ) - - player.room:throwCard(cid, self.name, tar, player) - end, -} -local new__miji = fk.CreateTriggerSkill{ - name = "new__miji", - anim_type = "drawcard", - events = {fk.EventPhaseStart}, - can_trigger = function(self, event, target, player, data) - return player:hasSkill(self.name) and target == player and player.phase == Player.Finish and player:isWounded() - end, - on_use = function(self, event, target, player, data) - local num = player:getLostHp() - - player:drawCards(num, self.name) - - local cids = player.room:askForCard(player, 1, num, false, self.name, true) - local cards = table.map(cids, function(p) - return Fk:getCardById(p) - end) - - if #cards > 0 then - local dummy = Fk:cloneCard'slash' - local prompt = "#new__miji" - local tar = player.room:askForChoosePlayers(player, table.map(player.room:getOtherPlayers(player), function(p) - return p.id - end), 1, 1, prompt, self.name) - - dummy:addSubcards(cards) - - player.room:obtainCard(tar[1], dummy, false, fk.ReasonGive) - end - end, -} -local new__wangyi = General:new(extension, "new__wangyi", "wei", 3, 3, General.Female) - -new__wangyi:addSkill(new__zhenlie) -new__wangyi:addSkill(new__miji) - -Fk:loadTranslationTable{ - ["new__wangyi"] = "王异", - ["~new__wangyi"] = "月儿,不要责怪你爹爹!", - ["$new__zhenlie1"] = "虽是妇人,亦当奋身一搏!", - ["$new__zhenlie2"] = "为雪前耻,不惜吾身!", - ["new__zhenlie"] = "贞烈", - [":new__zhenlie"] = "当你成为其他角色使用【杀】或普通锦囊牌的目标后,你可以失去1点体力使此牌对你无效,然后你弃置其一张牌。", - ["$new__miji1"] = "此计,可歼敌精锐!", - ["$new__miji2"] = "此举,可破敌之围!", - ["new__miji"] = "秘计", - [":new__miji"] = "结束阶段,你可以摸至多X张牌(X为你已损失的体力值),然后将等量的手牌交给其他角色。", - ["#new__miji"] = "将牌交给1名其他角色", -} - -local zishu = fk.CreateTriggerSkill{ - name = "zishu", - anim_type = "drawcard", - frequency = Skill.Compulsory, - events = {fk.EventPhaseStart, fk.AfterCardsMove}, - can_trigger = function(self, event, target, player, data) - if not player:hasSkill(self.name) then return end - - if event == fk.EventPhaseStart and target.phase == Player.NotActive then - local cards = player:getMark("#zishu-discard") - - return cards ~= 0 and cards ~= {} - elseif event == fk.AfterCardsMove and player.phase < Player.NotActive then - for _, d in ipairs(data) do - return d.skillName ~= self.name and d.toArea == Player.Hand and d.to == player.id - end - end - end, - on_use = function(self, event, target, player, data) - if event == fk.EventPhaseStart then - local discards = player:getMark("#zishu-discard") - - for _, discid in ipairs(discards) do - for _, card in ipairs(player.player_cards[Player.Hand]) do - if discid == card then - player.room:throwCard(card, self.name, player, player) - end - end - end - - player.room:setPlayerMark(player, "#zishu-discard", 0) - elseif event == fk.AfterCardsMove then - player:drawCards(1, self.name) - end - end, - - refresh_events = {fk.AfterCardsMove}, - can_refresh = function(self, event, target, player, data) - if player:hasSkill(self.name) then - for _, d in ipairs(data) do - return d.skillName ~= self.name and d.toArea == Player.Hand and d.to == player.id - end - end - end, - on_refresh = function(self, event, target, player, data) - if player.phase == Player.NotActive then - local discards = player:getMark("#zishu-discard") - local cards = {} - - if discards == 0 then - discards = {} - end - - for _, d in ipairs(data) do - for _, info in ipairs(d.moveInfo) do - if d.toArea == Player.Hand and d.to == player.id and info.cardId ~= nil then - table.insert(cards, info.cardId) - end - end - end - - table.insertTable(discards, cards) - player.room:setPlayerMark(player, "#zishu-discard", discards) - end - end, -} -local yingyuan = fk.CreateTriggerSkill{ - name = "yingyuan", - anim_type = "support", - events = {fk.CardUseFinished}, - can_trigger = function(self, event, target, player, data) - if player:hasSkill(self.name) and target == player and player.phase == Player.Play and data.card ~= nil and player.room:getCardArea(data.card) == Card.Processing then - local cardMark = player:getMark("#yingyuan-give") - - if cardMark == 0 then cardMark = {} end - - return not table.contains(cardMark, data.card.trueName) - end - end, - on_cost = function(self, event, target, player, data) - local prompt = "#yingyuan-give:::" .. data.card.name - local tar = player.room:askForChoosePlayers(player, table.map(player.room:getOtherPlayers(player), function(p) - return p.id - end), 1, 1, prompt, self.name) - - if #tar > 0 then - self.cost_data = tar - return true - end - end, - on_use = function(self, event, target, player, data) - local cards = data.card - - player.room:obtainCard(self.cost_data[1], cards, false, fk.ReasonGive) - - local cardMark = player:getMark("#yingyuan-give") - - if cardMark == 0 then - cardMark = {} - end - - table.insert(cardMark, cards.trueName) - player.room:setPlayerMark(player, "#yingyuan-give", cardMark) - end, - - refresh_events = {fk.EventPhaseStart}, - can_refresh = function(self, event, target, player, data) - if player:hasSkill(self.name) and target.phase == Player.NotActive then - local cards = player:getMark("#yingyuan-give") - - return cards ~= 0 and cards ~= {} - end - end, - on_refresh = function(self, event, target, player, data) - player.room:setPlayerMark(player, "#yingyuan-give", 0) - end, -} -local maliang = General:new(extension, "maliang", "shu", 3) - -maliang:addSkill(zishu) -maliang:addSkill(yingyuan) -Fk:loadTranslationTable{ - ["maliang"] = "马良", - ["~maliang"] = "我的使命完成了吗……", - ["$zishu1"] = "慢着,让我来!", - ["$zishu2"] = "身外之物,不要也罢!", - ["zishu"] = "自书", - [":zishu"] = "锁定技,你的回合外,你获得的牌均会在当前回合结束后置入弃牌堆;你的回合内,当你不因此技能效果获得牌时,摸一张牌。", - ["#zishu-discard"] = "自书", - ["$yingyuan1"] = "接好嘞!", - ["$yingyuan2"] = "好牌只用一次怎么够?", - ["yingyuan"] = "应援", - [":yingyuan"] = "当你于回合内使用的牌置入弃牌堆后,你可以将之交给一名其他角色(相同牌名的牌每回合限一次)。", - ["#yingyuan-give"] = "你可以选择1名其他角色,并将 %arg 交给他", + ["$qinzheng1"] = "夫国之有民,犹水之有舟,停则以安,扰则以危。", + ["$qinzheng2"] = "治疾及其未笃,除患贵其莫深。", + ["~luotong"] = "臣统之大愿,足以死而不朽矣。", } @@ -1092,17 +596,7 @@ function getCardByPattern(room, pattern, fromPiles) if pattern == "damage_card" then pattern = "slash,duel,savage_assault,archery_attack,fire_attack,thunder" elseif pattern == "nondamage_card" then - pattern = "jink,peach,dismantlement,snatch,collateral,nullification,indulgence,amazing_grace,god_salvation".. - "crossbow,double_swords,qinggang_sword,ice_sword,axe,spear,blade,halberd,kylin_bow,eight_diagram,nioh_shield,chitu,dayuan,dilu,jueying,zixing,zhuahuangfeidian".. - "analeptic,iron_chain,supply_shortage".. - "guding_blade,fan,silver_lion,vine,hualiu" - end - - --THIS IS STUPID! - if pattern == "damage_card" then - pattern = "slash,duel,savage_assault,archery_attack,fire_attack,thunder" - elseif pattern == "nondamage_card" then - pattern = "jink,peach,dismantlement,snatch,collateral,nullification,indulgence,amazing_grace,god_salvation".. + pattern = "jink,peach,dismantlement,snatch,ex_nihilo,collateral,nullification,indulgence,amazing_grace,god_salvation".. "crossbow,double_swords,qinggang_sword,ice_sword,axe,spear,blade,halberd,kylin_bow,eight_diagram,nioh_shield,chitu,dayuan,dilu,jueying,zixing,zhuahuangfeidian".. "analeptic,iron_chain,supply_shortage".. "guding_blade,fan,silver_lion,vine,hualiu"