Commit d7e81fe6 authored by Huangnan's avatar Huangnan

fix

parent 075cdf5e
Pipeline #37371 passed with stages
in 51 minutes
......@@ -2,7 +2,6 @@
function c23100060.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,23100060+EFFECT_COUNT_CODE_OATH)
......@@ -15,22 +14,21 @@ function c23100060.spfil(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,true,false) and c.named_with_TeZhanRenXing
end
function c23100060.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local b1=Duel.IsExistingMatchingCard(c23100060.spfil,tp,LOCATION_EXTRA,0,1,nil,e,tp)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
local b1=Duel.IsExistingMatchingCard(c23100060.spfil,tp,LOCATION_EXTRA,0,1,nil,e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
local b2=Duel.IsPlayerCanDraw(tp,1)
if chk==0 then return b1 or b2 end
local op=0
if b1 and b2 then
op=Duel.SelectOption(tp,aux.Stringid(23100060,0),aux.Stringid(23100060,1))
op=Duel.SelectOption(tp,aux.Stringid(23100060,0),aux.Stringid(23100060,1))
elseif b1 then
op=Duel.SelectOption(tp,aux.Stringid(23100060,0))
op=Duel.SelectOption(tp,aux.Stringid(23100060,0))
else
op=Duel.SelectOption(tp,aux.Stringid(23100060,1))+1
op=Duel.SelectOption(tp,aux.Stringid(23100060,1))+1
end
if op==0 then
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
else
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
e:SetLabel(op)
end
......@@ -38,29 +36,20 @@ function c23100060.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local op=e:GetLabel()
if op==0 then
local g=Duel.GetMatchingGroup(c23100060.spfil,tp,LOCATION_EXTRA,0,nil,e,tp)
if g:GetCount()>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
local sg=g:Select(tp,1,1,nil)
Duel.SpecialSummon(sg,0,tp,tp,true,false,POS_FACEUP)
end
local e0=Effect.CreateEffect(e:GetHandler())
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e0:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e0:SetTargetRange(1,0)
e0:SetTarget(c23100060.splimit)
e0:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e0,tp)
local g=Duel.GetMatchingGroup(c23100060.spfil,tp,LOCATION_EXTRA,0,nil,e,tp)
if g:GetCount()>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
local sg=g:Select(tp,1,1,nil)
Duel.SpecialSummon(sg,0,tp,tp,true,false,POS_FACEUP)
end
else
local tc=Duel.GetDecktopGroup(tp,1):GetFirst()
if tc==nil then return end
Duel.Draw(tp,1,REASON_EFFECT)
if tc.named_with_ZhanShuRenXing and tc:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(23100060,2)) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
else
local tc=Duel.GetDecktopGroup(tp,1):GetFirst()
if tc==nil then return end
Duel.Draw(tp,1,REASON_EFFECT)
if tc.named_with_ZhanShuRenXing and tc:IsCanBeSpecialSummoned(e,0,tp,false,false)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(23100060,2)) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
else
Duel.SendtoDeck(tc,tp,2,REASON_EFFECT)
end
Duel.SendtoDeck(tc,tp,2,REASON_EFFECT)
end
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......@@ -68,12 +57,17 @@ function c23100060.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetCountLimit(1)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetOperation(c23100060.disop)
Duel.RegisterEffect(e1,p)
Duel.RegisterEffect(e1,tp)
end
function c23100060.disop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetFieldGroup(e:GetOwnerPlayer(),LOCATION_HAND,0)
Duel.SendtoGrave(g,REASON_EFFECT+REASON_DISCARD)
end
function c23100060.splimit(e,c)
return not (c.named_with_TeZhanRenXing or c.named_with_ZhanShuRenXing) and c:IsLocation(LOCATION_EXTRA)
end
\ No newline at end of file
......@@ -91,7 +91,7 @@ end
function s.ontograve(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_SPECIAL_SUMMON+CATEGORY_DECKDES)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_GRAVE_ACTION)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
......
......@@ -50,7 +50,7 @@ end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
local oc=e:GetLabelObject()
local check=false
if oc:GetOriginalAttribute()&ATTRIBUTE_WATER~=0 and oc:GetOriginalType()&(TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK) then check=true end
if oc:GetOriginalAttribute()&ATTRIBUTE_WATER~=0 and oc:GetOriginalType()&(TYPE_SYNCHRO+TYPE_FUSION+TYPE_LINK)~=0 then check=true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil,check)
if g:GetCount()>0 then
......
......@@ -6,6 +6,9 @@ function s.sprule(c)
end
function s.god_check(c)
local f=0
if c:IsSetCard(0x3ca2) then
f=f+1
end
if c:IsLevel(7) or c:IsRank(7) then
f=f+1
end
......@@ -18,7 +21,7 @@ function s.god_check(c)
return f
end
function s.mfilter(c)
return c:IsLevel(7) or c:IsRank(7) or c:IsLinkAttribute(ATTRIBUTE_WATER) or c:IsLinkAttribute(ATTRIBUTE_WATER) or c:IsSetCard(0x3ca2)
return c:IsLevel(7) or c:IsRank(7) or c:IsLinkAttribute(ATTRIBUTE_WATER) or c:IsLinkRace(RACE_WARRIOR+RACE_SPELLCASTER+RACE_PSYCHO) or c:IsSetCard(0x3ca2)
end
function s.ontograve(c)
local e1=Effect.CreateEffect(c)
......@@ -34,7 +37,7 @@ function s.ontograve(c)
return e1
end
function s.filter(c)
return c:IsFaceup() and s.god_check(c)>=2
return c:IsFaceupEx() and s.god_check(c)>=2
end
function s.otgcon(e,tp,eg,ep,ev,re,r,rp)
return not e:GetHandler():IsReason(REASON_EFFECT) and Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_MZONE,0,1,nil)
......@@ -91,7 +94,7 @@ function s.tdcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==tp and Duel.GetTurnCount()==e:GetHandler():GetTurnID()
end
function s.tdfilter(c)
return c:IsSetCard(0x9e) and c:IsType(TYPE_MONSTER) and c:IsAbleToDeck()
return s.god_check(c)>0 and c:IsAbleToDeck()
end
function s.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and s.tdfilter(chkc) end
......
......@@ -18,7 +18,7 @@ function s.god_check(c)
return f
end
function s.mfilter(c)
return c:IsLevel(7) or c:IsRank(7) or c:IsLinkAttribute(ATTRIBUTE_WATER) or c:IsLinkRace(RACE_WARRIOR+RACE_SPELLCASTER+RACE_PSYCHO)
return c:IsLevel(7) or c:IsRank(7) or c:IsLinkAttribute(ATTRIBUTE_WATER) or c:IsLinkAttribute(ATTRIBUTE_WATER) or c:IsSetCard(0x3ca2)
end
function s.indes(c)
local e1=Effect.CreateEffect(c)
......@@ -104,7 +104,7 @@ end
function s.otgtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsOnField() and chkc:IsControler(1-tp) and chkc:IsAbleToDeck() end
if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DISABLE)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectTarget(tp,Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,1,0,0)
end
......
......@@ -2,7 +2,7 @@
local s,id=GetID()
function s.sprule(c)
c:EnableReviveLimit()
aux.AddXyzProcedure(c,s.mfilter,7,2,s.ovfilter,aux.Stringid(id,0),s.xyzop)
aux.AddXyzProcedure(c,s.mfilter,7,3,s.ovfilter,aux.Stringid(id,0),3,s.xyzop)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
......
......@@ -27,7 +27,7 @@ function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
end
function s.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil,tp)
if g:GetCount()>0 then
local code=g:GetFirst():GetCode()
local ct=Duel.SendtoHand(g,nil,REASON_EFFECT)
......
......@@ -47,14 +47,14 @@ function c9310007.mtfilter(g,mc,c)
end
function c9310007.spop(e,tp,eg,ep,ev,re,r,rp)
local kc=e:GetHandler()
if kc:IsRelateToEffect(e) then
if kc:IsRelateToEffect(e) then
Duel.SpecialSummon(kc,0,tp,tp,false,false,POS_FACEUP)
local g=Duel.GetMatchingGroup(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,nil,c)
local g=Duel.GetMatchingGroup(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,nil,kc)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(9310007,1)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
Duel.SynchroSummon(tp,sg:GetFirst(),c)
Duel.SynchroSummon(tp,sg:GetFirst(),kc)
end
end
end
......
......@@ -60,12 +60,12 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
if kc:IsRelateToEffect(e) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and kc:IsCanBeSpecialSummoned(e,0,tp,false,false) then
Duel.SpecialSummon(kc,0,tp,tp,false,false,POS_FACEUP)
local g=Duel.GetMatchingGroup(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,nil,c)
local g=Duel.GetMatchingGroup(Card.IsSynchroSummonable,tp,LOCATION_EXTRA,0,nil,kc)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(9310007,1)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
Duel.SynchroSummon(tp,sg:GetFirst(),c)
Duel.SynchroSummon(tp,sg:GetFirst(),kc)
end
end
end
......
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