Commit 67794bb1 authored by mercury233's avatar mercury233

fix

parent 1b7d706e
...@@ -72,11 +72,15 @@ function c100227024.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -72,11 +72,15 @@ function c100227024.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,1-tp,g:GetCount()) Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,1-tp,g:GetCount())
end end
function c100227024.cfilter(c,p)
return c:IsLocation(LOCATION_DECK) and c:IsControler(p)
end
function c100227024.tdop(e,tp,eg,ep,ev,re,r,rp) function c100227024.tdop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,nil) local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,nil)
if g:GetCount()>0 then if g:GetCount()>0 and Duel.SendtoDeck(g,nil,2,REASON_EFFECT)>0 then
local ct=Duel.SendtoDeck(g,nil,2,REASON_EFFECT) local ct=g:FilterCount(c100227024.cfilter,nil,1-tp)
if ct>0 then if ct>0 then
Duel.ShuffleDeck(1-tp)
Duel.BreakEffect() Duel.BreakEffect()
Duel.Draw(1-tp,ct,REASON_EFFECT) Duel.Draw(1-tp,ct,REASON_EFFECT)
end end
......
...@@ -72,8 +72,11 @@ function c100227027.drop(e,tp,eg,ep,ev,re,r,rp) ...@@ -72,8 +72,11 @@ function c100227027.drop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM) local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT) Duel.Draw(p,d,REASON_EFFECT)
end end
function c100227027.ctfilter(c)
return c:GetSequence()<5
end
function c100227027.tdcon(e,tp,eg,ep,ev,re,r,rp) function c100227027.tdcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(nil,tp,LOCATION_SZONE,0,1,e:GetHandler()) return not Duel.IsExistingMatchingCard(c100227027.ctfilter,tp,LOCATION_SZONE,0,1,e:GetHandler())
end end
function c100227027.tdfilter(c) function c100227027.tdfilter(c)
return c:IsSetCard(0x4a) and c:IsType(TYPE_MONSTER) and c:IsAbleToDeck() return c:IsSetCard(0x4a) and c:IsType(TYPE_MONSTER) and c:IsAbleToDeck()
......
...@@ -37,7 +37,6 @@ function c100227028.initial_effect(c) ...@@ -37,7 +37,6 @@ function c100227028.initial_effect(c)
e4:SetCode(EVENT_FREE_CHAIN) e4:SetCode(EVENT_FREE_CHAIN)
e4:SetRange(LOCATION_SZONE) e4:SetRange(LOCATION_SZONE)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET) e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e4:SetCondition(c100227028.tdcon)
e4:SetCost(c100227028.cost) e4:SetCost(c100227028.cost)
e4:SetTarget(c100227028.tdtg) e4:SetTarget(c100227028.tdtg)
e4:SetOperation(c100227028.tdop) e4:SetOperation(c100227028.tdop)
...@@ -64,8 +63,7 @@ function c100227028.acttg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -64,8 +63,7 @@ function c100227028.acttg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local b1=c100227028.spcon(e,tp,eg,ep,ev,re,r,rp) local b1=c100227028.spcon(e,tp,eg,ep,ev,re,r,rp)
and c100227028.cost(e,tp,eg,ep,ev,re,r,rp,0) and c100227028.cost(e,tp,eg,ep,ev,re,r,rp,0)
and c100227028.sptg(e,tp,eg,ep,ev,re,r,rp,0) and c100227028.sptg(e,tp,eg,ep,ev,re,r,rp,0)
local b2=c100227028.tdcon(e,tp,eg,ep,ev,re,r,rp) local b2=c100227028.cost(e,tp,eg,ep,ev,re,r,rp,0)
and c100227028.cost(e,tp,eg,ep,ev,re,r,rp,0)
and c100227028.tdtg(e,tp,eg,ep,ev,re,r,rp,0) and c100227028.tdtg(e,tp,eg,ep,ev,re,r,rp,0)
if (b1 or b2) and Duel.SelectYesNo(tp,94) then if (b1 or b2) and Duel.SelectYesNo(tp,94) then
local op=0 local op=0
...@@ -116,9 +114,6 @@ function c100227028.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -116,9 +114,6 @@ function c100227028.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end end
end end
function c100227028.tdcon(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(nil,tp,LOCATION_SZONE,0,1,e:GetHandler())
end
function c100227028.tdfilter(c) function c100227028.tdfilter(c)
return c:IsSetCard(0x4a) and c:IsType(TYPE_MONSTER) and c:IsAbleToDeck() return c:IsSetCard(0x4a) and c:IsType(TYPE_MONSTER) and c:IsAbleToDeck()
end end
......
...@@ -64,7 +64,7 @@ function c100227037.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -64,7 +64,7 @@ function c100227037.spop(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c100227037.filter2(c,tp) function c100227037.filter2(c,tp)
return c:IsFaceup() and c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:IsRACE(RACE_WARRIOR) return c:IsFaceup() and c:IsControler(tp) and c:IsLocation(LOCATION_MZONE) and c:IsRace(RACE_WARRIOR)
end end
function c100227037.discon(e,tp,eg,ep,ev,re,r,rp) function c100227037.discon(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end if e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return false end
......
...@@ -95,7 +95,7 @@ function c100227038.cfilter(c) ...@@ -95,7 +95,7 @@ function c100227038.cfilter(c)
return c:IsFaceup() and c:IsRace(RACE_WARRIOR)and c:IsLevelAbove(5) and c:GetAttack()~=c:GetBaseAttack() return c:IsFaceup() and c:IsRace(RACE_WARRIOR)and c:IsLevelAbove(5) and c:GetAttack()~=c:GetBaseAttack()
end end
function c100227038.spcon(e,tp,eg,ep,ev,re,r,rp) function c100227038.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)>0 return Duel.GetTurnPlayer()~=tp and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)>0
and Duel.IsExistingMatchingCard(c100227038.cfilter,tp,LOCATION_MZONE,0,1,nil) and Duel.IsExistingMatchingCard(c100227038.cfilter,tp,LOCATION_MZONE,0,1,nil)
end end
function c100227038.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function c100227038.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
......
...@@ -90,23 +90,24 @@ function c100227040.atkop2(e,tp,eg,ep,ev,re,r,rp) ...@@ -90,23 +90,24 @@ function c100227040.atkop2(e,tp,eg,ep,ev,re,r,rp)
end end
function c100227040.spcon(e,tp,eg,ep,ev,re,r,rp) function c100227040.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
return c:IsReason(REASON_DESTROY) and rp==1-tp and c:GetPreviousControler()==tp and c:IsPreviousLocation(LOCATION_MZONE) return c:IsSummonType(SUMMON_TYPE_FUSION) and c:IsReason(REASON_DESTROY)
and rp==1-tp and c:GetPreviousControler()==tp and c:IsPreviousLocation(LOCATION_MZONE)
end end
function c100227040.spfilter(c,e,tp) function c100227040.spfilter(c,e,tp)
return cc:IsCode(100227039) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) return c:IsCode(100227039) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false)
end end
function c100227040.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100227040.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.GetLocationCountFromEx(tp)>0 if chk==0 then return Duel.GetLocationCountFromEx(tp)>0
and Duel.IsExistingMatchingCard(c100227040.filter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(c100227040.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end end
function c100227040.spop(e,tp,eg,ep,ev,re,r,rp) function c100227040.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCountFromEx(tp)<=0 then return end if Duel.GetLocationCountFromEx(tp)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c100227040.filter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c100227040.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc then if tc then
Duel.SpecialSummon(tc,SUMMON_TYPE_SYNCHRO,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)
tc:CompleteProcedure() tc:CompleteProcedure()
end end
end end
...@@ -73,11 +73,14 @@ function c100227044.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -73,11 +73,14 @@ function c100227044.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummonComplete() Duel.SpecialSummonComplete()
end end
end end
function c100227044.posfilter(c)
return not c:IsPosition(POS_FACEUP_DEFENSE) and c:IsCanChangePosition()
end
function c100227044.postg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100227044.postg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsDefensePos() end if chkc then return chkc:IsLocation(LOCATION_MZONE) and c100227044.posfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(Card.IsDefensePos,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end if chk==0 then return Duel.IsExistingTarget(c100227044.posfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
local g=Duel.SelectTarget(tp,Card.IsDefensePos,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil) local g=Duel.SelectTarget(tp,c100227044.posfilter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_POSITION,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_POSITION,g,g:GetCount(),0,0)
Duel.SetChainLimit(c100227044.chlimit) Duel.SetChainLimit(c100227044.chlimit)
end end
...@@ -86,7 +89,7 @@ function c100227044.chlimit(e,ep,tp) ...@@ -86,7 +89,7 @@ function c100227044.chlimit(e,ep,tp)
end end
function c100227044.posop(e,tp,eg,ep,ev,re,r,rp) function c100227044.posop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then if tc:IsRelateToEffect(e) then
Duel.ChangePosition(tc,POS_FACEUP_ATTACK) Duel.ChangePosition(tc,POS_FACEUP_DEFENSE)
end end
end end
...@@ -60,17 +60,16 @@ function c101004089.rmop(e,tp,eg,ep,ev,re,r,rp) ...@@ -60,17 +60,16 @@ function c101004089.rmop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tc=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,1,1,nil):GetFirst() local tc=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE,0,1,1,nil):GetFirst()
if tc and Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)~=0 if tc and Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)~=0
and c:IsRelateToEffect(e) and c:IsFaceup() then and tc:IsSetCard(0x107) and tc:IsType(TYPE_FIELD) then
c:CreateRelation(c,RESET_EVENT+0x1fe0000) tc:RegisterFlagEffect(101004089,RESET_EVENT+0x1fe0000,0,0)
end end
end end
function c101004089.winfilter(c,rc) function c101004089.winfilter(c)
return c:IsSetCard(0x107) and c:IsType(TYPE_FIELD) and c:IsRelateToCard(rc) return c:IsSetCard(0x107) and c:IsType(TYPE_FIELD) and c:GetFlagEffect(101004089)~=0
end end
function c101004089.winop(e,tp,eg,ep,ev,re,r,rp) function c101004089.winop(e,tp,eg,ep,ev,re,r,rp)
local WIN_REASON_FA_WINNERS=0x1d local WIN_REASON_FA_WINNERS=0x1d
local c=e:GetHandler() local g=Duel.GetMatchingGroup(c101004089.winfilter,tp,LOCATION_REMOVED,0,nil)
local g=Duel.GetMatchingGroup(c101004089.winfilter,tp,LOCATION_REMOVED,0,nil,c)
if g:GetClassCount(Card.GetCode)==3 then if g:GetClassCount(Card.GetCode)==3 then
Duel.Win(tp,WIN_REASON_FA_WINNERS) Duel.Win(tp,WIN_REASON_FA_WINNERS)
end end
......
...@@ -24,12 +24,12 @@ end ...@@ -24,12 +24,12 @@ end
function c101005040.spcon(e,tp,eg,ep,ev,re,r,rp) function c101005040.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c101005040.cfilter,tp,LOCATION_MZONE,0,1,nil) return Duel.IsExistingMatchingCard(c101005040.cfilter,tp,LOCATION_MZONE,0,1,nil)
end end
function c101005040.cfilter(c,tp) function c101005040.costfilter(c,tp)
return c:IsLinkBelow(3) and Duel.GetMZoneCount(tp,c)>0 return c:IsLinkBelow(3) and Duel.GetMZoneCount(tp,c)>0
end end
function c101005040.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function c101005040.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckReleaseGroup(tp,c101005040.cfilter,1,nil,tp) end if chk==0 then return Duel.CheckReleaseGroup(tp,c101005040.costfilter,1,nil,tp) end
local sg=Duel.SelectReleaseGroup(tp,c101005040.cfilter,1,1,nil,tp) local sg=Duel.SelectReleaseGroup(tp,c101005040.costfilter,1,1,nil,tp)
e:SetLabel(sg:GetFirst():GetLink()) e:SetLabel(sg:GetFirst():GetLink())
Duel.Release(sg,REASON_COST) Duel.Release(sg,REASON_COST)
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