Commit 1f9c4ec4 authored by POLYMER's avatar POLYMER

fix

parent 956f422a
......@@ -169,6 +169,7 @@ function cm.initial_effect(c)
end
end
function Group.CancelableSelect(g,sp,min,max,nc)
if Duel.DisableActionCheck then Duel.DisableActionCheck(true) end
if Duel.GetFlagEffect(0,m)>0 and min<=1 and max==1 then
local ng=g:Clone()
if aux.GetValueType(nc)=="Card" then ng:RemoveCard(nc) end
......@@ -180,8 +181,10 @@ function cm.initial_effect(c)
cm[sp]=cm[sp]+1
local tg=ng:RandomSelect(sp,1)
if tg:GetFirst() and tg:GetFirst():IsLocation(LOCATION_DECK+LOCATION_EXTRA) then Duel.ConfirmCards(sp,tg) end
if Duel.DisableActionCheck then Duel.DisableActionCheck(false) end
return tg
else
if Duel.DisableActionCheck then Duel.DisableActionCheck(false) end
return _CancelableSelect(g,sp,min,max,nc)
end
end
......
......@@ -106,7 +106,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.XyzLevelFreeGoal(g,tp,xyzc,gf)
return (not gf or gf(g)) and Duel.GetLocationCountFromEx(tp,tp,g,TYPE_XYZ)>0
......
......@@ -106,7 +106,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.XyzLevelFreeGoal(g,tp,xyzc,gf)
return (not gf or gf(g)) and Duel.GetLocationCountFromEx(tp,tp,g,TYPE_XYZ)>0
......
......@@ -103,7 +103,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.XyzLevelFreeGoal(g,tp,xyzc,gf)
return (not gf or gf(g)) and Duel.GetLocationCountFromEx(tp,tp,g,TYPE_XYZ)>0
......
......@@ -107,7 +107,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.XyzLevelFreeGoal(g,tp,xyzc,gf)
return (not gf or gf(g)) and Duel.GetLocationCountFromEx(tp,tp,g,TYPE_XYZ)>0
......
......@@ -62,7 +62,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.tdfilter(c,se)
return c:IsFaceup() and c:IsSetCard(0x9977) and c:IsAbleToDeck()
......
......@@ -124,7 +124,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.spfilter2(c,e,tp)
return c:IsSetCard(0x9977) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
......@@ -68,7 +68,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.refilter(c)
return c:IsAbleToRemove() and c:IsSetCard(0x9977)
......
......@@ -68,7 +68,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.tdfilter(c,se)
return c:IsFaceup() and c:IsSetCard(0x9977) and c:IsAbleToHand()
......
......@@ -123,7 +123,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.refilter(c)
return c:IsAbleToRemove() and c:IsSetCard(0x9977)
......
......@@ -124,7 +124,7 @@ function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.refilter(c,tp)
return c:IsAbleToRemove() and c:IsSetCard(0x9977) and c:IsFaceup() and (Duel.GetLocationCount(tp,LOCATION_SZONE)>0 or (c:IsLocation(LOCATION_SZONE) and c:GetSequence()<5))
......
......@@ -41,7 +41,7 @@ function cm.initial_effect(c)
e5:SetDescription(aux.Stringid(m,1))
e5:SetCategory(CATEGORY_TODECK)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
e5:SetCode(EVENT_CUSTOM+m)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetRange(LOCATION_REMOVED)
e5:SetLabelObject(e0)
......@@ -49,6 +49,12 @@ function cm.initial_effect(c)
e5:SetTarget(cm.sptg)
e5:SetOperation(cm.spop)
c:RegisterEffect(e5)
local e5=e2:Clone()
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e5:SetCode(EVENT_MOVE)
e5:SetCondition(cm.spcon2)
c:RegisterEffect(e5)
aux.RegisterMergedDelayedEvent(c,m,EVENT_SPSUMMON_SUCCESS)
if not cm.global_check then
cm.global_check=true
cm.activate_sequence={}
......@@ -143,17 +149,17 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,cm.refilter,tp,LOCATION_HAND+LOCATION_MZONE,LOCATION_HAND+LOCATION_MZONE,ct,ct,nil)
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end
function cm.spfilter(c)
return c:IsFaceup() and c:IsSetCard(0x9977)
end
function cm.spfilter(c,se)
if not (se==nil or c:GetReasonEffect()~=se) then return false end
return c:IsFaceup() and c:IsSetCard(0x9977)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.spcon2(e,tp,eg,ep,ev,re,r,rp)
local bool,ceg=Duel.CheckEvent(EVENT_CUSTOM+m,true)
return eg:IsContains(e:GetHandler()) and bool and ceg:IsExists(cm.spfilter,1,nil) and (re==nil or not re:IsActivated())
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsAbleToDeck() and c:GetFlagEffect(m)==0 end
......
......@@ -8,6 +8,22 @@ function cm.initial_effect(c)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
--adjust(disablecheck)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCode(EVENT_ADJUST)
e2:SetLabelObject(e1)
e2:SetOperation(cm.adjustop)
Duel.RegisterEffect(e2,0)
end
function cm.adjustop(e,tp,eg,ep,ev,re,r,rp)
local e1=e:GetLabelObject()
if cm.condition(e,e:GetHandler():GetControler(),eg,ep,ev,re,r,rp) then
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_INACTIVATE+EFFECT_FLAG_CAN_FORBIDDEN)
else
e1:SetProperty(0)
end
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local ct=math.abs(Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)-Duel.GetFieldGroupCount(tp,0,LOCATION_ONFIELD))
......@@ -17,10 +33,10 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local g=Duel.GetFieldGroup(tp,0,LOCATION_ONFIELD)
if chk==0 then return #g>0 end
--Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,0,1-tp,LOCATION_ONFIELD)
--[[Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,0,1-tp,LOCATION_ONFIELD)
if cm.condition(e,tp,eg,ep,ev,re,r,rp) then
e:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_INACTIVATE+0x200)
else e:SetProperty(0) end
else e:SetProperty(0) end--]]
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetFieldGroup(tp,0,LOCATION_ONFIELD)
......
......@@ -105,7 +105,7 @@ function cm.negop(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e3)
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOFIELD)
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,cm.pfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
local tc1=g:GetFirst()
if tc1 then
Duel.MoveToField(tc1,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
......
......@@ -10,7 +10,7 @@ function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CAN_FORBIDDEN)
e1:SetTarget(cm.lklimit)
c:RegisterEffect(e1)
--search
......
......@@ -60,19 +60,30 @@ end
function c9911201.setfilter(c)
local b1=c:IsLocation(LOCATION_HAND) and c:IsSSetable()
local b2=c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2)
local b3=c:IsLocation(LOCATION_DECK) and c:IsSetCard(0x5958) and c:IsSSetable()
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2 or b3)
end
function c9911201.settg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c9911201.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,nil)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
if chk==0 then return Duel.IsExistingMatchingCard(c9911201.setfilter,tp,loc,0,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,9911201,0x5958,TYPES_NORMAL_TRAP_MONSTER,0,2100,2,RACE_PLANT,ATTRIBUTE_EARTH) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c9911201.setop(e,tp,eg,ep,ev,re,r,rp)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,c9911201.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,1,nil):GetFirst()
local tc=Duel.SelectMatchingCard(tp,c9911201.setfilter,tp,loc,0,1,1,nil):GetFirst()
if not tc then return end
if tc:IsLocation(LOCATION_HAND) then
if tc:IsLocation(LOCATION_HAND+LOCATION_DECK) then
if tc:IsLocation(LOCATION_DECK) then
Duel.Hint(HINT_CARD,0,9911233)
fe:UseCountLimit(tp)
end
if Duel.SSet(tp,tc)==0 then return end
else
tc:CancelToGrave()
......
......@@ -62,19 +62,30 @@ end
function c9911202.setfilter(c)
local b1=c:IsLocation(LOCATION_HAND) and c:IsSSetable()
local b2=c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2)
local b3=c:IsLocation(LOCATION_DECK) and c:IsSetCard(0x5958) and c:IsSSetable()
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2 or b3)
end
function c9911202.settg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c9911202.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,nil)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
if chk==0 then return Duel.IsExistingMatchingCard(c9911202.setfilter,tp,loc,0,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,9911202,0x5958,TYPES_NORMAL_TRAP_MONSTER,1850,0,2,RACE_ROCK,ATTRIBUTE_FIRE) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c9911202.setop(e,tp,eg,ep,ev,re,r,rp)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,c9911202.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,1,nil):GetFirst()
local tc=Duel.SelectMatchingCard(tp,c9911202.setfilter,tp,loc,0,1,1,nil):GetFirst()
if not tc then return end
if tc:IsLocation(LOCATION_HAND) then
if tc:IsLocation(LOCATION_HAND+LOCATION_DECK) then
if tc:IsLocation(LOCATION_DECK) then
Duel.Hint(HINT_CARD,0,9911233)
fe:UseCountLimit(tp)
end
if Duel.SSet(tp,tc)==0 then return end
else
tc:CancelToGrave()
......
......@@ -58,19 +58,30 @@ end
function c9911212.setfilter(c)
local b1=c:IsLocation(LOCATION_HAND) and c:IsSSetable()
local b2=c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2)
local b3=c:IsLocation(LOCATION_DECK) and c:IsSetCard(0x5958) and c:IsSSetable()
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2 or b3)
end
function c9911212.settg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c9911212.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,nil)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
if chk==0 then return Duel.IsExistingMatchingCard(c9911212.setfilter,tp,loc,0,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,9911212,0x5958,TYPES_NORMAL_TRAP_MONSTER,1400,800,2,RACE_ROCK,ATTRIBUTE_EARTH) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c9911212.setop(e,tp,eg,ep,ev,re,r,rp)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,c9911212.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,1,nil):GetFirst()
local tc=Duel.SelectMatchingCard(tp,c9911212.setfilter,tp,loc,0,1,1,nil):GetFirst()
if not tc then return end
if tc:IsLocation(LOCATION_HAND) then
if tc:IsLocation(LOCATION_HAND+LOCATION_DECK) then
if tc:IsLocation(LOCATION_DECK) then
Duel.Hint(HINT_CARD,0,9911233)
fe:UseCountLimit(tp)
end
if Duel.SSet(tp,tc)==0 then return end
else
tc:CancelToGrave()
......
......@@ -46,19 +46,30 @@ end
function c9911218.setfilter(c)
local b1=c:IsLocation(LOCATION_HAND) and c:IsSSetable()
local b2=c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2)
local b3=c:IsLocation(LOCATION_DECK) and c:IsSetCard(0x5958) and c:IsSSetable()
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2 or b3)
end
function c9911218.settg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c9911218.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,nil)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
if chk==0 then return Duel.IsExistingMatchingCard(c9911218.setfilter,tp,loc,0,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,9911218,0x5958,TYPES_NORMAL_TRAP_MONSTER,200,400,2,RACE_AQUA,ATTRIBUTE_WATER) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c9911218.setop(e,tp,eg,ep,ev,re,r,rp)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,c9911218.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,1,nil):GetFirst()
local tc=Duel.SelectMatchingCard(tp,c9911218.setfilter,tp,loc,0,1,1,nil):GetFirst()
if not tc then return end
if tc:IsLocation(LOCATION_HAND) then
if tc:IsLocation(LOCATION_HAND+LOCATION_DECK) then
if tc:IsLocation(LOCATION_DECK) then
Duel.Hint(HINT_CARD,0,9911233)
fe:UseCountLimit(tp)
end
if Duel.SSet(tp,tc)==0 then return end
else
tc:CancelToGrave()
......
......@@ -63,19 +63,30 @@ end
function c9911223.setfilter(c)
local b1=c:IsLocation(LOCATION_HAND) and c:IsSSetable()
local b2=c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2)
local b3=c:IsLocation(LOCATION_DECK) and c:IsSetCard(0x5958) and c:IsSSetable()
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2 or b3)
end
function c9911223.settg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c9911223.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,nil)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
if chk==0 then return Duel.IsExistingMatchingCard(c9911223.setfilter,tp,loc,0,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,9911223,0x5958,TYPES_NORMAL_TRAP_MONSTER,700,700,2,RACE_PLANT,ATTRIBUTE_WATER) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c9911223.setop(e,tp,eg,ep,ev,re,r,rp)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,c9911223.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,1,nil):GetFirst()
local tc=Duel.SelectMatchingCard(tp,c9911223.setfilter,tp,loc,0,1,1,nil):GetFirst()
if not tc then return end
if tc:IsLocation(LOCATION_HAND) then
if tc:IsLocation(LOCATION_HAND+LOCATION_DECK) then
if tc:IsLocation(LOCATION_DECK) then
Duel.Hint(HINT_CARD,0,9911233)
fe:UseCountLimit(tp)
end
if Duel.SSet(tp,tc)==0 then return end
else
tc:CancelToGrave()
......
......@@ -85,19 +85,30 @@ end
function c9911224.setfilter(c)
local b1=c:IsLocation(LOCATION_HAND) and c:IsSSetable()
local b2=c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2)
local b3=c:IsLocation(LOCATION_DECK) and c:IsSetCard(0x5958) and c:IsSSetable()
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2 or b3)
end
function c9911224.settg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c9911224.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,nil)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
if chk==0 then return Duel.IsExistingMatchingCard(c9911224.setfilter,tp,loc,0,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,9911224,0x5958,TYPES_NORMAL_TRAP_MONSTER,1000,1800,2,RACE_ROCK,ATTRIBUTE_DARK) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c9911224.setop(e,tp,eg,ep,ev,re,r,rp)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,c9911224.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,1,nil):GetFirst()
local tc=Duel.SelectMatchingCard(tp,c9911224.setfilter,tp,loc,0,1,1,nil):GetFirst()
if not tc then return end
if tc:IsLocation(LOCATION_HAND) then
if tc:IsLocation(LOCATION_HAND+LOCATION_DECK) then
if tc:IsLocation(LOCATION_DECK) then
Duel.Hint(HINT_CARD,0,9911233)
fe:UseCountLimit(tp)
end
if Duel.SSet(tp,tc)==0 then return end
else
tc:CancelToGrave()
......
......@@ -49,19 +49,30 @@ end
function c9911231.setfilter(c)
local b1=c:IsLocation(LOCATION_HAND) and c:IsSSetable()
local b2=c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2)
local b3=c:IsLocation(LOCATION_DECK) and c:IsSetCard(0x5958) and c:IsSSetable()
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2 or b3)
end
function c9911231.settg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c9911231.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,nil)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
if chk==0 then return Duel.IsExistingMatchingCard(c9911231.setfilter,tp,loc,0,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,9911231,0x5958,TYPES_NORMAL_TRAP_MONSTER,1250,500,2,RACE_PSYCHO,ATTRIBUTE_LIGHT) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c9911231.setop(e,tp,eg,ep,ev,re,r,rp)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,c9911231.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,1,nil):GetFirst()
local tc=Duel.SelectMatchingCard(tp,c9911231.setfilter,tp,loc,0,1,1,nil):GetFirst()
if not tc then return end
if tc:IsLocation(LOCATION_HAND) then
if tc:IsLocation(LOCATION_HAND+LOCATION_DECK) then
if tc:IsLocation(LOCATION_DECK) then
Duel.Hint(HINT_CARD,0,9911233)
fe:UseCountLimit(tp)
end
if Duel.SSet(tp,tc)==0 then return end
else
tc:CancelToGrave()
......
......@@ -76,19 +76,30 @@ end
function c9911232.setfilter(c)
local b1=c:IsLocation(LOCATION_HAND) and c:IsSSetable()
local b2=c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2)
local b3=c:IsLocation(LOCATION_DECK) and c:IsSetCard(0x5958) and c:IsSSetable()
return c:IsFaceupEx() and c:IsType(TYPE_TRAP) and (b1 or b2 or b3)
end
function c9911232.settg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c9911232.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,nil)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
if chk==0 then return Duel.IsExistingMatchingCard(c9911232.setfilter,tp,loc,0,1,nil)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,9911232,0x5958,TYPES_NORMAL_TRAP_MONSTER,1700,1300,2,RACE_THUNDER,ATTRIBUTE_WIND) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c9911232.setop(e,tp,eg,ep,ev,re,r,rp)
local fe=Duel.IsPlayerAffectedByEffect(tp,9911233)
local loc=LOCATION_HAND+LOCATION_SZONE
if fe then loc=loc+LOCATION_DECK end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local tc=Duel.SelectMatchingCard(tp,c9911232.setfilter,tp,LOCATION_HAND+LOCATION_SZONE,0,1,1,nil):GetFirst()
local tc=Duel.SelectMatchingCard(tp,c9911232.setfilter,tp,loc,0,1,1,nil):GetFirst()
if not tc then return end
if tc:IsLocation(LOCATION_HAND) then
if tc:IsLocation(LOCATION_HAND+LOCATION_DECK) then
if tc:IsLocation(LOCATION_DECK) then
Duel.Hint(HINT_CARD,0,9911233)
fe:UseCountLimit(tp)
end
if Duel.SSet(tp,tc)==0 then return end
else
tc:CancelToGrave()
......
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