Commit 623405a3 authored by DailyShana's avatar DailyShana

fix

parent 39314934
......@@ -57,15 +57,14 @@ function c18621798.spfilter(c,e,tp)
end
function c18621798.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c18621798.spfilter(chkc,e,tp) end
if chk==0 then return Duel.IsExistingTarget(c18621798.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c18621798.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,c18621798.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function c18621798.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then
local fid=c:GetFieldID()
......
......@@ -55,8 +55,8 @@ function c28776350.thcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function c28776350.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local lg=e:GetHandler():GetLinkedGroup():Filter(Card.IsAbleToHand,nil)
if chk==0 then return true end
local lg=e:GetHandler():GetLinkedGroup():Filter(Card.IsAbleToHand,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,lg,lg:GetCount(),0,0)
end
function c28776350.thop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -12,14 +12,7 @@ function c30010480.initial_effect(c)
e1:SetTargetRange(LOCATION_HAND,LOCATION_HAND)
e1:SetValue(c30010480.sumval)
c:RegisterEffect(e1)
--special summon
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_LEAVE_FIELD_P)
e2:SetOperation(c30010480.regop)
c:RegisterEffect(e2)
--atk
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(30010480,1))
e3:SetCategory(CATEGORY_ATKCHANGE)
......@@ -27,7 +20,6 @@ function c30010480.initial_effect(c)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e3:SetCode(EVENT_DESTROYED)
e3:SetRange(LOCATION_MZONE)
e3:SetLabelObject(e2)
e3:SetCondition(c30010480.atkcon)
e3:SetOperation(c30010480.atkop)
c:RegisterEffect(e3)
......@@ -43,20 +35,14 @@ function c30010480.sumval(e,c)
return 0,sumzone,relzone
end
end
function c30010480.regop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetHandler():GetLinkedGroup()
if not g then return end
local lg=g:Clone()
lg:KeepAlive()
e:SetLabelObject(lg)
end
function c30010480.cfilter(c,g)
return c:IsReason(REASON_BATTLE+REASON_EFFECT) and g:IsContains(c)
function c30010480.cfilter(c,tp,zone)
local seq=c:GetPreviousSequence()
if c:GetPreviousControler()~=tp then seq=seq+16 end
return c:IsReason(REASON_BATTLE+REASON_EFFECT)
and c:IsPreviousLocation(LOCATION_MZONE) and bit.extract(zone,seq)~=0
end
function c30010480.atkcon(e,tp,eg,ep,ev,re,r,rp)
local lg=e:GetLabelObject():GetLabelObject()
if not lg then return false end
return eg:IsExists(c30010480.cfilter,1,nil,lg)
return eg:IsExists(c30010480.cfilter,1,nil,tp,e:GetHandler():GetLinkedZone())
end
function c30010480.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
......
......@@ -69,7 +69,6 @@ function c31833038.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
local tc=Duel.GetAttackTarget()
if chk==0 then
if not c:IsType(TYPE_LINK) then return false end
local zone=bit.band(c:GetLinkedZone(),0x1f)
return Duel.GetAttacker()==c and tc and tc:IsControlerCanBeChanged(false,zone)
end
......
......@@ -32,7 +32,7 @@ end
function c66015185.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local zone=e:GetHandler():GetLinkedZone(tp)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c66015185.filter(chkc,e,tp,zone) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and zone~=0
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c66015185.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp,zone) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,c66015185.filter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp,zone)
......@@ -41,8 +41,6 @@ end
function c66015185.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local zone=c:GetLinkedZone(tp)
if zone==0 then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP,zone) then
local e1=Effect.CreateEffect(c)
......
......@@ -15,44 +15,21 @@ function c67231737.initial_effect(c)
e1:SetTarget(c67231737.target)
e1:SetOperation(c67231737.operation)
c:RegisterEffect(e1)
if not c67231737.global_check then
c67231737.global_check=true
c67231737[0]=0
c67231737[1]=0
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_ATTACK_ANNOUNCE)
ge1:SetOperation(c67231737.checkop)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_PHASE_START+PHASE_DRAW)
ge2:SetOperation(c67231737.clear)
Duel.RegisterEffect(ge2,0)
end
end
function c67231737.checkop(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
if tc:GetFlagEffect(67231737)==0 then
c67231737[ep]=c67231737[ep]+1
tc:RegisterFlagEffect(67231737,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
end
function c67231737.clear(e,tp,eg,ep,ev,re,r,rp)
c67231737[0]=0
c67231737[1]=0
end
function c67231737.condition(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.GetAttacker()
if a:IsControler(1-tp) then return false end
local lg=e:GetHandler():GetLinkedGroup()
local d=a:GetBattleTarget()
return lg and lg:IsContains(a) and d and d:IsControler(1-tp)
return lg:IsContains(a) and d and d:IsControler(1-tp)
end
function c67231737.oathfilter(c)
return c:GetAttackAnnouncedCount()>0
end
function c67231737.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local a=Duel.GetAttacker()
local c=e:GetHandler()
if chk==0 then return c67231737[tp]==0 or a:GetFlagEffect(67231737)~=0 end
if chk==0 then return not Duel.IsExistingMatchingCard(c67231737.oathfilter,tp,LOCATION_MZONE,0,1,a) end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ATTACK)
......@@ -66,15 +43,12 @@ end
function c67231737.ftarget(e,c)
return e:GetLabel()~=c:GetFieldID()
end
function c67231737.filter(c)
return c:IsFaceup() and c:IsType(TYPE_LINK)
end
function c67231737.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMatchingGroupCount(c67231737.filter,tp,LOCATION_MZONE,0,e:GetHandler())>0 end
if chk==0 then return Duel.GetMatchingGroupCount(Card.IsType,tp,LOCATION_MZONE,0,e:GetHandler(),TYPE_LINK)>0 end
end
function c67231737.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local gc=Duel.GetMatchingGroupCount(c67231737.filter,tp,LOCATION_MZONE,0,c)
local gc=Duel.GetMatchingGroupCount(Card.IsType,tp,LOCATION_MZONE,0,c,TYPE_LINK)
if gc==0 then return end
local a=Duel.GetAttacker()
if a:IsRelateToBattle() and a:IsFaceup() then
......@@ -94,12 +68,9 @@ function c67231737.operation(e,tp,eg,ep,ev,re,r,rp)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_MUST_BE_ATTACKED)
e2:SetTargetRange(0,LOCATION_MZONE)
e2:SetTarget(c67231737.attg)
e2:SetTarget(aux.TargetBoolFunction(Card.IsType,TYPE_LINK))
e2:SetValue(1)
e2:SetReset(RESET_PHASE+PHASE_BATTLE)
Duel.RegisterEffect(e2,tp)
end
end
function c67231737.attg(e,c)
return c:IsFaceup() and c:IsType(TYPE_LINK)
end
......@@ -34,26 +34,18 @@ function c71133680.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsDiscardable() end
Duel.SendtoGrave(e:GetHandler(),REASON_COST+REASON_DISCARD)
end
function c71133680.atkfilter1(c,mg)
function c71133680.atkfilter(c,e,tp)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_WATER)
and c:IsLocation(LOCATION_MZONE)
and mg:IsExists(aux.TRUE,1,c)
end
function c71133680.atkfilter2(c,tp)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_WATER)
and Duel.IsExistingMatchingCard(c71133680.desfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,1,c)
and Duel.IsExistingMatchingCard(c71133680.desfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,1,Group.FromCards(c,e:GetHandler()))
end
function c71133680.desfilter(c)
return c:IsAttribute(ATTRIBUTE_WATER) and (c:GetBaseAttack()>0 or c:GetBaseDefense()>0)
end
function c71133680.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c71133680.atkfilter2(chkc,tp) end
if chk==0 then
local mg=Duel.GetMatchingGroup(c71133680.desfilter,tp,LOCATION_MZONE+LOCATION_HAND,0,e:GetHandler())
return Duel.IsExistingTarget(c71133680.atkfilter1,tp,LOCATION_MZONE,0,1,nil,mg)
end
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c71133680.atkfilter(chkc,e,tp) end
if chk==0 then return Duel.IsExistingTarget(c71133680.atkfilter,tp,LOCATION_MZONE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c71133680.atkfilter2,tp,LOCATION_MZONE,0,1,1,nil,tp)
Duel.SelectTarget(tp,c71133680.atkfilter,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,tp,LOCATION_MZONE+LOCATION_HAND)
end
function c71133680.atkop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -14,8 +14,7 @@ function c88086137.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local seq,p=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_SEQUENCE,CHAININFO_TRIGGERING_CONTROLER)
if p==1-tp then seq=seq+16 end
local zone=bit.lshift(1,seq)
return (bit.band(c:GetColumnZone(LOCATION_MZONE),zone)~=0 or bit.band(c:GetColumnZone(LOCATION_SZONE),zone)~=0)
return (bit.extract(c:GetColumnZone(LOCATION_MZONE),seq)~=0 or bit.extract(c:GetColumnZone(LOCATION_SZONE),seq)~=0)
and (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.IsChainNegatable(ev)
end
function c88086137.target(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -23,6 +23,7 @@ function c93503294.initial_effect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetCountLimit(1,93503295)
e2:SetCondition(c93503294.thcon)
e2:SetTarget(c93503294.thtg)
e2:SetOperation(c93503294.thop)
......
......@@ -23,11 +23,10 @@ function c94626871.initial_effect(c)
c:RegisterEffect(e3)
end
function c94626871.cfilter(c,tp,zone)
if not c:IsReason(REASON_DESTROY) or not c:IsReason(REASON_BATTLE+REASON_EFFECT)
or not zone then return false end
local seq=c:GetPreviousSequence()
if c:GetPreviousControler()~=tp then seq=seq+16 end
return c:IsPreviousLocation(LOCATION_MZONE) and bit.extract(zone,seq)~=0
return c:IsReason(REASON_DESTROY) and c:IsReason(REASON_BATTLE+REASON_EFFECT)
and c:IsPreviousLocation(LOCATION_MZONE) and bit.extract(zone,seq)~=0
end
function c94626871.damcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c94626871.cfilter,1,nil,tp,e:GetHandler():GetLinkedZone())
......
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