Commit a14faeec authored by Amiya's avatar Amiya

修复

parent 85338828
Pipeline #39498 failed with stages
in 3 minutes and 17 seconds
No preview for this file type
...@@ -31,8 +31,8 @@ end ...@@ -31,8 +31,8 @@ end
function s.tgcon(e,tp,eg,ep,ev,re,r,rp) function s.tgcon(e,tp,eg,ep,ev,re,r,rp)
if rp~=1-tp or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end if rp~=1-tp or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS) local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
local rc=re:GetHandler() local loc=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)
return rc:IsLocation(LOCATION_MZONE) and re:IsActiveType(TYPE_MONSTER) and g and g:IsExists(s.cfilter,1,nil,tp) return (loc&LOCATION_ONFIELD)~=0 and re:IsActiveType(TYPE_MONSTER) and g and g:IsExists(s.cfilter,1,nil,tp)
end end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
...@@ -64,7 +64,7 @@ function s.spop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,7 +64,7 @@ function s.spop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToChain() and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then if c:IsRelateToChain() and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
local ac=Duel.GetFirstTarget() local ac=Duel.GetFirstTarget()
if ac and ac:IsRelateToEffect(e) then if ac and ac:IsRelateToEffect(e) and ac:IsType(TYPE_MONSTER) then
s.cfop(e,tp,eg,ep,ev,re,r,rp,ac) s.cfop(e,tp,eg,ep,ev,re,r,rp,ac)
end end
end end
...@@ -82,7 +82,7 @@ function s.cfop(e,tp,eg,ep,ev,re,r,rp,ac) ...@@ -82,7 +82,7 @@ function s.cfop(e,tp,eg,ep,ev,re,r,rp,ac)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL) e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(ac:GetAttack()*2) e1:SetValue(ac:GetAttack()*2)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
ac:RegisterEffect(e1) ac:RegisterEffect(e1)
elseif tc:IsType(TYPE_TRAP) then elseif tc:IsType(TYPE_TRAP) then
Duel.Remove(ac,POS_FACEUP,REASON_EFFECT) Duel.Remove(ac,POS_FACEUP,REASON_EFFECT)
......
...@@ -25,18 +25,18 @@ function s.initial_effect(c) ...@@ -25,18 +25,18 @@ function s.initial_effect(c)
e2:SetOperation(s.setop) e2:SetOperation(s.setop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--special summon --special summon
local e1=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0)) e3:SetDescription(aux.Stringid(id,2))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_CHANGE_POS) e3:SetCode(EVENT_CHANGE_POS)
e1:SetProperty(EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_MZONE) e3:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1) e3:SetCountLimit(1)
e1:SetCondition(s.thcon) e3:SetCondition(s.thcon)
e1:SetTarget(s.thtg) e3:SetTarget(s.thtg)
e1:SetOperation(s.thop) e3:SetOperation(s.thop)
c:RegisterEffect(e1) c:RegisterEffect(e3)
end end
function s.costfilter(c) function s.costfilter(c)
return c:IsType(TYPE_SPELL) and c:IsAbleToRemoveAsCost() return c:IsType(TYPE_SPELL) and c:IsAbleToRemoveAsCost()
......
...@@ -73,7 +73,7 @@ function s.gspop(e,tp,eg,ep,ev,re,r,rp) ...@@ -73,7 +73,7 @@ function s.gspop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK) e1:SetCode(EFFECT_SET_ATTACK)
e1:SetValue(0) e1:SetValue(1000)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
local e2=e1:Clone() local e2=e1:Clone()
......
...@@ -32,7 +32,7 @@ function s.spcon(e,tp,eg,ep,ev,re,r,rp) ...@@ -32,7 +32,7 @@ function s.spcon(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0 return ep==tp and bit.band(r,REASON_BATTLE+REASON_EFFECT)~=0
end end
function s.spfilter(c,e,tp) function s.spfilter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsLevelAbove(3) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and (not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and (not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
or Duel.GetLocationCountFromEx(tp,tp,nil,c)>0) or Duel.GetLocationCountFromEx(tp,tp,nil,c)>0)
end end
...@@ -43,7 +43,7 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -43,7 +43,7 @@ function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
and Duel.IsExistingMatchingCard(s.spfilter,tp,loc,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(s.spfilter,tp,loc,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,loc) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,loc)
end end
function s.sptg(e,tp,eg,ep,ev,re,r,rp) function s.spop(e,tp,eg,ep,ev,re,r,rp)
local loc=LOCATION_HAND+LOCATION_GRAVE local loc=LOCATION_HAND+LOCATION_GRAVE
if ev>=2000 then loc=loc+LOCATION_DECK+LOCATION_EXTRA end if ev>=2000 then loc=loc+LOCATION_DECK+LOCATION_EXTRA end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
......
...@@ -64,7 +64,7 @@ function s.matop(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,7 +64,7 @@ function s.matop(e,tp,eg,ep,ev,re,r,rp)
end end
function s.efilter(re) function s.efilter(re)
return function(e,te) return function(e,te)
return te==re return te==re and te:IsActivated()
end end
end end
function s.setfilter(c) function s.setfilter(c)
......
...@@ -62,8 +62,9 @@ function s.tgtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -62,8 +62,9 @@ function s.tgtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end end
function s.tgop(e,tp,eg,ep,ev,re,r,rp) function s.tgop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if not tc or not tc:IsRelateToChain() or not tc:IsType(TYPE_MONSTER) then return end
if e:GetLabel()==1 then if e:GetLabel()==1 then
if tc:IsRelateToChain() and tc:IsFaceup() then if tc:IsFaceup() then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetCode(EFFECT_UPDATE_ATTACK)
...@@ -72,7 +73,7 @@ function s.tgop(e,tp,eg,ep,ev,re,r,rp) ...@@ -72,7 +73,7 @@ function s.tgop(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
elseif e:GetLabel()==2 then elseif e:GetLabel()==2 then
if tc:IsRelateToChain() and tc:IsFaceup() then if tc:IsFaceup() then
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL) e1:SetCode(EFFECT_SET_ATTACK_FINAL)
...@@ -81,7 +82,7 @@ function s.tgop(e,tp,eg,ep,ev,re,r,rp) ...@@ -81,7 +82,7 @@ function s.tgop(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
elseif e:GetLabel()==3 then elseif e:GetLabel()==3 then
if tc:IsFaceup() and tc:IsRelateToChain() and tc:IsCanBeDisabledByEffect(e) then if tc:IsFaceup() and tc:IsCanBeDisabledByEffect(e) then
Duel.NegateRelatedChain(tc,RESET_TURN_SET) Duel.NegateRelatedChain(tc,RESET_TURN_SET)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
...@@ -96,8 +97,6 @@ function s.tgop(e,tp,eg,ep,ev,re,r,rp) ...@@ -96,8 +97,6 @@ function s.tgop(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e2) tc:RegisterEffect(e2)
end end
elseif e:GetLabel()==4 then elseif e:GetLabel()==4 then
if tc:IsRelateToChain() then Duel.Destroy(tc,REASON_EFFECT)
Duel.Destroy(tc,REASON_EFFECT)
end
end end
end end
\ No newline at end of file
...@@ -3,10 +3,10 @@ local s,id,o=GetID() ...@@ -3,10 +3,10 @@ local s,id,o=GetID()
function s.initial_effect(c) function s.initial_effect(c)
c:EnableCounterPermit(0x70) c:EnableCounterPermit(0x70)
--Activate --Activate
local e1=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e0:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1) c:RegisterEffect(e0)
--to extra --to extra
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,0)) e1:SetDescription(aux.Stringid(id,0))
......
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