Commit 712fa20c authored by mercury233's avatar mercury233

fix

parent edd18db3
......@@ -71,7 +71,8 @@ end
function c100280002.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) then
if tc:IsRelateToEffect(e) and Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_DECK+LOCATION_EXTRA)
and c:IsRelateToEffect(e) then
Duel.SendtoHand(c,nil,REASON_EFFECT)
end
end
......@@ -22,53 +22,32 @@ function c100280003.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleasable() end
Duel.Release(e:GetHandler(),REASON_COST)
end
function c100280003.thfilter(c)
return c:IsAbleToHand() and c:IsCode(64788463,25652259,90876561)
end
function c100280003.spfilter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsCode(64788463,25652259,90876561)
end
function c100280003.opfilter(c,e,tp)
return c:IsAbleToHand() or c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsCode(64788463,25652259,90876561)
return (c:IsAbleToHand() or c:IsCanBeSpecialSummoned(e,0,tp,false,false)) and c:IsCode(64788463,25652259,90876561)
end
function c100280003.opcheck(g,e,tp)
return g:GetClassCount(Card.GetCode)==#g
and (g:FilterCount(c100280003.thfilter,nil)==2 or g:FilterCount(c100280003.spfilter,nil,e,tp)==2)
function c100280003.opcheck(g,e,tp,spcheck)
return g:GetClassCount(Card.GetCode)==2
and (g:FilterCount(Card.IsAbleToHand,nil)==2 or g:FilterCount(Card.IsCanBeSpecialSummoned,nil,e,0,tp,false,false)==2)
end
function c100280003.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local ft=Duel.GetMZoneCount(tp,e:GetHandler())
if chk==0 then
local g1=Duel.GetMatchingGroup(c100280003.thfilter,tp,LOCATION_DECK,0,nil)
local g2=Duel.GetMatchingGroup(c100280003.spfilter,tp,LOCATION_DECK,0,nil,e,tp)
return g1:GetClassCount(Card.GetCode)>=2
or not Duel.IsPlayerAffectedByEffect(tp,59822133) and ft>1 and g2:GetClassCount(Card.GetCode)>=2 end
local spcheck=Duel.GetMZoneCount(tp,e:GetHandler())>1 and not Duel.IsPlayerAffectedByEffect(tp,59822133)
local g=Duel.GetMatchingGroup(c100280003.opfilter,tp,LOCATION_DECK,0,nil,e,tp)
return g:CheckSubGroup(c100280003.opcheck,2,2,e,tp,spcheck)
end
end
function c100280003.spop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local g1=Duel.GetMatchingGroup(c100280003.thfilter,tp,LOCATION_DECK,0,nil)
local g2=Duel.GetMatchingGroup(c100280003.spfilter,tp,LOCATION_DECK,0,nil,e,tp)
local g3=Duel.GetMatchingGroup(c100280003.opfilter,tp,LOCATION_DECK,0,nil,e,tp)
local cg1=g1:GetClassCount(Card.GetCode)
local cg2=g2:GetClassCount(Card.GetCode)
if (Duel.IsPlayerAffectedByEffect(tp,59822133) or ft<=1 or cg2<2) and cg1>=2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=g1:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
elseif cg1<2 and cg2>=2 and ft>1 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=g2:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
elseif cg1>=2 or (cg2>=2 and ft>1) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local g=g3:SelectSubGroup(tp,c100280003.opcheck,false,2,2,e,tp)
local tg=g:FilterCount(c100280003.thfilter,nil)
local sg=g:FilterCount(c100280003.spfilter,nil,e,tp)
if tg>1 and (sg<2 or ft<=1 or Duel.SelectOption(tp,1190,1152)==0) then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
else
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
local spcheck=Duel.GetLocationCount(tp,LOCATION_MZONE)>1 and not Duel.IsPlayerAffectedByEffect(tp,59822133)
local g=Duel.GetMatchingGroup(c100280003.opfilter,tp,LOCATION_DECK,0,nil,e,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local sg=g:SelectSubGroup(tp,c100280003.opcheck,false,2,2,e,tp,spcheck)
if not sg then return end
local tgc=sg:FilterCount(Card.IsAbleToHand,nil)
local sgc=sg:FilterCount(Card.IsCanBeSpecialSummoned,nil,e,0,tp,false,false)
if tgc==2 and (sgc~=2 or not spcheck or Duel.SelectOption(tp,1190,1152)==0) then
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
else
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end
end
......@@ -5,11 +5,10 @@ function c100280004.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(100280004,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_SEARCH+CATEGORY_TOHAND+CATEGORY_SUMMON)
e1:SetCategory(CATEGORY_HANDES+CATEGORY_SPECIAL_SUMMON+CATEGORY_SEARCH+CATEGORY_TOHAND+CATEGORY_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,100280004)
e1:SetCost(c100280004.spcost)
e1:SetTarget(c100280004.sptg)
e1:SetOperation(c100280004.spop)
c:RegisterEffect(e1)
......@@ -26,10 +25,6 @@ function c100280004.initial_effect(c)
e2:SetOperation(c100280004.tdop)
c:RegisterEffect(e2)
end
function c100280004.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end
function c100280004.spfilter(c,e,tp)
return c:IsCode(25652259) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
......@@ -38,14 +33,17 @@ function c100280004.thfilter(c)
end
function c100280004.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(nil,tp,LOCATION_HAND,0,1,e:GetHandler())
and Duel.IsExistingMatchingCard(c100280004.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp)
and Duel.IsExistingMatchingCard(c100280004.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_SUMMON,nil,0,0,0)
end
function c100280004.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
if Duel.DiscardHand(tp,nil,1,1,REASON_EFFECT+REASON_DISCARD,nil)>0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=Duel.SelectMatchingCard(tp,c100280004.spfilter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g1:GetCount()>0 and Duel.SpecialSummon(g1,0,tp,tp,false,false,POS_FACEUP)~=0 then
......@@ -60,9 +58,7 @@ function c100280004.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.ShuffleHand(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SUMMON)
local sg=Duel.SelectMatchingCard(tp,Card.IsSummonable,tp,LOCATION_HAND+LOCATION_MZONE,0,1,1,nil,true,nil)
if sg:GetCount()>0 then
Duel.Summon(tp,sg:GetFirst(),true,nil)
end
Duel.Summon(tp,sg:GetFirst(),true,nil)
end
end
end
......@@ -94,7 +90,8 @@ end
function c100280004.tdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) then
if tc:IsRelateToEffect(e) and Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_DECK+LOCATION_EXTRA)
and c:IsRelateToEffect(e) then
Duel.SendtoHand(c,nil,REASON_EFFECT)
end
end
......@@ -7,6 +7,7 @@ function c100280006.initial_effect(c)
e1:SetCategory(CATEGORY_SUMMON+CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_MAIN_END+TIMING_BATTLE_START)
e1:SetCountLimit(1,100280006+EFFECT_COUNT_CODE_OATH)
e1:SetCondition(c100280006.condition)
e1:SetTarget(c100280006.target)
......@@ -34,9 +35,9 @@ end
function c100280006.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c100280006.checkfilter,tp,LOCATION_MZONE,0,nil)
local check1=g:GetClassCount(Card.GetCode)==3
local check2=Duel.IsExistingMatchingCard(c100280006.sumfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,nil)
if check1 and Duel.IsExistingMatchingCard(c100280006.thfilter,tp,LOCATION_DECK,0,1,nil)
and (not Duel.IsExistingMatchingCard(c100280006.sumfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,nil)
or Duel.SelectYesNo(tp,aux.Stringid(100280006,1))) then
and (not check2 or Duel.SelectYesNo(tp,aux.Stringid(100280006,1))) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c100280006.thfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoHand(g,nil,REASON_EFFECT)
......@@ -47,11 +48,9 @@ function c100280006.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.ShuffleHand(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SUMMON)
local sg=Duel.SelectMatchingCard(tp,c100280006.sumfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,1,nil)
if sg:GetCount()>0 then
Duel.Summon(tp,sg:GetFirst(),true,nil)
end
Duel.Summon(tp,sg:GetFirst(),true,nil)
end
elseif Duel.IsExistingMatchingCard(c100280006.sumfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,nil) then
elseif check2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SUMMON)
local g=Duel.SelectMatchingCard(tp,c100280006.sumfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,1,1,nil)
local tc=g:GetFirst()
......
......@@ -7,9 +7,10 @@ function c100280007.initial_effect(c)
e1:SetDescription(aux.Stringid(100280007,0))
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_MAIN_END+TIMING_BATTLE_START)
e1:SetCountLimit(1,100280007)
e1:SetCost(c100280007.cpcost)
e1:SetCondition(c100280007.cpcon)
e1:SetCost(c100280007.cpcost)
e1:SetTarget(c100280007.cptg)
e1:SetOperation(c100280007.cpop)
c:RegisterEffect(e1)
......@@ -79,7 +80,8 @@ end
function c100280007.tdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) then
if tc:IsRelateToEffect(e) and Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)~=0 and tc:IsLocation(LOCATION_DECK+LOCATION_EXTRA)
and c:IsRelateToEffect(e) then
Duel.SendtoHand(c,nil,REASON_EFFECT)
end
end
......@@ -37,7 +37,7 @@ function c100280008.confilter(c)
end
function c100280008.spcon(e,tp)
local g=Duel.GetFieldGroup(tp,LOCATION_MZONE,0)
return #g==0 or (g:GetCount()>0 and g:FilterCount(c100280008.confilter,nil)==g:GetCount())
return #g==0 or (#g>0 and g:FilterCount(c100280008.confilter,nil)==#g)
end
function c100280008.spfilter(c,e,tp)
return c:IsCode(64788463,25652259,90876561) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
......@@ -21,7 +21,7 @@ function c100280009.cfilter2(c,code)
return c:IsFaceup() and c:IsCode(code)
end
function c100280009.spfilter(c,e,tp)
return c:IsSetCard(0x2066) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
return c:IsSetCard(0x2066) and c:IsLevelBelow(4) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and not Duel.IsExistingMatchingCard(c100280009.cfilter2,tp,LOCATION_ONFIELD,0,1,nil,c:GetCode())
end
function c100280009.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -13,6 +13,7 @@ function c100280010.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_SZONE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetHintTiming(0,TIMING_END_PHASE)
e2:SetCountLimit(1,100280010)
e2:SetCondition(c100280010.condition)
e2:SetTarget(c100280010.target)
......@@ -20,7 +21,7 @@ function c100280010.initial_effect(c)
c:RegisterEffect(e2)
end
function c100280010.cfilter(c)
return c:IsFaceup() and (c:IsCode(91998119) or aux.IsMaterialListCode(c,91998119))
return c:IsFaceup() and (c:IsCode(91998119) or c:IsType(TYPE_FUSION) and aux.IsMaterialListCode(c,91998119))
end
function c100280010.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c100280010.cfilter,tp,LOCATION_MZONE,0,1,nil)
......
......@@ -17,6 +17,7 @@ function c101106024.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_MSET)
e2:SetRange(LOCATION_HAND)
e2:SetCountLimit(1,101106024)
e2:SetCondition(c101106024.spcon1)
e2:SetTarget(c101106024.sptg)
e2:SetOperation(c101106024.spop)
......
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