Commit ad1f02ff authored by POLYMER's avatar POLYMER

fix

parent 00b46664
...@@ -18,24 +18,6 @@ end ...@@ -18,24 +18,6 @@ end
end end
return g return g
end--]] end--]]
local _IsTuner=Card.IsTuner
function Card.IsTuner(c,...)
local ext_params={...}
if #ext_params==0 then return true end
return _IsTuner(c,...)
end
local _IsCanBeSynchroMaterial=Card.IsCanBeSynchroMaterial
function Card.IsCanBeSynchroMaterial(c,...)
local ext_params={...}
if #ext_params==0 then return _IsCanBeSynchroMaterial(c,...) end
local sc=ext_params[1]
local tp=sc:GetControler()
if c:IsLocation(LOCATION_MZONE) and not c:IsControler(tp) then
local mg=Duel.GetSynchroMaterial(tp)
return mg:IsContains(c) and _IsCanBeSynchroMaterial(c,sc,...)
end
return _IsCanBeSynchroMaterial(c,...)
end
local KOISHI_CHECK=false local KOISHI_CHECK=false
if Duel.Exile then KOISHI_CHECK=true end if Duel.Exile then KOISHI_CHECK=true end
local A=1103515245 local A=1103515245
...@@ -56,14 +38,6 @@ function cm.roll(min,max) ...@@ -56,14 +38,6 @@ function cm.roll(min,max)
return cm.r return cm.r
end end
--if Duel.GetRandomNumber then cm.roll=Duel.GetRandomNumber end --if Duel.GetRandomNumber then cm.roll=Duel.GetRandomNumber end
if not Effect.GetRange then
function Effect.GetRange(e)
if table_range and table_range[e] then
return table_range[e]
end
return 0
end
end
if not require and loadfile then if not require and loadfile then
function require(str) function require(str)
require_list=require_list or {} require_list=require_list or {}
...@@ -165,14 +139,14 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp) ...@@ -165,14 +139,14 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end end
end end
if KOISHI_CHECK then if KOISHI_CHECK then
Duel.ResetTimeLimit(0,999) --Duel.ResetTimeLimit(0,999)
Duel.ResetTimeLimit(1,999) --Duel.ResetTimeLimit(1,999)
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_PHASE_START+PHASE_DRAW) e0:SetCode(EVENT_PHASE_START+PHASE_DRAW)
e0:SetCountLimit(1) e0:SetCountLimit(1)
e0:SetOperation(function() Duel.ResetTimeLimit(0,999) Duel.ResetTimeLimit(1,999) end) e0:SetOperation(function() Duel.ResetTimeLimit(0,999) Duel.ResetTimeLimit(1,999) end)
Duel.RegisterEffect(e0,0) --Duel.RegisterEffect(e0,0)
end end
local ag=Duel.GetMatchingGroup(cm.nnfilter,0,0xff,0xff,nil) local ag=Duel.GetMatchingGroup(cm.nnfilter,0,0xff,0xff,nil)
local _TGetID=GetID local _TGetID=GetID
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
function c11560718.initial_effect(c) function c11560718.initial_effect(c)
--xyz summon --xyz summon
c:EnableReviveLimit() c:EnableReviveLimit()
aux.AddXyzProcedureLevelFree(c,c11560718.mfilter,c11560718.xyzcheck,1,99) aux.AddXyzProcedureLevelFree(c,c11560718.mfilter,c11560718.xyzcheck,2,99)
--xyz --xyz
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
-- e1:SetCategory(CATEGORY_SPECIAL_SUMMON) -- e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
......
...@@ -69,8 +69,9 @@ function c28318606.splimit(e,c,sump,sumtype,sumpos,targetp,se) ...@@ -69,8 +69,9 @@ function c28318606.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return not c:IsRace(RACE_FAIRY) and c:IsLocation(LOCATION_EXTRA) return not c:IsRace(RACE_FAIRY) and c:IsLocation(LOCATION_EXTRA)
end end
function c28318606.confilter(c,tp) function c28318606.confilter(c,tp)
return c:IsRace(RACE_FAIRY) and c:IsPreviousControler(tp) and c:IsPreviousLocation(LOCATION_MZONE) return (c:GetPreviousRaceOnField()&RACE_FAIRY)>0 and c:IsPreviousControler(tp)
and c:IsPreviousPosition(POS_FACEUP) and c:GetReasonPlayer()==1-tp and not c:IsReason(REASON_RULE) and c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousPosition(POS_FACEUP)
and c:GetReasonPlayer()==1-tp and not c:IsReason(REASON_RULE)
end end
function c28318606.con(e,tp,eg,ep,ev,re,r,rp) function c28318606.con(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c28318606.confilter,1,nil,tp) return eg:IsExists(c28318606.confilter,1,nil,tp)
......
...@@ -75,7 +75,7 @@ function c28366214.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -75,7 +75,7 @@ function c28366214.activate(e,tp,eg,ep,ev,re,r,rp)
local e4=Effect.CreateEffect(e:GetHandler()) local e4=Effect.CreateEffect(e:GetHandler())
e4:SetType(EFFECT_TYPE_SINGLE) e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetCode(EFFECT_UPDATE_ATTACK) e4:SetCode(EFFECT_UPDATE_ATTACK)
e4:SetValue(ct*1000) e4:SetValue(ct*1700)
e4:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END) e4:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e4) tc:RegisterEffect(e4)
end end
......
...@@ -31,7 +31,7 @@ function cm.initial_effect(c) ...@@ -31,7 +31,7 @@ function cm.initial_effect(c)
--tohand --tohand
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1)) e1:SetDescription(aux.Stringid(m,1))
e1:SetCategory(CATEGORY_TOHAND) e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY) e1:SetProperty(EFFECT_FLAG_DELAY)
......
...@@ -100,7 +100,7 @@ function cm.goal(g,tp,lv,syncard,tuc) ...@@ -100,7 +100,7 @@ function cm.goal(g,tp,lv,syncard,tuc)
if Duel.GetLocationCountFromEx(tp,tp,g,syncard)<=0 then return false end if Duel.GetLocationCountFromEx(tp,tp,g,syncard)<=0 then return false end
if tuc:IsHasEffect(EFFECT_HAND_SYNCHRO) and g:IsExists(Card.IsLocation,2,tuc,LOCATION_HAND) then return false end if tuc:IsHasEffect(EFFECT_HAND_SYNCHRO) and g:IsExists(Card.IsLocation,2,tuc,LOCATION_HAND) then return false end
local ct=g:GetCount() local ct=g:GetCount()
return g:CheckWithSumEqual(cm.val,lv,ct,ct,syncard) return g:CheckWithSumEqual(cm.val,lv,ct,ct,syncard) and g:IsContains(tuc)
end end
function cm.syncon(e,c,tuner,mg) function cm.syncon(e,c,tuner,mg)
if c==nil then return true end if c==nil then return true end
......
...@@ -32,7 +32,7 @@ function c75075611.initial_effect(c) ...@@ -32,7 +32,7 @@ function c75075611.initial_effect(c)
aux.RegisterMergedDelayedEvent(c,75075611,EVENT_SUMMON_SUCCESS) aux.RegisterMergedDelayedEvent(c,75075611,EVENT_SUMMON_SUCCESS)
end end
function c75075611.filter(c) function c75075611.filter(c)
return c:IsFaceup() and c:IsSetCard(0x757) return c:IsFaceup() and c:IsSetCard(0x75a)
end end
function c75075611.damtg(e,tp,eg,ep,ev,re,r,rp,chk) function c75075611.damtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c75075611.filter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c75075611.filter,tp,LOCATION_MZONE,0,1,nil) end
......
...@@ -27,7 +27,12 @@ function c75081007.initial_effect(c) ...@@ -27,7 +27,12 @@ function c75081007.initial_effect(c)
end end
end end
function c75081007.spcheckop(e,tp,eg,ep,ev,re,r,rp) function c75081007.spcheckop(e,tp,eg,ep,ev,re,r,rp)
if eg:IsExists(Card.IsControler,1,nil,tp) then return Duel.RegisterFlagEffect(tp,75081007,RESET_PHASE+PHASE_END,0,1) end local c=e:GetHandler()
local tc=eg:GetFirst()
while tc and tc:IsType(TYPE_MONSTER) do
Duel.RegisterFlagEffect(tc:GetPreviousControler(),75081007,RESET_PHASE+PHASE_END,0,1)
tc=eg:GetNext()
end
end end
function c75081007.spcon1(e,tp,eg,ep,ev,re,r,rp) function c75081007.spcon1(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,75081007)==0 return Duel.GetFlagEffect(tp,75081007)==0
......
...@@ -43,11 +43,17 @@ function c75081011.initial_effect(c) ...@@ -43,11 +43,17 @@ function c75081011.initial_effect(c)
ge1:SetCode(EVENT_REMOVE) ge1:SetCode(EVENT_REMOVE)
ge1:SetOperation(c75081011.spcheckop) ge1:SetOperation(c75081011.spcheckop)
Duel.RegisterEffect(ge1,0) Duel.RegisterEffect(ge1,0)
end end
end end
function c75081011.spcheckop(e,tp,eg,ep,ev,re,r,rp) function c75081011.spcheckop(e,tp,eg,ep,ev,re,r,rp)
if eg:IsExists(Card.IsControler,1,nil,tp) then return Duel.RegisterFlagEffect(tp,75081011,RESET_PHASE+PHASE_END,0,1) end local c=e:GetHandler()
local tc=eg:GetFirst()
while tc and tc:IsType(TYPE_MONSTER) do
Duel.RegisterFlagEffect(tc:GetPreviousControler(),75081011,RESET_PHASE+PHASE_END,0,1)
tc=eg:GetNext()
end
end end
function c75081011.con1(e,tp,eg,ep,ev,re,r,rp) function c75081011.con1(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,75081011)==0 return Duel.GetFlagEffect(tp,75081011)==0
end end
......
--太沧挑战者 破面之刻 --太沧挑战者 破面之刻
local s,id,o=GetID() local s,id,o=GetID()
function s.initial_effect(c) function s.initial_effect(c)
--synchro summon --synchro summon
aux.AddSynchroProcedure(c,aux.FilterBoolFunction(Card.IsAttribute,ATTRIBUTE_WATER),aux.NonTuner(Card.IsLevel,7),1) aux.AddSynchroProcedure(c,aux.FilterBoolFunction(Card.IsAttribute,ATTRIBUTE_WATER),aux.NonTuner(Card.IsAttribute,ATTRIBUTE_WATER),1)
c:EnableReviveLimit() c:EnableReviveLimit()
--indes --indes
local e0=Effect.CreateEffect(c) local e0=Effect.CreateEffect(c)
......
...@@ -11,12 +11,13 @@ function s.initial_effect(c) ...@@ -11,12 +11,13 @@ function s.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--spsummon --spsummon
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND) e2:SetDescription(aux.Stringid(id,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_GRAVE)
e2:SetCode(EVENT_FREE_CHAIN) e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCountLimit(1,id) e2:SetRange(LOCATION_GRAVE)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE) e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e2:SetCountLimit(1,id)
e2:SetCost(aux.bfgcost) e2:SetCost(aux.bfgcost)
e2:SetTarget(s.sptg) e2:SetTarget(s.sptg)
e2:SetOperation(s.spop) e2:SetOperation(s.spop)
...@@ -52,27 +53,37 @@ function s.spfilter(c,e,tp) ...@@ -52,27 +53,37 @@ function s.spfilter(c,e,tp)
end end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_HAND+LOCATION_GRAVE,0,1,e:GetHandler(),e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_GRAVE)
end end
function s.spop(e,tp,eg,ep,ev,re,r,rp) function s.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.spfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.spfilter),tp,LOCATION_HAND+LOCATION_GRAVE,0,1,1,nil,e,tp)
local tc=g:GetFirst() local tc=g:GetFirst()
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end if tc then
if tc and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE) then Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
local fid=e:GetHandler():GetFieldID()
tc:RegisterFlagEffect(id,RESET_EVENT+RESETS_STANDARD,0,1,fid)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE) e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetRange(LOCATION_MZONE) e1:SetCountLimit(1)
e1:SetCode(EVENT_PHASE+PHASE_END) e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetOperation(s.thop) e1:SetLabel(fid)
e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetLabelObject(tc)
e1:SetCountLimit(1) e1:SetCondition(s.thcon)
tc:RegisterEffect(e1) e1:SetOperation(s.thop)
Duel.RegisterEffect(e1,tp)
end end
Duel.SpecialSummonComplete() end
function s.thcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
if tc:GetFlagEffectLabel(id)~=e:GetLabel() then
e:Reset()
return false
else return true end
end end
function s.thop(e,tp,eg,ep,ev,re,r,rp) function s.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT) Duel.SendtoHand(e:GetLabelObject(),nil,REASON_EFFECT)
end end
\ No newline at end of file
--太沧相 帝神鲛 --太沧相 帝神鲛
local s,id,o=GetID() local s,id,o=GetID()
function s.initial_effect(c) function s.initial_effect(c)
--synchro summon --Synchro summon
aux.AddSynchroProcedure(c,nil,nil,1) aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit() c:EnableReviveLimit()
--atk --atk
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
...@@ -13,20 +13,20 @@ function s.initial_effect(c) ...@@ -13,20 +13,20 @@ function s.initial_effect(c)
e2:SetTarget(s.atkfilter) e2:SetTarget(s.atkfilter)
e2:SetValue(s.val) e2:SetValue(s.val)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--special summon --spsummon
local e2=Effect.CreateEffect(c) local e4=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1)) e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON) e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetType(EFFECT_TYPE_QUICK_O) e4:SetType(EFFECT_TYPE_QUICK_O)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END) e4:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_FREE_CHAIN) e4:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e2:SetCountLimit(1,id) e4:SetCountLimit(1,id)
e2:SetCondition(s.spcon) e4:SetCondition(s.spcon2)
e2:SetCost(s.spcost) e4:SetCost(s.spcost2)
e2:SetTarget(s.sptg) e4:SetTarget(s.sptg2)
e2:SetOperation(s.spop) e4:SetOperation(s.spop2)
c:RegisterEffect(e2) c:RegisterEffect(e4)
--attack --attack
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_IGNITION) e3:SetType(EFFECT_TYPE_IGNITION)
...@@ -43,6 +43,19 @@ function s.initial_effect(c) ...@@ -43,6 +43,19 @@ function s.initial_effect(c)
Duel.RegisterEffect(ge1,0) Duel.RegisterEffect(ge1,0)
end end
end end
function s.attop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DIRECT_ATTACK)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetTarget(s.target)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,0,1)
end
function s.target(e,c)
return c:IsAttribute(ATTRIBUTE_WATER)
end
function s.checkfilter(c) function s.checkfilter(c)
return c:IsCode(53582587) and c:IsFaceup() return c:IsCode(53582587) and c:IsFaceup()
end end
...@@ -61,47 +74,41 @@ end ...@@ -61,47 +74,41 @@ end
function s.val(e,c) function s.val(e,c)
return c:GetLevel()*150 return c:GetLevel()*150
end end
function s.spcon(e,tp,eg,ep,ev,re,r,rp) function s.spcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp and (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2) return Duel.GetTurnPlayer()~=tp
end end
function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk) function s.spcost2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsReleasable() end if chk==0 then return e:GetHandler():IsReleasable() end
Duel.Release(e:GetHandler(),REASON_COST) Duel.Release(e:GetHandler(),REASON_COST)
end end
function s.spfilter(c,e,tp) function s.spfilter(c,e,tp)
return c:IsLevelBelow(8) and c:IsSetCard(0xc07) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP) return c:IsLevelBelow(8) and c:IsSetCard(0xc07) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
end end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) function s.sptg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp,nil) and Duel.GetMZoneCount(tp,e:GetHandler())>1 and Duel.GetMZoneCount(tp,mc)>0 end if chkc then return false end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) local g=Duel.GetMatchingGroup(s.spfilter,tp,LOCATION_REMOVED+LOCATION_GRAVE,0,nil,e,tp)
end if chk==0 then
function s.gcheck(g) local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
return aux.dncheck(g) if e:GetHandler():GetSequence()<5 then ft=ft+1 end
end return ft>2 and not Duel.IsPlayerAffectedByEffect(tp,59822133)
function s.spop(e,tp,eg,ep,ev,re,r,rp) and g:GetClassCount(Card.GetCode)>2
if Duel.IsPlayerAffectedByEffect(tp,59822133) then return end
local g=Duel.GetMatchingGroup(s.spfilter,tp,LOCATION_GRAVE,0,nil,e,tp,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:SelectSubGroup(tp,s.gcheck,false,2,2)
if sg then
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
end end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:SelectSubGroup(tp,aux.dncheck,false,2,2)
Duel.SetTargetCard(sg)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,sg,2,0,0)
end end
function s.atttg(e,tp,eg,ep,ev,re,r,rp,chk) function s.spop2(e,tp,eg,ep,ev,re,r,rp)
if chk==0 then return Duel.GetFlagEffect(tp,id)>0 end local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
end local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
function s.dfilter(c) if g:GetCount()==0 or (g:GetCount()>1 and Duel.IsPlayerAffectedByEffect(tp,59822133)) then return end
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_WATER) if g:GetCount()<=ft then
end Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
function s.attop(e,tp,eg,ep,ev,re,r,rp) else
local dg=Duel.GetMatchingGroup(s.dfilter,tp,LOCATION_MZONE,0,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tc=dg:GetFirst() local sg=g:Select(tp,ft,ft,nil)
while tc do Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler()) g:Sub(sg)
e1:SetType(EFFECT_TYPE_SINGLE) Duel.SendtoGrave(g,REASON_RULE)
e1:SetCode(EFFECT_DIRECT_ATTACK)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
tc=dg:GetNext()
end end
end end
\ No newline at end of file
...@@ -112,6 +112,15 @@ function Auxiliary.PreloadUds() ...@@ -112,6 +112,15 @@ function Auxiliary.PreloadUds()
end end
return clone_e return clone_e
end end
if not Effect.GetRange then
function Effect.GetRange(e)
if table_range and table_range[e] then
return table_range[e]
end
return 0
end
end
local _CRegisterEffect=Card.RegisterEffect local _CRegisterEffect=Card.RegisterEffect
function Card.RegisterEffect(c,e,...) function Card.RegisterEffect(c,e,...)
local eid=_CRegisterEffect(c,e,...) local eid=_CRegisterEffect(c,e,...)
...@@ -141,6 +150,25 @@ function Auxiliary.PreloadUds() ...@@ -141,6 +150,25 @@ function Auxiliary.PreloadUds()
return (c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)) or (not c:IsLocation(LOCATION_SZONE) and _IsCanTurnSet(c,...)) return (c:IsLocation(LOCATION_SZONE) and c:IsSSetable(true)) or (not c:IsLocation(LOCATION_SZONE) and _IsCanTurnSet(c,...))
end end
local _IsTuner=Card.IsTuner
function Card.IsTuner(c,...)
local ext_params={...}
if #ext_params==0 then return true end
return _IsTuner(c,...)
end
local _IsCanBeSynchroMaterial=Card.IsCanBeSynchroMaterial
function Card.IsCanBeSynchroMaterial(c,...)
local ext_params={...}
if #ext_params==0 then return _IsCanBeSynchroMaterial(c,...) end
local sc=ext_params[1]
local tp=sc:GetControler()
if c:IsLocation(LOCATION_MZONE) and not c:IsControler(tp) then
local mg=Duel.GetSynchroMaterial(tp)
return mg:IsContains(c) and _IsCanBeSynchroMaterial(c,...)
end
return _IsCanBeSynchroMaterial(c,...)
end
--From REIKAI --From REIKAI
if not Group.ForEach then if not Group.ForEach then
function Group.ForEach(group,func,...) function Group.ForEach(group,func,...)
......
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