diff --git a/audio/death/jy__guinaifen.mp3 b/audio/death/jy__guinaifen.mp3 new file mode 100644 index 0000000..b512aed Binary files /dev/null and b/audio/death/jy__guinaifen.mp3 differ diff --git a/audio/skill/jy_dingfei1.mp3 b/audio/skill/jy_dingfei1.mp3 new file mode 100644 index 0000000..df543d0 Binary files /dev/null and b/audio/skill/jy_dingfei1.mp3 differ diff --git a/audio/skill/jy_dingfei2.mp3 b/audio/skill/jy_dingfei2.mp3 new file mode 100644 index 0000000..496e13c Binary files /dev/null and b/audio/skill/jy_dingfei2.mp3 differ diff --git a/audio/skill/jy_dingfei3.mp3 b/audio/skill/jy_dingfei3.mp3 new file mode 100644 index 0000000..b0786ca Binary files /dev/null and b/audio/skill/jy_dingfei3.mp3 differ diff --git a/audio/skill/jy_zhaoyong1.mp3 b/audio/skill/jy_zhaoyong1.mp3 new file mode 100644 index 0000000..3373910 Binary files /dev/null and b/audio/skill/jy_zhaoyong1.mp3 differ diff --git a/audio/skill/jy_zhaoyong2.mp3 b/audio/skill/jy_zhaoyong2.mp3 new file mode 100644 index 0000000..d152157 Binary files /dev/null and b/audio/skill/jy_zhaoyong2.mp3 differ diff --git a/image/generals/avatar/jy__guinaifen.jpg b/image/generals/avatar/jy__guinaifen.jpg new file mode 100644 index 0000000..3ee033c Binary files /dev/null and b/image/generals/avatar/jy__guinaifen.jpg differ diff --git a/image/generals/jy__guinaifen.jpg b/image/generals/jy__guinaifen.jpg new file mode 100644 index 0000000..a99a9a7 Binary files /dev/null and b/image/generals/jy__guinaifen.jpg differ diff --git a/jianyu_tg.lua b/jianyu_tg.lua index 3b5cc93..09fda54 100644 --- a/jianyu_tg.lua +++ b/jianyu_tg.lua @@ -2501,6 +2501,10 @@ local zhuojing = fk.CreateViewAsSkill { end } +local luocha = General(extension, "jy__luocha", "qun", 2, 3) +luocha:addSkill(suzhan) +luocha:addSkill(zhuojing) + Fk:loadTranslationTable { ["jy__luocha"] = [[罗刹]], ["#jy__luocha"] = [[化外羁旅]], @@ -2530,8 +2534,163 @@ Fk:loadTranslationTable { ["$jy_zhuojing2"] = [[逝者将再临!]], } -local luocha = General(extension, "jy__luocha", "qun", 2, 3) -luocha:addSkill(suzhan) -luocha:addSkill(zhuojing) +local zhaoyong = fk.CreateActiveSkill { + name = "jy_zhaoyong", + switch_skill_name = "jy_zhaoyong", + anim_type = "switch", + prompt = function(self, selected_cards, selected_targets) + local card_name + if Self:getSwitchSkillState(self.name, true) == fk.SwitchYang then + card_name = Fk:translate("await_exhausted") + else + card_name = Fk:translate("fire_attack") + end + return "#jy_zhaoyong:::" .. card_name + end, + can_use = function(self, player) + return player:usedSkillTimes(self.name, Player.HistoryPhase) == 0 + end, + card_filter = Util.FalseFunc, + on_use = function(self, room, effect) + local from = room:getPlayerById(effect.from) + from:turnOver() + local card_name + if from:getSwitchSkillState(self.name, true) == fk.SwitchYang then + card_name = "await_exhausted" + else + card_name = "fire_attack" + end + if from:isAlive() then + room:useVirtualCard(card_name, nil, from, from, self.name, false) + end + end, +} +local zhaoyong_trigger = fk.CreateTriggerSkill { + name = "#jy_zhaoyong_trigger", + events = { fk.AfterCardsMove }, + frequency = Skill.Compulsory, + mute = true, + can_trigger = function(self, event, target, player, data) + local room = player.room + if player:hasSkill(self) then + -- 因为火攻或以逸待劳而弃牌,而他们的父事件是zhaoyong + local e = room.logic:getCurrentEvent():findParent(GameEvent.UseCard) + if e then + local use = e.data[1] + if use and use.card.name == "fire_attack" or use.card.name == "await_exhausted" then + local ep = e.parent + if ep and ep.event == GameEvent.SkillEffect then + local _skill = ep.data[3] + local skill = _skill.main_skill and _skill.main_skill or _skill + if skill.name == "jy_zhaoyong" then + for _, move in ipairs(data) do + if move.from == player.id then + for _, info in ipairs(move.moveInfo) do + if move.toArea == Card.DiscardPile and move.moveReason == fk.ReasonDiscard and move.from and (info.fromArea == Card.PlayerHand or info.fromArea == Card.PlayerEquip) and room:getCardArea(info.cardId) == Card.DiscardPile and Fk:getCardById(info.cardId).color == Card.Red then + return true + end + end + end + end + end + end + end + end + end + end, + on_use = function(self, event, target, player, data) + local choices = { "#jy_zhaoyong_draw_to_4", "#jy_zhaoyong_reset" } + local hand_num = #player:getCardIds("h") + if hand_num >= 4 then + table.removeOne(choices, "#jy_zhaoyong_draw_to_4") + end + local choice = player.room:askForChoice(player, choices, "jy_zhaoyong", + "#jy_zhaoyong_choose", false, { "#jy_zhaoyong_draw_to_4", "#jy_zhaoyong_reset" }) + if choice == "#jy_zhaoyong_draw_to_4" then + player:drawCards(4 - hand_num, self.name) + else + player:setSkillUseHistory("jy_zhaoyong", 0, Player.HistoryPhase) + end + end, +} +zhaoyong:addRelatedSkill(zhaoyong_trigger) + +local dingfei = fk.CreateTriggerSkill { + name = "jy_dingfei", + anim_type = "defensive", + prompt = "#jy_dingfei-propmt", + events = { fk.Damaged }, + can_trigger = function(self, event, target, player, data) + return player:hasSkill(self) and data.from and target == player and + player:usedSkillTimes(self.name, Player.HistoryTurn) == 0 + end, + on_use = function(self, event, target, player, data) + local room = player.room + -- 统计花色 + local hands = player:getCardIds("h") + local handsSuit = suitCount(hands) + local hint = "" + for c, s in ipairs(handsSuit) do + if s == 0 then + if c == Card.Spade then + hint = hint .. [[♠]] + elseif c == Card.Heart then + hint = hint .. [[]] + elseif c == Card.Club then + hint = hint .. [[♣]] + elseif c == Card.Diamond then + hint = hint .. [[♦️]] + end + end + end + player:showCards(hands) + local discardedSuit = suitCount(player.room:askForDiscard(data.from, 0, #data.from:getCardIds("h"), false, self.name, + true, nil, + "#jy_dingfei-discard:" .. player.id .. "::" .. hint)) + for i = 1, 4 do + if handsSuit[i] == 0 and discardedSuit[i] == 0 then + room:recover({ + who = player, + num = 1, + recoverBy = player, + skillName = self.name, + }) + break + end + end + end, +} +local guinaifen = General(extension, "jy__lukai", "wu", 4) +guinaifen:addSkill(dingfei) + +local gnf = General(extension, "jy__guinaifen", "qun", 3, 3, General.Female) +gnf:addSkill(zhaoyong) +gnf:addSkill(dingfei) + +Fk:loadTranslationTable { + ["jy__guinaifen"] = "桂乃芬", + ["#jy__guinaifen"] = "「街头行为表演艺术家」", + ["designer:jy__guinaifen"] = "三秋", + ["cv:jy__guinaifen"] = "小敢", + ["illustrator:jy__guinaifen"] = "米哈游", + ["~jy__guinaifen"] = [[哎呀,演砸了……]], + + ["jy_zhaoyong"] = "肇涌", + [":jy_zhaoyong"] = [[转换技,出牌阶段限一次,你可以翻面并视为对自己使用①【以逸待劳】;②【火攻】。若你因此弃置了红色牌,你可以将手牌摸至四张或令此技能视为未发动过。]], + ["#jy_zhaoyong"] = "肇涌:翻面并视为对自己使用【%arg】,若弃置红色牌则可将手牌摸至4张或令此技能视为未发动过", + ["#jy_zhaoyong_choose"] = "肇涌:选择后续效果", + ["#jy_zhaoyong_draw_to_4"] = "将手牌摸至四张", + ["#jy_zhaoyong_reset"] = "此技能视为未发动过", + ["$jy_zhaoyong1"] = "恭喜发财!", + ["$jy_zhaoyong2"] = "花开富贵!", + + ["jy_dingfei"] = "鼎沸", + [":jy_dingfei"] = [[每回合限一次,你受到伤害后,可以展示所有手牌并令伤害来源可以弃置任意张手牌。除非其弃置的牌中每种你手牌没有的花色至少各有一张,否则你回复一点体力。]], + ["#jy_dingfei-prompt"] = [[鼎沸:是否展示手牌并令伤害来源弃牌,若其弃牌未满足条件则你回复一点体力]], + ["#jy_dingfei-discard"] = [[鼎沸:弃置 %arg 手牌至少各一张,否则 %src 回复一点体力]], + ["$jy_dingfei1"] = [[哎哟,您可别放水。]], + ["$jy_dingfei2"] = [[幸亏我练过!]], + ["$jy_dingfei3"] = [[还来劲了啊你!]], +} return extension