Commit ad1f02ff authored by POLYMER's avatar POLYMER

fix

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