diff --git a/README.md b/README.md
index 46fcaff..fd3ac5d 100644
--- a/README.md
+++ b/README.md
@@ -2,14 +2,26 @@
[新月杀(FreeKill)](https://gitee.com/notify-ctrl/FreeKill)是一款开源、支持自定义的三国杀联机软件。
-本仓库是新月杀的一个扩展包,其中包含我和我的好朋友们的原创武将!之所以叫作简浴包,是因为我们曾经踢足球时自称“简浴队”。所有设计均由我 [@baisebaoma](https://gitee.com/baisebaoma) 实现。
+本仓库是新月杀的一个扩展包,其中包含我和我的好朋友们的原创武将!之所以叫作简浴包,是因为我们曾经踢足球时自称“监狱队”,而本包的第一个武将是简自豪,故名。所有设计均由我 [@baisebaoma](https://gitee.com/baisebaoma) 实现。
我们的关注点有:足球、英雄联盟等。
本包会保留所有群友设计的原始武将,仅作出文本描述和游戏体验方面的优化(例如,假如你的五个技能全是回合开始可以发动的,那我肯定是要改的)。如果根据以后的游玩体验,这些武将中有不够平衡、不够合理的设计,我会推出优化过后的版本,如界限突破等。
+本包已上线新月杀活动服!庆祝!🎉
+
+## 想游玩我们的武将?
+
+1. 本包已上线新月杀活动服:`huosan.top`,欢迎试用!
+
+2. 如果您有自己的新月杀服务器,请输入 `install https://gitee.com/baisebaoma/jianyu` 添加本包即可。
+
+注意:本包需要您的服务器上开启了[神话再临](https://gitee.com/notify-ctrl/shzl)包才可游玩,否则会出现问题。
+
## 已实现武将
+> 注:文本仅供参考,请以游戏内描述为准!
+
### 群·简自豪 体力3
![群·简自豪](./image/generals/avatar/xjb__jianzihao.jpg "群·简自豪")
@@ -88,7 +100,6 @@
二段:锁定技,当你的角色牌上有且仅有两张【啸】时,你选择:弃掉所有【啸】并恢复一点体力,或将所有【啸】纳入手牌。
-
### 群·高天亮 体力4
![群·高天亮](./image/generals/avatar/xjb__gaotianliang.jpg "群·高天亮")
@@ -97,6 +108,13 @@
玉玉:锁定技,当你被没有【高天亮之敌】标记的角色使用【杀】造成了伤害时,你令其获得【高天亮之敌】标记。受到没有【高天亮之敌】标记的角色或因本次伤害而获得【高天亮之敌】标记的角色造成的伤害时,你可以摸三张牌,然后翻面。
+### 群·侯国玉 体力5 体力上限10
+
+![群·侯国玉](./image/generals/avatar/tym__houguoyu.jpg "群·侯国玉")
+
+三件:锁定技,当你的装备区有且仅有武器和进攻马时,你造成的伤害+1。
+
+闭月:你的回合结束时,你可以摸一张牌。
### 群·赵乾熙 体力3
@@ -106,7 +124,10 @@
原神:锁定技,你造成的属性伤害+1。
-> 特别提示:当你对被横置的角色造成属性伤害时,所有其他被横置的角色会受到的伤害+2。这是因为【铁锁连环】的效果是将你对主目标的伤害值记录,然后令你对其他所有被横置的角色也造成一次这个值的伤害。结算过程如下:你对主目标触发了【原神】,伤害+1,记录该值,然后你再对所有其他被连环的角色造成一次该值的属性伤害,再次触发【原神】,伤害+1。为了平衡这个问题,他虽然体力值仅为3,但是只有一个技能。
+> 特别提示:当你对被横置的角色造成属性伤害时,所有其他被横置的角色会受到的伤害+2。
+这是因为【铁锁连环】的效果是将你对主目标的伤害值记录,然后令你对其他所有被横置的角色也造成一次这个值的伤害。
+
+> 特别提示:当你是双将且另一个武将是界赵乾熙、你发动了【附魔】造成属性伤害时,不会触发这个技能(因为这两个技能是在同一个时机修改伤害参数)。我觉得这还挺平衡的。
### 群·界赵乾熙 体力4
@@ -116,10 +137,10 @@
> 新月杀群群友“小嘤嘤”帮助我写了下面这一版描述,感谢!
-原神:锁定技,当有角色受到火焰或雷电伤害时,若其:1. 没有标记,令其获得对应属性标记;
- 2. 拥有标记且与此次伤害属性不同,则移除此标记并执行对应效果:【雷电】其翻面;【火焰】伤害+1。
+原神:锁定技,当有角色受到火焰或雷电伤害时,若其没有该技能造成的属性标记,令其获得对应属性标记;
+ 若其拥有属性标记且与此次伤害属性不同,则依据伤害属性造成对应效果并移除标记:雷电伤害其翻面;火焰伤害该伤害+1。
-附魔:当有角色使用【杀】造成无属性伤害时,
+附魔:当有角色造成无属性伤害时,
你可以弃一张牌。若你弃的牌为:
红色,将此次伤害改为火焰;
黑色,改为雷电。
@@ -137,17 +158,12 @@
跳水:当你受到伤害时,你可以弃掉一张【点】。
罗*:当你的所有【点】花色均不同时,可以视为使用一张【**入侵】,每回合限一次;当你的【点】有4张时,可以视为使用一张【万箭齐发】。
-
已知问题:如果你的【点】有且仅有四张且花色都不同,
- 那么【**入侵】【万箭齐发】只能触发一个。这个问题将在后续修复。
+
+> 已知问题:如果你的【点】有且仅有四张且花色都不同,
+ 那么【南蛮入侵】【万箭齐发】只能触发一个。这个问题将在后续修复。
玉玊:出牌阶段,你每使用第二张基本牌时,可以将其作为【点】置于你的武将牌上。
-## 想游玩我们的武将?
-
-开启您的新月杀服务器,并输入 `install https://gitee.com/baisebaoma/jianyu` 添加本包即可。我们推荐使用 Gitee 链接。
-
-注意:本包需要您的服务器上开启了[神话再临](https://gitee.com/notify-ctrl/shzl)包才可游玩,否则会出现问题。
-
## 发现了 bug?
请提交 PR 或 Issue,或发送电子邮件至 [baisebaoma@foxmail.com](mailto:baisebaoma@foxmail.com)。感谢!
diff --git a/jianyu.lua b/jianyu.lua
index 25851f2..1b20a6f 100644
--- a/jianyu.lua
+++ b/jianyu.lua
@@ -3,11 +3,9 @@ extension.extensionName = "jianyu"
Fk:loadTranslationTable {
["jy_jianyu"] = "简浴",
- ["god"] = "神话再临·神",
- ["xjb"] = "导演设计",
- ["tym"] = "反赌专家设计",
- ["skl"] = "拂却心尘设计",
- ["buffed"] = "加强",
+ ["xjb"] = "导演",
+ ["tym"] = "反赌专家",
+ ["skl"] = "拂却心尘",
}
-- 熊简自豪
@@ -664,260 +662,262 @@ Fk:loadTranslationTable {
}
-- 唐李元浩
--- 建议删除,太强了
--- local tym__liyuanhao = General(extension, "tym__liyuanhao", "qun", 3, 3, General.Male)
+-- 建议删除,太强了。但是在活动服环境里,也许没那么强?
+local tym__liyuanhao = General(extension, "tym__liyuanhao", "qun", 3, 3, General.Male)
-- 界虎啸
-- 参考自铁骑,屯田,脑洞包明哲,克己(原来克己已经监视了使用和打出了,不用写那么复杂)
--- local jy_huxiao_2 = fk.CreateTriggerSkill{
--- name = "jy_huxiao_2",
--- anim_type = "special",
--- events = {fk.CardResponding, fk.TargetSpecified}, -- 包括了使用和打出
--- -- frequency = Skill.Compulsory,
--- can_trigger = function(self, event, target, player, data)
--- if player:hasSkill(self) and data.card.trueName == "slash" then
--- -- 使用是TS,打出是CR
--- if event == fk.TargetSpecified or event == fk.CardResponding then
--- return target == player
--- end
--- end
--- end,
--- on_use = function(self, event, target, player, data)
--- local room = player.room
--- local dummy = Fk:cloneCard("dilu")
--- dummy:addSubcards(room:getNCards(1))
--- player:addToPile("tym__liyuanhao_xiao", dummy, true, self.name)
--- end,
--- }
+local jy_huxiao_2 = fk.CreateTriggerSkill{
+ name = "jy_huxiao_2",
+ anim_type = "special",
+ events = {fk.CardResponding, fk.TargetSpecified}, -- 包括了使用和打出
+ -- frequency = Skill.Compulsory,
+ can_trigger = function(self, event, target, player, data)
+ if player:hasSkill(self) and data.card.trueName == "slash" then
+ -- 使用是TS,打出是CR
+ if event == fk.TargetSpecified or event == fk.CardResponding then
+ return target == player
+ end
+ end
+ end,
+ on_use = function(self, event, target, player, data)
+ local room = player.room
+ local dummy = Fk:cloneCard("dilu")
+ dummy:addSubcards(room:getNCards(1))
+ player:addToPile("tym__liyuanhao_xiao", dummy, true, self.name)
+ end,
+}
--- -- 界啸酒
--- -- 注释里是为了测试改成无中生有。保留在这里以防你后面还需要测试。
--- local jy_huxiao_analeptic_2 = fk.CreateViewAsSkill{
--- name = "jy_huxiao_analeptic_2",
--- anim_type = "defensive",
--- pattern = "analeptic",
--- -- pattern = "ex_nihilo",
--- expand_pile = "tym__liyuanhao_xiao",
--- card_filter = function(self, to_select, selected)
--- if #selected == 1 then return false end
--- local xiaos = Self:getPile("tym__liyuanhao_xiao")
--- if #xiaos == 0 then return false end
--- return Self:getPileNameOfId(to_select) == "tym__liyuanhao_xiao"
--- end,
--- view_as = function(self, cards)
--- if #cards ~= 1 then
--- return nil
--- end
--- local c = Fk:cloneCard("analeptic")
--- -- local c = Fk:cloneCard("ex_nihilo")
--- c.skillName = self.name
--- -- print("克隆的牌c的参数:c.name ", c.name, " c.trueName ", c.trueName)
--- c:addSubcard(cards[1])
--- return c
--- end,
--- }
+-- 界啸酒
+-- 注释里是为了测试改成无中生有。保留在这里以防你后面还需要测试。
+local jy_huxiao_analeptic_2 = fk.CreateViewAsSkill{
+ name = "jy_huxiao_analeptic_2",
+ anim_type = "defensive",
+ pattern = "analeptic",
+ -- pattern = "ex_nihilo",
+ expand_pile = "tym__liyuanhao_xiao",
+ card_filter = function(self, to_select, selected)
+ if #selected == 1 then return false end
+ local xiaos = Self:getPile("tym__liyuanhao_xiao")
+ if #xiaos == 0 then return false end
+ return Self:getPileNameOfId(to_select) == "tym__liyuanhao_xiao"
+ end,
+ view_as = function(self, cards)
+ if #cards ~= 1 then
+ return nil
+ end
+ local c = Fk:cloneCard("analeptic")
+ -- local c = Fk:cloneCard("ex_nihilo")
+ c.skillName = self.name
+ -- print("克隆的牌c的参数:c.name ", c.name, " c.trueName ", c.trueName)
+ c:addSubcard(cards[1])
+ return c
+ end,
+}
--- -- 界啸闪
--- local jy_huxiao_jink_2 = fk.CreateViewAsSkill{
--- name = "jy_huxiao_jink_2",
--- anim_type = "defensive",
--- pattern = "jink",
--- expand_pile = "tym__liyuanhao_xiao",
--- card_filter = function(self, to_select, selected)
--- if #selected == 1 then return false end
--- local xiaos = Self:getPile("tym__liyuanhao_xiao")
--- if #xiaos == 0 then return false end
--- return Self:getPileNameOfId(to_select) == "tym__liyuanhao_xiao"
--- end,
--- view_as = function(self, cards)
--- if #cards ~= 1 then
--- return nil
--- end
--- local c = Fk:cloneCard("jink")
--- c.skillName = self.name
--- c:addSubcard(cards[1])
--- return c
--- end,
--- }
+-- 界啸闪
+local jy_huxiao_jink_2 = fk.CreateViewAsSkill{
+ name = "jy_huxiao_jink_2",
+ anim_type = "defensive",
+ pattern = "jink",
+ expand_pile = "tym__liyuanhao_xiao",
+ card_filter = function(self, to_select, selected)
+ if #selected == 1 then return false end
+ local xiaos = Self:getPile("tym__liyuanhao_xiao")
+ if #xiaos == 0 then return false end
+ return Self:getPileNameOfId(to_select) == "tym__liyuanhao_xiao"
+ end,
+ view_as = function(self, cards)
+ if #cards ~= 1 then
+ return nil
+ end
+ local c = Fk:cloneCard("jink")
+ c.skillName = self.name
+ c:addSubcard(cards[1])
+ return c
+ end,
+}
--- -- 界二段
--- -- 这里的jy_erduanxiao_2全部都是抄上面普通李元浩的,因为只有数值差异。如果上面的改了,这里也得改
--- local jy_erduanxiao_2 = fk.CreateTriggerSkill{
--- name = "jy_erduanxiao_2",
--- anim_type = "support",
--- events = {fk.BeforeCardsMove}, -- 理论上来说每次牌的移动只有同一个方向的
--- -- frequency = Skill.Compulsory,
--- mute = true,
+-- 界二段
+-- 这里的jy_erduanxiao_2全部都是抄上面普通李元浩的,因为只有数值差异。如果上面的改了,这里也得改
+local jy_erduanxiao_2 = fk.CreateTriggerSkill{
+ name = "jy_erduanxiao_2",
+ anim_type = "support",
+ events = {fk.BeforeCardsMove}, -- 理论上来说每次牌的移动只有同一个方向的
+ -- frequency = Skill.Compulsory,
+ mute = true,
--- -- 测试通过。1-2,3-2都可以顺利触发。
--- -- 我猜想原因是1-2的时候可能有多张牌进出,而3-2的时候只会有一张牌出去。但我搞不懂这个数据结构,
--- -- 不知道为什么有一个是两层循环,有一个是一层循环。
--- can_trigger = function(self, event, target, player, data)
--- if not player:hasSkill(self) then return end -- 如果我自己没有这个技能,那就算了
+ -- 测试通过。1-2,3-2都可以顺利触发。
+ -- 我猜想原因是1-2的时候可能有多张牌进出,而3-2的时候只会有一张牌出去。但我搞不懂这个数据结构,
+ -- 不知道为什么有一个是两层循环,有一个是一层循环。
+ can_trigger = function(self, event, target, player, data)
+ if not player:hasSkill(self) then return end -- 如果我自己没有这个技能,那就算了
--- local xiaos = player:getPile("tym__liyuanhao_xiao")
--- player.is_xiao_changing = false
+ local xiaos = player:getPile("tym__liyuanhao_xiao")
+ player.is_xiao_changing = false
--- -- 判断是否有牌出去
--- for _, move in ipairs(data) do -- 第一层循环,不知道为啥
--- if move.from then -- 照着抄的,牌离开
--- -- print("有牌正打算离开")
--- if move.from == player.id then
--- -- print("有牌正打算从你家离开")
--- if #xiaos == 3 then
--- -- print("啸是3")
--- for _, info in ipairs(move.moveInfo) do -- 还有第二层循环。我自己的代码里没有第二层
--- if info.fromArea == Card.PlayerSpecial then
--- -- print("有牌正打算从你家特殊区离开")
--- return true
--- end
--- end
--- end
--- end
--- end
--- end
+ -- 判断是否有牌出去
+ for _, move in ipairs(data) do -- 第一层循环,不知道为啥
+ if move.from then -- 照着抄的,牌离开
+ -- print("有牌正打算离开")
+ if move.from == player.id then
+ -- print("有牌正打算从你家离开")
+ if #xiaos == 3 then
+ -- print("啸是3")
+ for _, info in ipairs(move.moveInfo) do -- 还有第二层循环。我自己的代码里没有第二层
+ if info.fromArea == Card.PlayerSpecial then
+ -- print("有牌正打算从你家特殊区离开")
+ return true
+ end
+ end
+ end
+ end
+ end
+ end
--- -- 判断是否有牌进来
--- if #xiaos == 1 then -- 如果啸是1
--- for _, move in ipairs(data) do -- 如果有一张牌是进入或者离开我的特殊区,那么这个函数可以触发
--- if (move.to == player.id and move.toArea == Card.PlayerSpecial) or
--- (move.from == player.id and move.fromArea == Card.PlayerSpecial) then
--- -- 去找一段代码,检测自己特殊区的牌离开的
--- -- print("二段笑(一段)已经检测有牌从特殊区变动", #xiaos)
--- -- 检测不到离开
--- -- if move.to == player.id and move.toArea == Card.PlayerSpecial then
--- -- print("二段笑(一段)已经检测有牌来到特殊区", #xiaos)
--- -- end
--- return true
--- end
--- end
--- end
--- end, -- 每个参数的结尾都要逗号。can_trigger是一个参数
+ -- 判断是否有牌进来
+ if #xiaos == 1 then -- 如果啸是1
+ for _, move in ipairs(data) do -- 如果有一张牌是进入或者离开我的特殊区,那么这个函数可以触发
+ if (move.to == player.id and move.toArea == Card.PlayerSpecial) or
+ (move.from == player.id and move.fromArea == Card.PlayerSpecial) then
+ -- 去找一段代码,检测自己特殊区的牌离开的
+ -- print("二段笑(一段)已经检测有牌从特殊区变动", #xiaos)
+ -- 检测不到离开
+ -- if move.to == player.id and move.toArea == Card.PlayerSpecial then
+ -- print("二段笑(一段)已经检测有牌来到特殊区", #xiaos)
+ -- end
+ return true
+ end
+ end
+ end
+ end, -- 每个参数的结尾都要逗号。can_trigger是一个参数
--- on_trigger = function(self, event, target, player, data)
--- -- 触发之后,设置变量,告诉下一个函数有没有可能在发生变化
--- player.is_xiao_changing = true
--- -- print("二段笑(第一段) on_trigger已触发,现在是", player.is_xiao_changing, #player:getPile("tym__liyuanhao_xiao"))
--- end,
--- }
+ on_trigger = function(self, event, target, player, data)
+ -- 触发之后,设置变量,告诉下一个函数有没有可能在发生变化
+ player.is_xiao_changing = true
+ -- print("二段笑(第一段) on_trigger已触发,现在是", player.is_xiao_changing, #player:getPile("tym__liyuanhao_xiao"))
+ end,
+}
--- local jy_erduanxiao_trigger_2 = fk.CreateTriggerSkill{
--- name = "#jy_erduanxiao_trigger_2",
--- events = {fk.AfterCardsMove},
--- frequency = Skill.Compulsory,
--- can_trigger = function(self, event, target, player, data)
--- return player:hasSkill(self) and -- 如果是有二段啸的角色
--- #player:getPile("tym__liyuanhao_xiao") == 2 and -- 如果啸为2
--- player.is_xiao_changing -- 如果啸有可能在变化
--- end,
+local jy_erduanxiao_trigger_2 = fk.CreateTriggerSkill{
+ name = "#jy_erduanxiao_trigger_2",
+ events = {fk.AfterCardsMove},
+ frequency = Skill.Compulsory,
+ can_trigger = function(self, event, target, player, data)
+ return player:hasSkill(self) and -- 如果是有二段啸的角色
+ #player:getPile("tym__liyuanhao_xiao") == 2 and -- 如果啸为2
+ player.is_xiao_changing -- 如果啸有可能在变化
+ end,
--- on_cost = function(self, event, target, player, data)
--- -- print("jy_erduanxiao_trigger 已触发,现在player.is_xiao_changing的值是", player.is_xiao_changing)
--- local room = player.room
--- -- 如果体力不是满的,两个选项都有;如果是满的,就黑掉【恢复体力】那个按钮。这个改动不需要改到标李元浩那边去,因为标李元浩是掉血。
--- if player.hp ~= player.maxHp then
--- self.choice = room:askForChoice(player, {"#lose_xiao_2", "#lose_hp_1_2"}, self.name)
--- else
--- self.choice = room:askForChoice(player, {"#lose_xiao_2"}, self.name, nil, nil, {"#lose_xiao_2", "#lose_hp_1_2"})
--- end
--- return true
--- end,
+ on_cost = function(self, event, target, player, data)
+ -- print("jy_erduanxiao_trigger 已触发,现在player.is_xiao_changing的值是", player.is_xiao_changing)
+ local room = player.room
+ -- 如果体力不是满的,两个选项都有;如果是满的,就黑掉【恢复体力】那个按钮。这个改动不需要改到标李元浩那边去,因为标李元浩是掉血。
+ if player.hp ~= player.maxHp then
+ self.choice = room:askForChoice(player, {"#lose_xiao_2", "#lose_hp_1_2"}, self.name)
+ else
+ self.choice = room:askForChoice(player, {"#lose_xiao_2"}, self.name, nil, nil, {"#lose_xiao_2", "#lose_hp_1_2"})
+ end
+ return true
+ end,
--- on_use = function(self, event, target, player, data)
--- local xiaos = player:getPile("tym__liyuanhao_xiao")
--- if self.choice == "#lose_xiao_2" then
--- -- 将所有【啸】纳入自己的手牌
--- player.room:moveCardTo(xiaos, Card.PlayerHand, player, fk.ReasonJustMove, self.name, "tym__liyuanhao_xiao", true, player.id)
--- elseif self.choice == "#lose_hp_1_2" then
--- -- 弃掉所有【啸】
--- player.room:throwCard(xiaos, self.name, player, player) -- 把啸全部扔掉
--- -- 回复1点体力
--- player.room:recover({
--- who = player,
--- num = 1,
--- recoverBy = player,
--- skillName = self.name,
--- })
--- end
--- end,
--- }
--- jy_erduanxiao_2:addRelatedSkill(jy_erduanxiao_trigger_2)
+ on_use = function(self, event, target, player, data)
+ local xiaos = player:getPile("tym__liyuanhao_xiao")
+ if self.choice == "#lose_xiao_2" then
+ -- 将所有【啸】纳入自己的手牌
+ player.room:moveCardTo(xiaos, Card.PlayerHand, player, fk.ReasonJustMove, self.name, "tym__liyuanhao_xiao", true, player.id)
+ elseif self.choice == "#lose_hp_1_2" then
+ -- 弃掉所有【啸】
+ player.room:throwCard(xiaos, self.name, player, player) -- 把啸全部扔掉
+ -- 回复1点体力
+ player.room:recover({
+ who = player,
+ num = 1,
+ recoverBy = player,
+ skillName = self.name,
+ })
+ end
+ end,
+}
+jy_erduanxiao_2:addRelatedSkill(jy_erduanxiao_trigger_2)
--- -- 界三件 已完成 测试通过
--- local jy_husanjian_2 = fk.CreateTriggerSkill{
--- name = "jy_husanjian_2",
--- frequency = Skill.Compulsory,
--- anim_type = "offensive",
--- events = {fk.DamageCaused},
--- can_trigger = function(self, event, target, player, data)
--- if not (target == player and player:hasSkill(self)) then return false end
--- -- 现在 target 已经是 player,并且 player 拥有这个技能了。这个时候再来看他的装备区
--- local weapon = Fk:getCardById(player:getEquipment(Card.SubtypeWeapon))
--- local armor = Fk:getCardById(player:getEquipment(Card.SubtypeArmor))
--- local defensive_ride = Fk:getCardById(player:getEquipment(Card.SubtypeDefensiveRide))
--- local offensive_ride = Fk:getCardById(player:getEquipment(Card.SubtypeOffensiveRide))
--- local treasure = Fk:getCardById(player:getEquipment(Card.Treasure))
--- return weapon and
--- not armor and
--- not defensive_ride and
--- offensive_ride and
--- not treasure
--- -- 有且只有武器和-1马
--- end,
--- on_use = function(self, event, target, player, data)
--- local room = player.room
--- player:broadcastSkillInvoke(self.name)
--- room:notifySkillInvoked(player, self.name, "offensive")
--- data.damage = data.damage + 1
--- end,
--- }
+-- 界三件 已完成 测试通过
+local jy_husanjian_2 = fk.CreateTriggerSkill{
+ name = "jy_husanjian_2",
+ frequency = Skill.Compulsory,
+ anim_type = "offensive",
+ events = {fk.DamageCaused},
+ can_trigger = function(self, event, target, player, data)
+ if not (target == player and player:hasSkill(self)) then return false end
+ -- 现在 target 已经是 player,并且 player 拥有这个技能了。这个时候再来看他的装备区
+ local weapon = Fk:getCardById(player:getEquipment(Card.SubtypeWeapon))
+ local armor = Fk:getCardById(player:getEquipment(Card.SubtypeArmor))
+ local defensive_ride = Fk:getCardById(player:getEquipment(Card.SubtypeDefensiveRide))
+ local offensive_ride = Fk:getCardById(player:getEquipment(Card.SubtypeOffensiveRide))
+ local treasure = Fk:getCardById(player:getEquipment(Card.Treasure))
+ return weapon and
+ not armor and
+ not defensive_ride and
+ offensive_ride and
+ not treasure
+ -- 有且只有武器和-1马
+ end,
+ on_use = function(self, event, target, player, data)
+ local room = player.room
+ player:broadcastSkillInvoke(self.name)
+ room:notifySkillInvoked(player, self.name, "offensive")
+ data.damage = data.damage + 1
+ end,
+}
-- TODO: 加一个触发效果器
-- 因为是两个不同的角色,两个角色的特殊区是不能通用的,所以必须分开写代码。
--- tym__liyuanhao:addSkill(jy_huxiao_2)
--- tym__liyuanhao:addSkill(jy_huxiao_analeptic_2)
--- tym__liyuanhao:addSkill(jy_huxiao_jink_2)
--- tym__liyuanhao:addSkill(jy_erduanxiao_2)
+tym__liyuanhao:addSkill(jy_huxiao_2)
+tym__liyuanhao:addSkill(jy_huxiao_analeptic_2)
+tym__liyuanhao:addSkill(jy_huxiao_jink_2)
+tym__liyuanhao:addSkill(jy_erduanxiao_2)
+-- tym__liyuanhao:addSkill(jy_husanjian_2)
--- Fk:loadTranslationTable {
--- ["tym__liyuanhao"] = "界李元浩",
--- ["tym__liyuanhao_xiao"] = "啸",
+Fk:loadTranslationTable {
+ ["tym__liyuanhao"] = "界李元浩",
+ ["tym__liyuanhao_xiao"] = "啸",
--- ["jy_huxiao_2"] = "虎啸",
--- [":jy_huxiao_2"] = [[当你使用或打出一张【杀】时,你可以将牌堆顶的一张牌置于你的角色牌上,称为【啸】。
---
“我希望我的后辈们能够记住,在你踏上职业道路的这一刻开始,你的目标就只有,冠军。”——李元浩]],
+ ["jy_huxiao_2"] = "虎啸",
+ [":jy_huxiao_2"] = [[当你使用或打出一张【杀】时,你可以将牌堆顶的一张牌置于你的角色牌上,称为【啸】。
+
“我希望我的后辈们能够记住,在你踏上职业道路的这一刻开始,你的目标就只有,冠军。”——李元浩]],
--- ["jy_huxiao_analeptic_2"] = "横刀",
--- [":jy_huxiao_analeptic_2"] = [[你可以将【啸】当作【酒】使用或打出。
---
“谁敢横刀立马……”——钱晨]],
+ ["jy_huxiao_analeptic_2"] = "横刀",
+ [":jy_huxiao_analeptic_2"] = [[你可以将【啸】当作【酒】使用或打出。
+
“谁敢横刀立马……”——钱晨]],
--- ["jy_huxiao_jink_2"] = "立马",
--- [":jy_huxiao_jink_2"] = [[你可以将【啸】当作【闪】使用或打出。
---
“……唯我虎大将军!”——钱晨]],
+ ["jy_huxiao_jink_2"] = "立马",
+ [":jy_huxiao_jink_2"] = [[你可以将【啸】当作【闪】使用或打出。
+
“……唯我虎大将军!”——钱晨]],
--- ["jy_erduanxiao_2"] = "二段",
--- [":jy_erduanxiao_2"] = "锁定技,当你的角色牌上有且仅有两张【啸】时,你选择:弃掉所有【啸】并恢复一点体力,或将所有【啸】纳入手牌。",
--- ["#jy_erduanxiao_trigger_2"] = "二段",
--- ["#lose_xiao_2"] = "将所有【啸】纳入手牌",
--- ["#lose_hp_1_2"] = "弃掉所有【啸】并恢复一点体力",
--- }
+ ["jy_erduanxiao_2"] = "二段",
+ [":jy_erduanxiao_2"] = "锁定技,当你的角色牌上有且仅有两张【啸】时,你选择:弃掉所有【啸】并恢复一点体力,或将所有【啸】纳入手牌。",
+ ["#jy_erduanxiao_trigger_2"] = "二段",
+ ["#lose_xiao_2"] = "将所有【啸】纳入手牌",
+ ["#lose_hp_1_2"] = "弃掉所有【啸】并恢复一点体力",
+}
--- -- -- 侯国玉
--- local tym__houguoyu = General(extension, "tym__houguoyu", "qun", 5, 5, General.Male)
+-- -- 侯国玉
+local tym__houguoyu = General(extension, "tym__houguoyu", "qun", 5, 10, General.Male)
--- tym__houguoyu:addSkill(jy_husanjian_2)
--- -- tym__houguoyu:addSkill("biyue")
+tym__houguoyu:addSkill(jy_husanjian_2)
+tym__houguoyu:addSkill("biyue")
--- Fk:loadTranslationTable {
--- ["tym__houguoyu"] = "侯国玉",
--- ["houguoyu"] = "侯国玉",
+Fk:loadTranslationTable {
+ ["tym__houguoyu"] = "侯国玉",
+ ["houguoyu"] = "侯国玉",
--- ["jy_husanjian_2"] = "三件",
--- [":jy_husanjian_2"] = [[锁定技,当你的装备区有且仅有武器和进攻马时,你造成的伤害+1。
---
虎三件,有时也可以指【卢登的激荡】、【虚空之杖】和【灭世者的死亡之帽】。]],
--- }
+ ["jy_husanjian_2"] = "三件",
+ [":jy_husanjian_2"] = [[锁定技,当你的装备区有且仅有武器和进攻马时,你造成的伤害+1。]],
+}
+
+--
虎三件,有时也可以指【卢登的激荡】、【虚空之杖】和【灭世者的死亡之帽】。
-- 高天亮
@@ -1030,7 +1030,7 @@ Fk:loadTranslationTable {
["jy_yuanshen"] = "原神",
[":jy_yuanshen"] = [[锁定技,你造成的属性伤害+1。
-
特别提示:当你对被横置的角色造成属性伤害时,所有其他被横置的角色会受到的伤害+2。
+
特别提示:当你对被横置的角色造成属性伤害时,所有其他被横置的角色会受到的伤害+2。
这是因为【铁锁连环】的效果是将你对主目标的伤害值记录,然后令你对其他所有被横置的角色也造成一次这个值的伤害。
特别提示:当你是双将且另一个武将是界赵乾熙、你发动了【附魔】造成属性伤害时,不会触发这个技能(因为这两个技能是在同一个时机修改伤害参数)。我觉得这还挺平衡的。]],
@@ -1406,7 +1406,7 @@ Fk:loadTranslationTable {
["jy_luojiao"] = "罗绞",
[":jy_luojiao"] = [[当你的所有【点】花色均不同时(只有1张【点】也可以),可以视为使用一张【南蛮入侵】,每回合限一次;
当你的【点】有4张时,可以视为使用一张【万箭齐发】。
-
已知问题:如果你的【点】有且仅有四张且花色都不同,
+
已知问题:如果你的【点】有且仅有四张且花色都不同,
那么【南蛮入侵】【万箭齐发】只能触发一个。这个问题将在后续修复。]],
["#jy_luojiao_archery_attack"] = "罗绞·万箭齐发",
["#jy_luojiao_savage_assault"] = "罗绞·南蛮入侵",