Commit a07e8819 authored by 未闻皂名's avatar 未闻皂名

2023/1/22 新增:破坏之剑士新卡,更新翻译,调整同名卡的判断

parent 9223b776
Pipeline #19738 passed with stages
in 5 minutes and 5 seconds
No preview for this file type
No preview for this file type
......@@ -167,6 +167,21 @@ function RushDuel.CreateOnlySoleAttackEffect(e, code, player, s_range, o_range,
e2:SetReset(reset)
Duel.RegisterEffect(e2, player)
end
-- 创建效果: 只能用这张卡进行攻击 (对玩家效果)
function RushDuel.CreateOnlyThisAttackEffect(e, code, player, s_range, o_range, reset)
local c = e:GetHandler()
local e1 = Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetTargetRange(s_range, o_range)
e1:SetTarget(function(e, c)
return c:GetFlagEffect(code) == 0
end)
e1:SetReset(reset)
Duel.RegisterEffect(e1, player)
c:RegisterFlagEffect(code, RESET_EVENT + RESETS_STANDARD - RESET_TURN_SET + reset, 0, 1)
end
-- 创建效果: Buff类效果
function RushDuel.CreateSingleEffect(e, desc, card, code, value, reset, forced)
local e1 = Effect.CreateEffect(e:GetHandler())
......
......@@ -55,3 +55,7 @@ end
function RushDuel.IsSameCode(card1, card2)
return RushDuel.GetCardCode(card1) == RushDuel.GetCardCode(card2)
end
-- 条件: 是否卡名不同
function RushDuel.IsDifferentCode(card1, card2)
return RushDuel.GetCardCode(card1) ~= RushDuel.GetCardCode(card2)
end
\ No newline at end of file
......@@ -37,9 +37,5 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end
end
RD.CreateHintEffect(e,aux.Stringid(m,1),tp,1,0,RESET_PHASE+PHASE_END)
local e1=RD.CreateAttackLimitEffect(e,cm.atktg,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
e1:SetLabel(e:GetHandler():GetFieldID())
end
function cm.atktg(e,c)
return e:GetLabel()~=c:GetFieldID()
RD.CreateOnlyThisAttackEffect(e,20109018,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
end
\ No newline at end of file
......@@ -32,8 +32,8 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then
--Attack Limit
RD.AttachCannotSelectBattleTarget(e,c,cm.atlimit,aux.Stringid(m,1),RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
RD.AttachCannotDirectAttack(e,c,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
RD.AttachCannotSelectBattleTarget(e,c,cm.atlimit,aux.Stringid(m,1),RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET+RESET_PHASE+PHASE_END)
RD.AttachCannotDirectAttack(e,c,aux.Stringid(m,2),RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET+RESET_PHASE+PHASE_END)
end
end
function cm.atlimit(e,c)
......
......@@ -23,18 +23,16 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then
local atk=e:GetLabel()*100
local reset=RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END
RD.AttachAtkDef(e,c,atk,0,reset)
local reset1=RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END
local reset2=RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET+RESET_PHASE+PHASE_END
RD.AttachAtkDef(e,c,atk,0,reset1)
RD.AttachCannotSelectBattleTarget(e,c,cm.atlimit,aux.Stringid(m,2),reset)
RD.AttachCannotDirectAttack(e,c,aux.Stringid(m,3),reset)
RD.AttachAttackAll(e,c,1,aux.Stringid(m,4),reset)
RD.AttachAttackAll(e,c,1,aux.Stringid(m,4),reset1)
end
RD.CreateHintEffect(e,aux.Stringid(m,1),tp,1,0,RESET_PHASE+PHASE_END)
RD.CreateAttackLimitEffect(e,cm.atktg,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END):SetLabel(c:GetFieldID())
RD.CreateOnlyThisAttackEffect(e,20145031,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
end
function cm.atlimit(e,c)
return c:IsDefensePos()
end
function cm.atktg(e,c)
return e:GetLabel()~=c:GetFieldID()
end
\ No newline at end of file
......@@ -30,9 +30,5 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Damage(1-tp,g:GetFirst():GetAttack(),REASON_EFFECT)
end)
RD.CreateHintEffect(e,aux.Stringid(m,2),tp,1,0,RESET_PHASE+PHASE_END)
local e1=RD.CreateAttackLimitEffect(e,cm.atktg,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
e1:SetLabel(e:GetHandler():GetFieldID())
end
function cm.atktg(e,c)
return e:GetLabel()~=c:GetFieldID()
RD.CreateOnlyThisAttackEffect(e,20155030,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
end
\ No newline at end of file
......@@ -21,7 +21,7 @@ function cm.spfilter(c,e,tp)
return c:IsLevelAbove(7) and c:IsRace(RACE_WARRIOR) and RD.IsCanBeSpecialSummoned(c,e,tp,POS_FACEUP)
end
function cm.costcheck(g,e,tp)
return g:GetClassCount(Card.GetCode,nil)==g:GetCount()
return g:GetClassCount(RD.GetCardCode,nil)==g:GetCount()
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,g,e,tp)
end
cm.cost=RD.CostSendGraveSubToDeckBottom(cm.costfilter,cm.costcheck,2,2)
......
......@@ -29,7 +29,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if c:IsFaceup() and c:IsRelateToEffect(e) then
RD.AttachAtkDef(e,c,300,0,RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
local g=Duel.GetMatchingGroup(cm.exfilter,tp,LOCATION_GRAVE,0,nil,e,tp)
if g:GetClassCount(Card.GetCode)>=4 then
if g:GetClassCount(RD.GetCardCode)>=4 then
RD.CanSelectAndSpecialSummon(aux.Stringid(m,1),aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,POS_FACEUP)
end
end
......
......@@ -32,9 +32,5 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.AttachAtkDef(e,c,2500,0,RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
end
RD.CreateHintEffect(e,aux.Stringid(m,1),tp,1,0,RESET_PHASE+PHASE_END)
local e1=RD.CreateAttackLimitEffect(e,cm.atktg,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
e1:SetLabel(c:GetFieldID())
end
function cm.atktg(e,c)
return e:GetLabel()~=c:GetFieldID()
RD.CreateOnlyThisAttackEffect(e,20199028,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
end
\ No newline at end of file
local m=120227015
local cm=_G["c"..m]
cm.name="虚空噬骸兵·球状兵"
cm.name="虚空噬骸兵·球状兵"
function cm.initial_effect(c)
--Extra Tribute
local e1=Effect.CreateEffect(c)
......
......@@ -23,7 +23,7 @@ function cm.sumcon(e,c,minc)
if c==nil then return true end
local tp=c:GetControler()
local g=Duel.GetMatchingGroup(Card.IsAttribute,tp,LOCATION_GRAVE,0,nil,ATTRIBUTE_DARK)
if g:GetClassCount(Card.GetCode)<4 then return false end
if g:GetClassCount(RD.GetCardCode)<4 then return false end
local mg=Duel.GetMatchingGroup(cm.matfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil,tp)
return c:IsLevelAbove(7) and minc<=1 and Duel.CheckTribute(c,1,1,mg)
end
......
......@@ -18,7 +18,7 @@ function cm.costfilter(c)
return c:IsLevel(6) and RD.IsDefense(c,500) and c:IsAbleToDeckOrExtraAsCost()
end
function cm.costcheck(g)
return g:GetClassCount(Card.GetCode)==g:GetCount()
return g:GetClassCount(RD.GetCardCode)==g:GetCount()
end
cm.cost=RD.CostSendGraveSubToDeck(cm.costfilter,cm.costcheck,4,4)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
......
local m=120235007
local list={120228043}
local cm=_G["c"..m]
cm.name="红"
cm.name="红色化学人"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--To Hand
......
local m=120235019
local cm=_G["c"..m]
cm.name="超可爱执行者·飞翔女"
cm.name="超可爱执行者·救火女"
function cm.initial_effect(c)
--Special Summon Procedure
RD.AddHandSpecialSummonProcedure(c,aux.Stringid(m,0),cm.spcon)
......@@ -40,9 +40,5 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.AttachAtkDef(e,c,atk,0,RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
end
RD.CreateHintEffect(e,aux.Stringid(m,1),tp,1,0,RESET_PHASE+PHASE_END)
local e1=RD.CreateAttackLimitEffect(e,cm.atktg,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
e1:SetLabel(c:GetFieldID())
end
function cm.atktg(e,c)
return e:GetLabel()~=c:GetFieldID()
RD.CreateOnlyThisAttackEffect(e,20235019,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
end
\ No newline at end of file
......@@ -18,7 +18,7 @@ function cm.costfilter(c)
return c:IsRace(RACE_CELESTIALWARRIOR)
end
function cm.costcheck(g)
return g:GetCount()==g:GetClassCount(Card.GetCode)
return g:GetClassCount(RD.GetCardCode)==g:GetCount()
end
cm.cost=RD.CostShowGroupExtra(cm.costfilter,cm.costcheck,1,5,Group.GetCount)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -17,7 +17,7 @@ function cm.costfilter(c)
return c:IsRace(RACE_CELESTIALWARRIOR)
end
function cm.costcheck(g)
return g:GetCount()==g:GetClassCount(Card.GetCode)
return g:GetClassCount(RD.GetCardCode)==g:GetCount()
end
cm.cost=RD.CostShowGroupExtra(cm.costfilter,cm.costcheck,1,5,Group.GetCount)
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
......
local m=120235033
local list={120227015,120231048,120231069}
local cm=_G["c"..m]
cm.name="虚空噬骸兵·浮星"
cm.name="虚空噬骸兵·原恒星兵"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Fusion Material
......
......@@ -26,7 +26,7 @@ function cm.tdfilter(c)
return c:IsFaceup() and c:IsLevelBelow(8) and c:IsAbleToDeck()
end
function cm.check(g)
return g:GetClassCount(Card.GetCode)==g:GetCount()
return g:GetClassCount(RD.GetCardCode)==g:GetCount()
end
cm.cost=RD.CostSendGraveToDeck(cm.costfilter,2,2)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
......
local m=120235059
local cm=_G["c"..m]
cm.name="暗星云"
cm.name="暗星云"
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......
local m=120235064
local cm=_G["c"..m]
cm.name="冲史莱姆"
cm.name="冲史莱姆"
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......
local m=120238007
local list={120170000}
local cm=_G["c"..m]
cm.name="传说之战士-破坏之剑士"
function cm.initial_effect(c)
--Change Code
aux.EnableChangeCode(c,list[1],LOCATION_GRAVE)
--Cannot Direct Attack
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_DIRECT_ATTACK)
c:RegisterEffect(e1)
--Atk Up
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(cm.atkval)
c:RegisterEffect(e2)
end
--Atk Up
function cm.filter(c)
return c:IsFaceup() and c:IsRace(RACE_DRAGON)
end
function cm.atkval(e,c)
return Duel.GetMatchingGroupCount(cm.filter,c:GetControler(),0,LOCATION_MZONE,nil)*500
end
\ No newline at end of file
local m=120238037
local list={120170000}
local cm=_G["c"..m]
cm.name="龙破坏之证人"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Discard Deck
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DECKDES+CATEGORY_TOHAND+CATEGORY_GRAVE_ACTION)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Discard Deck
function cm.thfilter(c)
return RD.IsLegendCode(c,list[1]) and c:IsAbleToHand()
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return RD.IsSummonTurn(e:GetHandler())
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDiscardDeck(tp,2) end
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,2)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if RD.SendDeckTopToGraveAndExists(tp,2) then
RD.CanSelectAndDoAction(aux.Stringid(m,1),HINTMSG_ATOHAND,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,0,1,1,nil,function(sg)
Duel.BreakEffect()
RD.SendToHandAndExists(sg,1-tp)
end)
end
end
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment