Commit ac2871ba authored by POLYMER's avatar POLYMER

fix

parent c92fd63c
......@@ -32,6 +32,11 @@ function cm.initial_effect(c)
e2:SetTarget(cm.actarget)
e2:SetOperation(cm.costop)
c:RegisterEffect(e2)
local e4=e3:Clone()
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCondition(cm.condition2)
e4:SetCost(cm.cost2)
c:RegisterEffect(e4)
--type
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
......@@ -59,15 +64,39 @@ function cm.initial_effect(c)
end
end
end
local KOISHI_CHECK=false
if Card.SetCardData then KOISHI_CHECK=true end
function cm.valcheck(e,c)
local g=c:GetMaterial()
if #g>0 then e:SetLabel(g:GetClassCount(Card.GetCode)) end
end
function cm.condition2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetLocationCount(tp,LOCATION_SZONE)<=0
end
function cm.cost2(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
local res=true
if KOISHI_CHECK and cm[tp] then
res=cm[tp]:GetActivateEffect():IsActivatable(tp,true)
else
res=(c:CheckActivateEffect(false,false,false)~=nil)
end
return res
end
end
function cm.filter(c)
return c.traveler_saga and c:IsAbleToDeckAsCost()
end
function cm.fselect(g)
return g:IsExists(Card.IsLocation,1,nil,LOCATION_SZONE)
end
function cm.costchk(e,te,tp)
return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_ONFIELD+LOCATION_GRAVE,0,3,nil)
local g=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_ONFIELD+LOCATION_GRAVE,0,nil)
if te:IsHasType(EFFECT_TYPE_ACTIVATE) then
return #g>=3
end
return #g>=3 and g:IsExists(Card.IsLocation,1,nil,LOCATION_SZONE)
end
function cm.actarget(e,te,tp)
e:SetLabelObject(te)
......@@ -76,7 +105,12 @@ end
function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
local c=e:GetHandler()
local g=Duel.SelectMatchingCard(tp,cm.filter,tp,LOCATION_ONFIELD+LOCATION_GRAVE,0,3,3,nil)
local g=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_ONFIELD+LOCATION_GRAVE,0,nil)
if te:IsHasType(EFFECT_TYPE_ACTIVATE) then
g=g:Select(tp,3,3,nil)
else
g=g:SelectSubGroup(tp,cm.fselect,false,3,3)
end
local cg=g:Filter(Card.IsFacedown,nil)
if #cg>0 then Duel.ConfirmCards(1-c:GetControler(),cg) end
c:SetMaterial(g)
......@@ -85,12 +119,19 @@ function cm.costop(e,tp,eg,ep,ev,re,r,rp)
Duel.MoveToField(c,tp,tp,LOCATION_SZONE,POS_FACEUP,false)
cm.activate_sequence[te]=c:GetSequence()
e:GetHandler():CreateEffectRelation(te)
local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVING)
if te:IsHasType(EFFECT_TYPE_QUICK_O) then
c:CancelToGrave(false)
local te2=te:Clone()
e:SetLabelObject(te2)
te:SetType(26)
c:RegisterEffect(te2,true)
e1:SetLabel(1)
end
e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop)
......@@ -108,6 +149,7 @@ function cm.rsop(e,tp,eg,ep,ev,re,r,rp)
if e:GetCode()==EVENT_CHAIN_NEGATED and rc:IsRelateToEffect(re) and not (rc:IsOnField() and rc:IsFacedown()) then
rc:SetStatus(STATUS_ACTIVATE_DISABLED,true)
end
if e:GetLabel()>0 then re:Reset() end
end
function cm.spfilter(c,e,tp)
return c:IsCode(11451406) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
......@@ -46,6 +46,7 @@ function cm.initial_effect(c)
c:RegisterEffect(e5)
if not cm.global_check then
cm.global_check=true
cm.activate_sequence={}
local ge0=Effect.CreateEffect(c)
ge0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
ge0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......@@ -54,7 +55,6 @@ function cm.initial_effect(c)
Duel.RegisterEffect(ge0,0)
local _GetActivateLocation=Effect.GetActivateLocation
local _GetActivateSequence=Effect.GetActivateSequence
local _GetChainInfo=Duel.GetChainInfo
function Effect.GetActivateLocation(e)
if e:GetDescription()==aux.Stringid(m,0) then
return LOCATION_SZONE
......@@ -67,26 +67,6 @@ function cm.initial_effect(c)
end
return _GetActivateSequence(e)
end
function Duel.GetChainInfo(ev,...)
local ext_params={...}
if #ext_params==0 then return _GetChainInfo(ev,...) end
local re=_GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
if aux.GetValueType(re)=="Effect" then
local rc=re:GetHandler()
if re:GetDescription()==aux.Stringid(m,0) then
local res={}
for _,ci in ipairs(ext_params) do
if ci==CHAININFO_TYPE or ci==CHAININFO_EXTTYPE then
res[#res+1]=TYPE_SPELL
else
res[#res+1]=_GetChainInfo(ev,ci)
end
end
return table.unpack(res)
end
end
return _GetChainInfo(ev,...)
end
end
end
local KOISHI_CHECK=false
......@@ -196,8 +176,8 @@ function cm.geop(e,tp,eg,ep,ev,re,r,rp)
cm[0]=Duel.CreateToken(0,m)
cm[1]=Duel.CreateToken(1,m)
if KOISHI_CHECK then
cm[0]:SetCardData(CARDDATA_TYPE,TYPE_TRAP)
cm[1]:SetCardData(CARDDATA_TYPE,TYPE_TRAP)
cm[0]:SetCardData(CARDDATA_TYPE,TYPE_QUICKPLAY+TYPE_SPELL)
cm[1]:SetCardData(CARDDATA_TYPE,TYPE_QUICKPLAY+TYPE_SPELL)
end
e:Reset()
end
\ No newline at end of file
......@@ -2,6 +2,7 @@
local cm,m=GetID()
function cm.initial_effect(c)
aux.AddCodeList(c,11451599)
local e0=aux.AddThisCardInGraveAlreadyCheck(c)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
......@@ -26,6 +27,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_GRAVE)
e2:SetLabelObject(e0)
e2:SetCondition(cm.adcon2)
e2:SetTarget(cm.adtg2)
e2:SetOperation(cm.adop2)
......@@ -34,7 +36,8 @@ function cm.initial_effect(c)
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e5)
end
function cm.filter(c,tp)
function cm.filter(c,tp,se)
if not (se==nil or c:GetReasonEffect()~=se) then return false end
return c:IsControler(tp)
end
function cm.adcon(e,tp,eg,ep,ev,re,r,rp)
......@@ -72,7 +75,8 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.adcon2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.filter,1,nil,tp)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.filter,1,nil,tp,se)
end
function cm.mfilter(c)
return c:GetLevel()>0 and (c:IsAbleToDeck() or c:IsAbleToHand()) --and c:IsReason(REASON_RELEASE)
......
--潜汐击龙“青翔”
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
......@@ -23,6 +29,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_HAND+LOCATION_REMOVED)
e2:SetLabelObject(e0)
e2:SetCondition(cm.spcon)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
......@@ -71,11 +78,13 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end
end
end
function cm.spfilter(c,tp)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......@@ -110,6 +119,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetOperation(cm.retop)
Duel.RegisterEffect(e1,tp)
if c:IsRelateToEffect(e) then
Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
......
--怒汐击龙“朱炎”
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--resp
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
......@@ -24,6 +30,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
e2:SetRange(LOCATION_HAND+LOCATION_REMOVED)
e2:SetLabelObject(e0)
e2:SetCondition(cm.spcon)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
......@@ -55,17 +62,20 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) then
Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
function cm.refilter(c)
return c:IsFaceup() and c:IsAbleToRemove()
end
function cm.spfilter(c,tp)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
......@@ -87,6 +97,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) then
--Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
\ No newline at end of file
--恐汐击龙“煌枪”
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
......@@ -23,6 +29,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_HAND+LOCATION_REMOVED)
e2:SetLabelObject(e0)
e2:SetCondition(cm.spcon)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
......@@ -78,11 +85,13 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end
end
end
function cm.spfilter(c,tp)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......@@ -104,6 +113,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if #g>0 then
Duel.HintSelection(g)
if Duel.Remove(g,POS_FACEUP,REASON_EFFECT)>0 and c:IsRelateToEffect(e) then
Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
......
--惊汐击龙“碧闪”
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--resp
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
......@@ -24,6 +30,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_HAND+LOCATION_REMOVED)
e2:SetLabelObject(e0)
e2:SetCondition(cm.spcon)
e2:SetCost(cm.spcost)
e2:SetTarget(cm.sptg)
......@@ -56,14 +63,17 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) then
Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
function cm.spfilter(c,tp)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.costfilter(c)
return c:IsAbleToRemoveAsCost()
......@@ -97,6 +107,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)>0 then
Duel.ConfirmCards(1-tp,g)
if c:IsRelateToEffect(e) then
--Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
......
--天汐击龙“白凰”
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
......@@ -23,6 +29,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_HAND+LOCATION_REMOVED)
e2:SetLabelObject(e0)
e2:SetCondition(cm.spcon)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
......@@ -71,11 +78,13 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
end
end
end
function cm.spfilter(c,tp)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......@@ -97,6 +106,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
if #g<=0 then return end
Duel.DisableShuffleCheck()
if Duel.Remove(g,POS_FACEUP,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) then
Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
\ No newline at end of file
--逆汐击龙“幽影”
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--resp
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
......@@ -24,6 +30,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_HAND+LOCATION_REMOVED)
e2:SetLabelObject(e0)
e2:SetCondition(cm.spcon)
e2:SetCost(cm.spcost)
e2:SetTarget(cm.sptg)
......@@ -56,14 +63,17 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) then
Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
function cm.spfilter(c,tp)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.costfilter(c)
return c:IsSetCard(0x9977) and c:IsAbleToRemoveAsCost()
......@@ -90,6 +100,7 @@ end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.Draw(tp,1,REASON_EFFECT)>0 and c:IsRelateToEffect(e) then
--Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
\ No newline at end of file
--冻汐击龙“苍痕”
local cm,m=GetID()
function cm.initial_effect(c)
--xyz summon
--check
local e0=Effect.CreateEffect(c)
e0:SetDescription(1165)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetRange(LOCATION_EXTRA)
e0:SetCondition(aux.XyzLevelFreeCondition(cm.mfilter,cm.xyzcheck,2,99))
e0:SetTarget(aux.XyzLevelFreeTarget(cm.mfilter,cm.xyzcheck,2,99))
e0:SetOperation(aux.XyzLevelFreeOperation(cm.mfilter,cm.xyzcheck,2,99))
e0:SetValue(SUMMON_TYPE_XYZ)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--xyz summon
local e10=Effect.CreateEffect(c)
e10:SetDescription(1165)
e10:SetType(EFFECT_TYPE_FIELD)
e10:SetCode(EFFECT_SPSUMMON_PROC)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetRange(LOCATION_EXTRA)
e10:SetCondition(aux.XyzLevelFreeCondition(cm.mfilter,cm.xyzcheck,2,99))
e10:SetTarget(aux.XyzLevelFreeTarget(cm.mfilter,cm.xyzcheck,2,99))
e10:SetOperation(aux.XyzLevelFreeOperation(cm.mfilter,cm.xyzcheck,2,99))
e10:SetValue(SUMMON_TYPE_XYZ)
c:RegisterEffect(e10)
cm[c]=e10
c:EnableReviveLimit()
--effect1
local e1=Effect.CreateEffect(c)
......@@ -94,11 +101,13 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if flag>0 then c:RemoveOverlayCard(tp,1,1,REASON_EFFECT) end
end
end
function cm.spfilter(c,tp)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.XyzLevelFreeGoal(g,tp,xyzc,gf)
return (not gf or gf(g)) and Duel.GetLocationCountFromEx(tp,tp,g,TYPE_XYZ)>0
......@@ -132,7 +141,7 @@ function cm.XyzLevelFreeCondition(f,gf,minct,maxct)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local te=e:GetLabelObject()
local te=c[c]
if chk==0 then return c:IsCanBeSpecialSummoned(te,SUMMON_TYPE_XYZ,tp,true,true) and cm.XyzLevelFreeCondition(cm.mfilter,cm.xyzcheck,2,99)(te,c,nil,2,99) and c:IsAbleToDeck() and c:GetFlagEffect(m-10)==0 end
c:RegisterFlagEffect(m-10,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
......
--轰汐击龙“烈斩”
local cm,m=GetID()
function cm.initial_effect(c)
--xyz summon
--check
local e0=Effect.CreateEffect(c)
e0:SetDescription(1165)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetRange(LOCATION_EXTRA)
e0:SetCondition(aux.XyzLevelFreeCondition(cm.mfilter,cm.xyzcheck,3,99))
e0:SetTarget(aux.XyzLevelFreeTarget(cm.mfilter,cm.xyzcheck,3,99))
e0:SetOperation(aux.XyzLevelFreeOperation(cm.mfilter,cm.xyzcheck,3,99))
e0:SetValue(SUMMON_TYPE_XYZ)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--xyz summon
local e10=Effect.CreateEffect(c)
e10:SetDescription(1165)
e10:SetType(EFFECT_TYPE_FIELD)
e10:SetCode(EFFECT_SPSUMMON_PROC)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetRange(LOCATION_EXTRA)
e10:SetCondition(aux.XyzLevelFreeCondition(cm.mfilter,cm.xyzcheck,3,99))
e10:SetTarget(aux.XyzLevelFreeTarget(cm.mfilter,cm.xyzcheck,3,99))
e10:SetOperation(aux.XyzLevelFreeOperation(cm.mfilter,cm.xyzcheck,3,99))
e10:SetValue(SUMMON_TYPE_XYZ)
c:RegisterEffect(e10)
cm[c]=e10
c:EnableReviveLimit()
--effect1
local e1=Effect.CreateEffect(c)
......@@ -84,11 +91,13 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Remove(sg1+sg2+sg3,POS_FACEUP,REASON_EFFECT)
end
end
function cm.spfilter(c,tp)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.XyzLevelFreeGoal(g,tp,xyzc,gf)
return (not gf or gf(g)) and Duel.GetLocationCountFromEx(tp,tp,g,TYPE_XYZ)>0
......@@ -122,7 +131,7 @@ function cm.XyzLevelFreeCondition(f,gf,minct,maxct)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local te=e:GetLabelObject()
local te=c[c]
if chk==0 then return c:IsCanBeSpecialSummoned(te,SUMMON_TYPE_XYZ,tp,true,true) and cm.XyzLevelFreeCondition(cm.mfilter,cm.xyzcheck,3,99)(te,c,nil,3,99) and c:IsAbleToDeck() and c:GetFlagEffect(m-10)==0 end
c:RegisterFlagEffect(m-10,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
......
--御汐击龙“玄威”
local cm,m=GetID()
function cm.initial_effect(c)
--xyz summon
--check
local e0=Effect.CreateEffect(c)
e0:SetDescription(1165)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetRange(LOCATION_EXTRA)
e0:SetCondition(aux.XyzLevelFreeCondition(cm.mfilter,cm.xyzcheck,4,99))
e0:SetTarget(aux.XyzLevelFreeTarget(cm.mfilter,cm.xyzcheck,4,99))
e0:SetOperation(aux.XyzLevelFreeOperation(cm.mfilter,cm.xyzcheck,4,99))
e0:SetValue(SUMMON_TYPE_XYZ)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--xyz summon
local e10=Effect.CreateEffect(c)
e10:SetDescription(1165)
e10:SetType(EFFECT_TYPE_FIELD)
e10:SetCode(EFFECT_SPSUMMON_PROC)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetRange(LOCATION_EXTRA)
e10:SetCondition(aux.XyzLevelFreeCondition(cm.mfilter,cm.xyzcheck,4,99))
e10:SetTarget(aux.XyzLevelFreeTarget(cm.mfilter,cm.xyzcheck,4,99))
e10:SetOperation(aux.XyzLevelFreeOperation(cm.mfilter,cm.xyzcheck,4,99))
e10:SetValue(SUMMON_TYPE_XYZ)
c:RegisterEffect(e10)
cm[c]=e10
c:EnableReviveLimit()
--effect1
local e1=Effect.CreateEffect(c)
......@@ -81,11 +88,13 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:RegisterFlagEffect(m-13,RESET_EVENT+RESETS_STANDARD,0,1,c:GetFieldID())
end
function cm.spfilter(c,tp)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.XyzLevelFreeGoal(g,tp,xyzc,gf)
return (not gf or gf(g)) and Duel.GetLocationCountFromEx(tp,tp,g,TYPE_XYZ)>0
......@@ -119,7 +128,7 @@ function cm.XyzLevelFreeCondition(f,gf,minct,maxct)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local te=e:GetLabelObject()
local te=c[c]
if chk==0 then return c:IsCanBeSpecialSummoned(te,SUMMON_TYPE_XYZ,tp,true,true) and cm.XyzLevelFreeCondition(cm.mfilter,cm.xyzcheck,4,99)(te,c,nil,4,99) and c:IsAbleToDeck() and c:GetFlagEffect(m-10)==0 end
c:RegisterFlagEffect(m-10,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
......
--归汐击龙“禁律”
local cm,m=GetID()
function cm.initial_effect(c)
--xyz summon
--check
local e0=Effect.CreateEffect(c)
e0:SetDescription(1165)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetRange(LOCATION_EXTRA)
e0:SetCondition(aux.XyzLevelFreeCondition(cm.mfilter,cm.lvcheck,2,99))
e0:SetTarget(aux.XyzLevelFreeTarget(cm.mfilter,cm.lvcheck,2,99))
e0:SetOperation(aux.XyzLevelFreeOperation(cm.mfilter,cm.lvcheck,2,99))
e0:SetValue(SUMMON_TYPE_XYZ)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--xyz summon
local e10=Effect.CreateEffect(c)
e10:SetDescription(1165)
e10:SetType(EFFECT_TYPE_FIELD)
e10:SetCode(EFFECT_SPSUMMON_PROC)
e10:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e10:SetRange(LOCATION_EXTRA)
e10:SetCondition(aux.XyzLevelFreeCondition(cm.mfilter,cm.lvcheck,2,99))
e10:SetTarget(aux.XyzLevelFreeTarget(cm.mfilter,cm.lvcheck,2,99))
e10:SetOperation(aux.XyzLevelFreeOperation(cm.mfilter,cm.lvcheck,2,99))
e10:SetValue(SUMMON_TYPE_XYZ)
c:RegisterEffect(e10)
cm[c]=e10
c:EnableReviveLimit()
--effect1
local e1=Effect.CreateEffect(c)
......@@ -55,7 +62,7 @@ function cm.mfilter(c,xyzc)
return c:IsXyzType(TYPE_MONSTER) and (c:IsRank(9) or (c:IsXyzLevel(xyzc,9) and xyzc:GetFlagEffect(m-17)>0))
end
function cm.spfilter2(c,e,tp,mc)
return c:IsSetCard(0x9977) and c:IsType(TYPE_XYZ) and c:IsRank(9) and mc:IsCanBeXyzMaterial(c) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,mc,c)>0
return c:IsRace(RACE_DRAGON) and c:IsType(TYPE_XYZ) and c:IsRank(9) and mc:IsCanBeXyzMaterial(c) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,mc,c)>0
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return not eg:IsContains(e:GetHandler())
......@@ -85,11 +92,13 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
end
end
end
function cm.spfilter(c,tp)
return c:IsFaceup() and c:IsRace(RACE_DRAGON) --c:IsSetCard(0x9977)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.XyzLevelFreeGoal(g,tp,xyzc,gf)
return (not gf or gf(g)) and Duel.GetLocationCountFromEx(tp,tp,g,TYPE_XYZ)>0
......@@ -126,7 +135,7 @@ function cm.XyzLevelFreeCondition(f,gf,minct,maxct)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local te=e:GetLabelObject()
local te=c[c]
if chk==0 then
c:RegisterFlagEffect(m-17,0,0,1)
local res=(c:IsCanBeSpecialSummoned(te,SUMMON_TYPE_XYZ,tp,true,true) and cm.XyzLevelFreeCondition(cm.mfilter,cm.lvcheck,2,99)(te,c,nil,2,99) and c:IsAbleToDeck() and c:GetFlagEffect(m-16)==0)
......
--汐击龙的汐征
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
......@@ -19,6 +25,7 @@ function cm.initial_effect(c)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetRange(LOCATION_REMOVED)
e4:SetLabelObject(e0)
e4:SetCondition(cm.spcon)
e4:SetTarget(cm.sptg)
e4:SetOperation(cm.spop)
......@@ -40,20 +47,23 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
function cm.spfilter(c)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.tdfilter(c)
function cm.tdfilter(c,se)
if not (se==nil or c:GetReasonEffect()~=se) then return false end
return c:IsFaceup() and c:IsSetCard(0x9977) and c:IsAbleToDeck()
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return eg:IsExists(cm.tdfilter,1,nil) and c:IsAbleToHand() and c:GetFlagEffect(m-10)==0 end
if chk==0 then return eg:IsExists(cm.tdfilter,1,nil,se) and c:IsAbleToHand() and c:GetFlagEffect(m-10)==0 end
c:RegisterFlagEffect(m-10,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1)
local g=eg:Filter(cm.tdfilter,nil,tp)
local g=eg:Filter(cm.tdfilter,nil,se)
Duel.SetTargetCard(g)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,#g,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,c,1,0,0)
......
--汐击龙的汐驰
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
......@@ -20,6 +26,7 @@ function cm.initial_effect(c)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetRange(LOCATION_REMOVED)
e4:SetLabelObject(e0)
e4:SetCondition(cm.spcon)
e4:SetTarget(cm.sptg)
e4:SetOperation(cm.spop)
......@@ -87,11 +94,13 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
end
function cm.spfilter(c)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.spfilter2(c,e,tp)
return c:IsSetCard(0x9977) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
--汐击龙的汐引
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
......@@ -18,6 +24,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_REMOVED)
e2:SetLabelObject(e0)
e2:SetCondition(cm.spcon)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
......@@ -46,11 +53,13 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(1-tp,g)
end
end
function cm.spfilter(c)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.refilter(c)
return c:IsAbleToRemove() and c:IsSetCard(0x9977)
......
--汐击龙的汐刻
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
......@@ -17,6 +23,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_REMOVED)
e2:SetLabelObject(e0)
e2:SetCondition(cm.spcon)
e2:SetTarget(cm.sptg)
e2:SetOperation(cm.spop)
......@@ -46,20 +53,23 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e1)
end
end
function cm.spfilter(c)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.tdfilter(c)
function cm.tdfilter(c,se)
if not (se==nil or c:GetReasonEffect()~=se) then return false end
return c:IsFaceup() and c:IsSetCard(0x9977) and c:IsAbleToHand()
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return eg:IsExists(cm.tdfilter,1,nil) and c:IsAbleToDeck() and c:GetFlagEffect(m-10)==0 end
if chk==0 then return eg:IsExists(cm.tdfilter,1,nil,se) and c:IsAbleToDeck() and c:GetFlagEffect(m-10)==0 end
c:RegisterFlagEffect(m-10,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1)
local g=eg:Filter(cm.tdfilter,nil,tp)
local g=eg:Filter(cm.tdfilter,nil,se)
Duel.SetTargetCard(g)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,#g,0,0)
Duel.SetOperationInfo(0,CATEGORY_TODECK,c,1,0,0)
......
--汐击龙潭“霞语涧”
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
......@@ -30,6 +36,7 @@ function cm.initial_effect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetLabelObject(e0)
e4:SetRange(LOCATION_REMOVED)
e4:SetCondition(cm.spcon)
e4:SetTarget(cm.sptg)
......@@ -53,11 +60,13 @@ function cm.damop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,m)
Duel.Draw(tp,1,REASON_EFFECT)
end
function cm.spfilter(c)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.refilter(c)
return c:IsAbleToRemove() and c:IsSetCard(0x9977)
......
--汐击龙崖“鹰愁谷”
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
......@@ -31,6 +37,7 @@ function cm.initial_effect(c)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetRange(LOCATION_REMOVED)
e4:SetLabelObject(e0)
e4:SetCondition(cm.spcon)
e4:SetTarget(cm.sptg)
e4:SetOperation(cm.spop)
......@@ -55,11 +62,13 @@ function cm.damop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
Duel.Destroy(g,REASON_EFFECT)
end
function cm.spfilter(c)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.refilter(c)
return c:IsAbleToRemove() and c:IsSetCard(0x9977) and c:IsFaceup()
......
--汐击龙的汐叹
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_REMOVE)
......@@ -37,6 +43,7 @@ function cm.initial_effect(c)
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetRange(LOCATION_REMOVED)
e5:SetLabelObject(e0)
e5:SetCondition(cm.spcon)
e5:SetTarget(cm.sptg)
e5:SetOperation(cm.spop)
......@@ -125,11 +132,13 @@ end
function cm.spfilter(c)
return c:IsFaceup() and c:IsSetCard(0x9977)
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.spfilter,1,nil)
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.refilter(c)
return c:IsAbleToRemove() and c:IsSetCard(0x9977)
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.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......
......@@ -2,6 +2,7 @@
local cm,m=GetID()
function cm.initial_effect(c)
aux.AddCodeList(c,11451599)
local e0=aux.AddThisCardInGraveAlreadyCheck(c)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
......@@ -26,6 +27,7 @@ function cm.initial_effect(c)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetRange(LOCATION_GRAVE)
e2:SetLabelObject(e0)
e2:SetCondition(cm.adcon2)
e2:SetCost(cm.adcost2)
e2:SetTarget(cm.adtg2)
......@@ -35,7 +37,8 @@ function cm.initial_effect(c)
e5:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e5)
end
function cm.filter(c,tp)
function cm.filter(c,tp,se)
if not (se==nil or c:GetReasonEffect()~=se) then return false end
return c:IsControler(tp)
end
function cm.adcon(e,tp,eg,ep,ev,re,r,rp)
......@@ -85,7 +88,8 @@ function cm.adop(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.adcon2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.filter,1,nil,tp)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.filter,1,nil,tp,se)
end
function cm.adcost2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
......
--星汐击龙“绀夜”
local cm,m=GetID()
function cm.initial_effect(c)
--check
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_REMOVE)
e0:SetCondition(aux.ThisCardInGraveAlreadyCheckReg)
c:RegisterEffect(e0)
--search
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
......@@ -22,6 +28,7 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetLabelObject(e0)
e2:SetRange(LOCATION_HAND+LOCATION_REMOVED)
e2:SetCondition(cm.spcon)
e2:SetTarget(cm.sptg)
......@@ -73,11 +80,13 @@ end
function cm.setfilter(c,e,tp)
return c:IsFaceup() and c:IsSetCard(0x9977) and ((c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEDOWN_DEFENSE) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0) or c:IsSSetable())
end
function cm.spfilter(c)
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)
return eg:IsExists(cm.spfilter,1,nil)
local se=e:GetLabelObject():GetLabelObject()
return eg:IsExists(cm.spfilter,1,nil,se)
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......@@ -103,6 +112,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
Duel.SSet(tp,tc)
end
if #Duel.GetOperatedGroup()>0 and c:IsRelateToEffect(e) then
--Duel.BreakEffect()
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
end
......
......@@ -3,7 +3,24 @@ SUMMON_TYPE_SPLIT=15000001
SUMMON_VALUE_SPLIT=0x15000001
EFFECT_EXTRA_SPLIT_SUMMON=15000002
EFFECT_CANNOT_BE_SPLIT_MATERIAL=15000003
--if not require and dofile then
-- function require(str)
-- require_list=require_list or {}
-- if not require_list[str] then
-- if string.find(str,"%.") then
-- require_list[str]=dofile(str)
-- else
-- require_list[str]=dofile(str..".lua")
-- end
-- end
-- return require_list[str]
-- end
--end
--if not pcall(function() require("expansions/script/c15000000") end) then require("script/c15000000") end
if Satl_Library_Switch then
return
end
Satl_Library_Switch=true
--为 卡 片 c添 加 裂 解 召 唤 手 续 ,mf为 裂 解 素 材 需 满 足 的 条 件
function Satl.AddSplitProcedure(c,mf)
if not Satl.PendulumChecklist then
......@@ -321,7 +338,7 @@ end
function Satl.GetHearogenehirpSolvingCount(e,tp)
local g=Group.CreateGroup()
local code=15005050
while code<15006000 do
while code<15005070 do
if Duel.GetFlagEffect(tp,code)~=0 then
local tg=Duel.GetMatchingGroup(Card.IsOriginalCodeRule,tp,0xff,0xff,nil,code)
local tc=tg:GetFirst()
......@@ -336,7 +353,7 @@ end
function Satl.AddHearogenehirpSolving(e,tp)
local code=15005050
local g=Group.CreateGroup()
while code<15006000 do
while code<15005070 do
if Duel.GetFlagEffect(tp,code)~=0 then
local tg=Duel.GetMatchingGroup(Card.IsOriginalCodeRule,tp,0xff,0xff,nil,code)
local tc=tg:GetFirst()
......@@ -350,7 +367,7 @@ function Satl.AddHearogenehirpSolving(e,tp)
g:Clear()
local list={}
local code=15005050
while code<15006000 do
while code<15005070 do
if Duel.GetFlagEffect(tp,code)~=0 then
local tg=Duel.GetMatchingGroup(Card.IsOriginalCodeRule,tp,0xff,0xff,nil,code)
local tc=tg:GetFirst()
......@@ -381,7 +398,7 @@ function Satl.AddHearogenehirpSolving(e,tp)
end
g:Clear()
local code=15005050
while code<15006000 do
while code<15005070 do
if Duel.GetFlagEffect(tp,code)~=0 then
local tg=Duel.GetMatchingGroup(Card.IsOriginalCodeRule,tp,0xff,0xff,nil,code)
local tc=tg:GetFirst()
......
This diff is collapsed.
......@@ -8,12 +8,14 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CUSTOM+m)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCondition(cm.con)
e1:SetCost(cm.cost)
e1:SetTarget(cm.tg)
c:RegisterEffect(e1)
SNNM.FanippetTrap(c,{e1})
local e2=e1:Clone()
e2:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e2)
SNNM.FanippetTrap(c,{e2})
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
......
......@@ -8,12 +8,14 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CUSTOM+m)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCondition(cm.con)
e1:SetCost(cm.cost)
e1:SetTarget(cm.tg)
c:RegisterEffect(e1)
SNNM.FanippetTrap(c,{e1})
local e2=e1:Clone()
e2:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e2)
SNNM.FanippetTrap(c,{e2})
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
......
......@@ -8,12 +8,14 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCondition(cm.con)
e1:SetCost(cm.cost)
e1:SetTarget(cm.tg)
c:RegisterEffect(e1)
SNNM.FanippetTrap(c,{e1})
local e2=e1:Clone()
e2:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e2)
SNNM.FanippetTrap(c,{e2})
end
function cm.cfilter(c)
return c:IsFaceup() and bit.band(c:GetType(),0x20004)==0x20004 and not c:IsRace(RACE_FIEND)
......
......@@ -8,12 +8,14 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCondition(cm.con)
e1:SetCost(cm.cost)
e1:SetTarget(cm.tg)
c:RegisterEffect(e1)
SNNM.FanippetTrap(c,{e1})
local e2=e1:Clone()
e2:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e2)
SNNM.FanippetTrap(c,{e2})
end
function cm.con(e,tp,eg,ep,ev,re,r,rp,chk)
return ep~=tp and re:IsActiveType(TYPE_SPELL+TYPE_TRAP)
......
......@@ -8,7 +8,6 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_MSET)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCondition(cm.con)
e1:SetCost(cm.cost)
e1:SetTarget(cm.tg)
......@@ -24,7 +23,19 @@ function cm.initial_effect(c)
e4:SetCode(EVENT_SPSUMMON_SUCCESS)
e4:SetCondition(cm.con3)
c:RegisterEffect(e4)
SNNM.FanippetTrap(c,{e1,e2,e3,e4})
local e5=e1:Clone()
e5:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e5)
local e6=e1:Clone()
e6:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e6)
local e7=e1:Clone()
e7:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e7)
local e8=e1:Clone()
e8:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e8)
SNNM.FanippetTrap(c,{e5,e6,e7,e8})
end
function cm.con(e,tp,eg,ep,ev,re,r,rp,chk)
return rp~=tp
......
......@@ -8,12 +8,14 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCondition(cm.con)
e1:SetCost(cm.cost)
e1:SetTarget(cm.tg)
c:RegisterEffect(e1)
SNNM.FanippetTrap(c,{e1})
local e2=e1:Clone()
e2:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e2)
SNNM.FanippetTrap(c,{e2})
end
function cm.cfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsSummonLocation(LOCATION_EXTRA)
......
......@@ -8,11 +8,13 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetCost(cm.cost)
e1:SetTarget(cm.tg)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_TRAP_ACT_IN_HAND)
......@@ -23,7 +25,7 @@ function cm.initial_effect(c)
e4:SetRange(LOCATION_GRAVE)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetTargetRange(1,0)
e4:SetLabelObject(e1)
e4:SetLabelObject(e2)
e4:SetTarget(cm.GraveActCostTarget)
e4:SetOperation(SNNM.GraveActCostOp)
c:RegisterEffect(e4)
......
......@@ -8,11 +8,13 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCountLimit(1,m+EFFECT_COUNT_CODE_OATH)
e1:SetCost(cm.cost)
e1:SetTarget(cm.tg)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_TRAP_ACT_IN_HAND)
......@@ -23,7 +25,7 @@ function cm.initial_effect(c)
e4:SetRange(LOCATION_GRAVE)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetTargetRange(1,0)
e4:SetLabelObject(e1)
e4:SetLabelObject(e2)
e4:SetTarget(cm.GraveActCostTarget)
e4:SetOperation(SNNM.GraveActCostOp)
c:RegisterEffect(e4)
......
local m=53716017
local cm=_G["c"..m]
cm.name="残滓离光 妄想天崖"
cm.Snnm_Ef_Rst=true
if not require and dofile then function require(str) return dofile(str..".lua") end end
if not pcall(function() require("expansions/script/c53702500") end) then require("script/c53702500") end
function cm.initial_effect(c)
--SNNM.AllEffectReset(c)
c:EnableReviveLimit()
local e0=Effect.CreateEffect(c)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetValue(aux.FALSE)
c:RegisterEffect(e0)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_EXTRA)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetCountLimit(1,m)
e1:SetCost(cm.cost)
--e1:SetTarget(cm.tg)
--e1:SetOperation(cm.op)
c:RegisterEffect(e1)
cm.Lustruin=e1
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_ACTIVATE_COST)
e2:SetRange(LOCATION_EXTRA)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,1)
e2:SetLabelObject(e1)
e2:SetCondition(cm.accon)
e2:SetTarget(cm.actarget)
e2:SetOperation(cm.acop)
c:RegisterEffect(e2)
local ew=Effect.CreateEffect(c)
ew:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ew:SetCode(EVENT_PHASE_START+PHASE_DRAW)
ew:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
ew:SetRange(0xff)
--ew:SetOperation(cm.down)
ew:SetCountLimit(1,EFFECT_COUNT_CODE_DUEL+m)
c:RegisterEffect(ew)
local ex=Effect.CreateEffect(c)
ex:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ex:SetCode(EVENT_ADJUST)
ex:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
ex:SetRange(0xff)
ex:SetOperation(cm.reset)
c:RegisterEffect(ex)
end
......@@ -8,7 +8,6 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCondition(cm.con)
e1:SetCost(cm.cost)
e1:SetTarget(cm.tg)
......@@ -16,7 +15,13 @@ function cm.initial_effect(c)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
SNNM.FanippetTrap(c,{e1,e2})
local e3=e1:Clone()
e3:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e3)
local e4=e2:Clone()
e4:SetRange(LOCATION_GRAVE)
c:RegisterEffect(e4)
SNNM.FanippetTrap(c,{e3,e4})
end
function cm.cfilter(c,tp)
return c:IsSummonPlayer(tp) and c:IsSummonLocation(LOCATION_HAND+LOCATION_GRAVE)
......
local m=53732002
local cm=_G["c"..m]
cm.name="测试区域2"
cm.Snnm_Ef_Rst=true
if not require and dofile then function require(str) return dofile(str..".lua") end end
if not pcall(function() require("expansions/script/c53702500") end) then require("script/c53702500") end
function cm.initial_effect(c)
SNNM.AllEffectReset(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,m)
e1:SetTarget(cm.tg)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
if not cm.Aozora_Check then
cm.Aozora_Check=true
cm[0]=Duel.RegisterEffect
Duel.RegisterEffect=function(e,p)
if e:GetCode()==EFFECT_DISABLE_FIELD then
local pro,pro2=e:GetProperty()
pro=pro|EFFECT_FLAG_PLAYER_TARGET
e:SetProperty(pro,pro2)
e:SetTargetRange(1,1)
end
cm[0](e,p)
end
cm[1]=Card.RegisterEffect
Card.RegisterEffect=function(c,e,bool)
if e:GetCode()==EFFECT_DISABLE_FIELD then
local op,range,con=e:GetOperation(),e:GetRange(),e:GetCondition()
if op then
local ex=Effect.CreateEffect(c)
ex:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ex:SetCode(EVENT_ADJUST)
ex:SetRange(range)
ex:SetOperation(cm.exop)
cm[1](c,ex)
cm[ex]={op,range,con}
e:SetOperation(nil)
else
local pro,pro2=e:GetProperty()
pro=pro|EFFECT_FLAG_PLAYER_TARGET
e:SetProperty(pro,pro2)
e:SetTargetRange(1,1)
end
end
cm[1](c,e,bool)
end
end
end
function cm.exop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:GetFlagEffect(m)>0 then return end
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_OVERLAY,0,0)
local op,range,con=cm[e][1],cm[e][2],cm[e][3]
local val=op(e,tp)
if tp==1 then val=((val&0xffff)<<16)|((val>>16)&0xffff) end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE_FIELD)
e1:SetRange(range)
if con then e1:SetCondition(con) end
e1:SetValue(val)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_OVERLAY)
c:RegisterEffect(e1)
end
function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local zone=0
local ce={Duel.IsPlayerAffectedByEffect(tp,EFFECT_DISABLE_FIELD)}
for _,te in ipairs(ce) do
local con=te:GetCondition()
local val=te:GetValue()
if (not con or con(te)) then
if val then if aux.GetValueType(val)=="function" then zone=zone+val(te) else zone=zone+val end end
end
end
if tp==1 then zone=((zone&0xffff)<<16)|((zone>>16)&0xffff) end
return zone&0x1f>0
--return zone&0x4bb0f>0
end
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)==0 then return end
local zone=0
local ce={Duel.IsPlayerAffectedByEffect(tp,EFFECT_DISABLE_FIELD)}
for _,te in ipairs(ce) do
local con=te:GetCondition()
local val=te:GetValue()
if (not con or con(te)) then
if val then if aux.GetValueType(val)=="function" then zone=zone+val(te) else zone=zone+val end end
end
end
if tp==1 then zone=((zone&0xffff)<<16)|((zone>>16)&0xffff) end
if zone&0x1f==0 then return end
--if zone&0x4bb0f==0 then return end
local z=Duel.SelectField(tp,1,LOCATION_MZONE,0,(~zone)|0xe000e0)
--local z=Duel.SelectField(tp,1,LOCATION_MZONE,LOCATION_MZONE,(~zone)|0xe000e0)
Duel.Hint(HINT_ZONE,tp,z)
if tp==1 then z=((z&0xffff)<<16)|((z>>16)&0xffff) end
local ce={Duel.IsPlayerAffectedByEffect(tp,EFFECT_DISABLE_FIELD)}
for _,te in ipairs(ce) do
local val=te:GetValue()
if val then
if aux.GetValueType(val)=="function" then
cm[te]={val}
local zone=val(te)
val=zone
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_ADJUST)
e1:SetLabel(zone)
e1:SetLabelObject(te)
e1:SetOperation(cm.retop)
Duel.RegisterEffect(e1,tp)
end
if z&val~=0 then val=val-z end
te:SetValue(val)
end
end
end
function cm.retop(e,tp,eg,ep,ev,re,r,rp)
local zone,te=e:GetLabel(),e:GetLabelObject()
if not te then
e:Reset()
return
end
local val=cm[te][1]
local eval=val(te)
local res=true
local ce={Duel.IsPlayerAffectedByEffect(tp,EFFECT_DISABLE_FIELD)}
for _,ke in ipairs(ce) do
if ke==te then res=false end
end
if zone~=eval or res then
te:SetValue(val)
e:Reset()
end
end
This diff is collapsed.
local m=53735002
local cm=_G["c"..m]
cm.name="大祭柱 邪奴"
if not require and dofile then function require(str) return dofile(str..".lua") end end
if not pcall(function() require("expansions/script/c53702500") end) then require("script/c53702500") end
function cm.initial_effect(c)
SNNM.GCSpirit(c,cm.op)
end
function cm.op(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetRange(LOCATION_SZONE)
e1:SetCondition(cm.negcon)
e1:SetOperation(cm.negop)
c:RegisterEffect(e1)
return e1
end
function cm.negcon(e,tp,eg,ep,ev,re,r,rp)
return rp~=tp and Duel.IsChainDisablable(ev) and e:GetHandler():IsAbleToExtra()
end
function cm.negop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.Hint(HINT_CARD,0,m)
if Duel.SendtoDeck(c,nil,2,REASON_EFFECT)~=0 and c:IsLocation(LOCATION_EXTRA) then
if Duel.NegateEffect(ev) and re:GetHandler():IsRelateToEffect(re) then Duel.Destroy(re:GetHandler(),REASON_EFFECT) end
end
end
end
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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