Commit c1892016 authored by DailyShana's avatar DailyShana

fix

parent 6fca77a2
...@@ -22,14 +22,10 @@ function c31292357.initial_effect(c) ...@@ -22,14 +22,10 @@ function c31292357.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
--atk --atk
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EFFECT_SET_ATTACK_FINAL) e3:SetCode(31292357)
e3:SetCondition(c31292357.atkcon) e3:SetOperation(c31292357.atkop)
e3:SetValue(3300)
c:RegisterEffect(e3) c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_SET_DEFENCE_FINAL)
c:RegisterEffect(e4)
end end
function c31292357.spcon(e,c) function c31292357.spcon(e,c)
if c==nil then return true end if c==nil then return true end
...@@ -49,6 +45,9 @@ end ...@@ -49,6 +45,9 @@ end
function c31292357.ctop(e,tp,eg,ep,ev,re,r,rp) function c31292357.ctop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:AddCounter(0x3036,1) then if c:IsRelateToEffect(e) and c:AddCounter(0x3036,1) then
if c:GetCounter(0x3036)==3 then
Duel.RaiseSingleEvent(c,31292357,e,0,0,tp,0)
end
local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT) local re=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_EFFECT)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
...@@ -68,6 +67,15 @@ function c31292357.damval(e,re,val,r,rp,rc) ...@@ -68,6 +67,15 @@ function c31292357.damval(e,re,val,r,rp,rc)
return val return val
end end
end end
function c31292357.atkcon(e) function c31292357.atkop(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetCounter(0x3036)==3 local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(3300)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EFFECT_SET_DEFENCE_FINAL)
c:RegisterEffect(e2)
end end
...@@ -38,12 +38,17 @@ end ...@@ -38,12 +38,17 @@ end
function c39980304.chain_target(e,te,tp) function c39980304.chain_target(e,te,tp)
return Duel.GetMatchingGroup(c39980304.filter,tp,LOCATION_MZONE+LOCATION_GRAVE+LOCATION_HAND+LOCATION_DECK,0,nil,te) return Duel.GetMatchingGroup(c39980304.filter,tp,LOCATION_MZONE+LOCATION_GRAVE+LOCATION_HAND+LOCATION_DECK,0,nil,te)
end end
function c39980304.chain_operation(e,te,tp,tc,mat,sumtype) function c39980304.chain_operation(e,te,tp,tc,mat,sumtype,step)
if not sumtype then sumtype=SUMMON_TYPE_FUSION end if not sumtype then sumtype=SUMMON_TYPE_FUSION end
if not step then step=false end
tc:SetMaterial(mat) tc:SetMaterial(mat)
Duel.Remove(mat,POS_FACEUP,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION) Duel.Remove(mat,POS_FACEUP,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,sumtype,tp,tp,false,false,POS_FACEUP) if step then
Duel.SpecialSummonStep(tc,sumtype,tp,tp,false,false,POS_FACEUP)
else
Duel.SpecialSummon(tc,sumtype,tp,tp,false,false,POS_FACEUP)
end
tc:RegisterFlagEffect(39980304,RESET_EVENT+0x1fc0000+RESET_PHASE+RESET_END,0,1) tc:RegisterFlagEffect(39980304,RESET_EVENT+0x1fc0000+RESET_PHASE+RESET_END,0,1)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetOwnerPlayer(tp) e1:SetOwnerPlayer(tp)
......
...@@ -28,22 +28,16 @@ end ...@@ -28,22 +28,16 @@ end
function c43268675.indcon(e,tp,eg,ep,ev,re,r,rp) function c43268675.indcon(e,tp,eg,ep,ev,re,r,rp)
return r==REASON_FUSION and e:GetHandler():IsLocation(LOCATION_GRAVE) return r==REASON_FUSION and e:GetHandler():IsLocation(LOCATION_GRAVE)
end end
function c43268675.filter(c)
return c:IsFaceup() and c:IsSetCard(0x9b)
end
function c43268675.indop(e,tp,eg,ep,ev,re,r,rp) function c43268675.indop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c43268675.filter,tp,LOCATION_MZONE,0,nil) local e1=Effect.CreateEffect(e:GetHandler())
local tc=g:GetFirst() e1:SetType(EFFECT_TYPE_FIELD)
while tc do e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
local e1=Effect.CreateEffect(e:GetHandler()) e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetTarget(aux.TargetBoolFunction(Card.IsSetCard,0x9b))
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e1:SetValue(1)
e1:SetValue(1) e1:SetReset(RESET_PHASE+RESET_END)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+RESET_END) Duel.RegisterEffect(e1,tp)
tc:RegisterEffect(e1) local e2=e1:Clone()
local e2=e1:Clone() e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) Duel.RegisterEffect(e2,tp)
tc:RegisterEffect(e2)
tc=g:GetNext()
end
end end
...@@ -29,17 +29,17 @@ function c44481227.initial_effect(c) ...@@ -29,17 +29,17 @@ function c44481227.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c44481227.condition(e,tp,eg,ep,ev,re,r,rp) function c44481227.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsAbleToEnterBP() and Duel.GetCurrentPhase()==PHASE_MAIN1 return Duel.IsAbleToEnterBP()
end end
function c44481227.filter(c) function c44481227.filter(c)
return c:IsFaceup() and not c:IsHasEffect(EFFECT_PIERCE) return c:IsFaceup() and not c:IsHasEffect(EFFECT_PIERCE)
end end
function c44481227.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c44481227.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c44481227.filter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c44481227.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(Card.IsFaceup,tp,LOCATION_MZONE,0,1,nil) if chk==0 then return Duel.IsExistingTarget(c44481227.filter,tp,LOCATION_MZONE,0,1,nil)
and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,0,LOCATION_MZONE,1,nil) end and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,0,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_MZONE,0,1,1,nil) Duel.SelectTarget(tp,c44481227.filter,tp,LOCATION_MZONE,0,1,1,nil)
end end
function c44481227.operation(e,tp,eg,ep,ev,re,r,rp) function c44481227.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
......
...@@ -46,6 +46,13 @@ function c4807253.spop(e,tp,eg,ep,ev,re,r,rp) ...@@ -46,6 +46,13 @@ function c4807253.spop(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(c4807253.damval) e1:SetValue(c4807253.damval)
e1:SetReset(RESET_CHAIN) e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetReset(RESET_EVENT+0x47e0000)
e2:SetValue(LOCATION_REMOVED)
c:RegisterEffect(e2,true)
end end
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
......
...@@ -55,10 +55,9 @@ function c66574418.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -55,10 +55,9 @@ function c66574418.tdtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end end
function c66574418.tdop(e,tp,eg,ep,ev,re,r,rp) function c66574418.tdop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then local c=e:GetHandler()
Duel.SendtoDeck(tc,nil,2,REASON_EFFECT) if tc:IsRelateToEffect(e) and Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)~=0
end and tc:IsLocation(LOCATION_DECK) and c:IsRelateToEffect(e) then
if e:GetHandler():IsRelateToEffect(e) then Duel.SendtoHand(c,nil,REASON_EFFECT)
Duel.SendtoHand(e:GetHandler(),nil,REASON_EFFECT)
end end
end end
...@@ -23,12 +23,14 @@ function c66752837.tricon(e,c) ...@@ -23,12 +23,14 @@ function c66752837.tricon(e,c)
return c:IsRace(RACE_DRAGON) return c:IsRace(RACE_DRAGON)
end end
function c66752837.cfilter(c) function c66752837.cfilter(c)
return c:GetPreviousRaceOnField()==RACE_DRAGON and c:IsPreviousPosition(POS_FACEUP) and c:IsPreviousLocation(LOCATION_MZONE) and c:IsReason(REASON_EFFECT+REASON_BATTLE) and not c:IsCode(66752837) return c:GetPreviousRaceOnField()==RACE_DRAGON and c:IsPreviousPosition(POS_FACEUP)
and c:IsPreviousLocation(LOCATION_MZONE) and c:IsReason(REASON_EFFECT+REASON_BATTLE) and not c:IsCode(66752837)
end end
function c66752837.cfilter2(c) function c66752837.cfilter2(c)
return c66752837.cfilter(c) and c:IsType(TYPE_NORMAL) return c66752837.cfilter(c) and c:IsType(TYPE_NORMAL)
end end
function c66752837.spcon(e,tp,eg,ep,ev,re,r,rp) function c66752837.spcon(e,tp,eg,ep,ev,re,r,rp)
if eg:IsContains(e:GetHandler()) then return false end
if eg:IsExists(c66752837.cfilter2,1,nil) then if eg:IsExists(c66752837.cfilter2,1,nil) then
e:SetLabel(1) e:SetLabel(1)
return true return true
...@@ -46,13 +48,12 @@ function c66752837.thfilter(c) ...@@ -46,13 +48,12 @@ function c66752837.thfilter(c)
end end
function c66752837.spop(e,tp,eg,ep,ev,re,r,rp) function c66752837.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local g=Duel.GetMatchingGroup(c66752837.thfilter,tp,LOCATION_GRAVE,0,nil)
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 and e:GetLabel()==1 if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 and e:GetLabel()==1
and Duel.IsExistingMatchingCard(c66752837.thfilter,tp,LOCATION_GRAVE,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(66752837,0)) then and g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(66752837,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c66752837.thfilter,tp,LOCATION_GRAVE,0,1,1,nil) local sg=g:Select(tp,1,1,nil)
if g:GetCount()>0 then Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.SendtoHand(g,nil,REASON_EFFECT) Duel.ConfirmCards(1-tp,sg)
Duel.ConfirmCards(1-tp,g)
end
end end
end end
...@@ -80,7 +80,7 @@ function c7394770.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -80,7 +80,7 @@ function c7394770.activate(e,tp,eg,ep,ev,re,r,rp)
else else
local mat2=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf) local mat2=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf)
local fop=ce:GetOperation() local fop=ce:GetOperation()
fop(ce,e,tp,tc,mat2,true) fop(ce,e,tp,tc,mat2,nil,true)
end end
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
...@@ -56,9 +56,9 @@ function c7864030.condition2(e,tp,eg,ep,ev,re,r,rp) ...@@ -56,9 +56,9 @@ function c7864030.condition2(e,tp,eg,ep,ev,re,r,rp)
end end
function c7864030.operation2(e,tp,eg,ep,ev,re,r,rp) function c7864030.operation2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) then
local at=Duel.GetAttacker() local at=Duel.GetAttacker()
if at:IsAttackable() and not at:IsImmuneToEffect(e) and not c:IsImmuneToEffect(e) then if at:IsAttackable() and not at:IsImmuneToEffect(e) then
Duel.CalculateDamage(at,c) Duel.CalculateDamage(at,c)
end end
end end
......
...@@ -29,6 +29,7 @@ function c93969023.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -29,6 +29,7 @@ function c93969023.eqtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
and Duel.IsExistingTarget(c93969023.filter,tp,LOCATION_MZONE,0,1,e:GetHandler()) end and Duel.IsExistingTarget(c93969023.filter,tp,LOCATION_MZONE,0,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP)
Duel.SelectTarget(tp,c93969023.filter,tp,LOCATION_MZONE,0,1,1,e:GetHandler()) Duel.SelectTarget(tp,c93969023.filter,tp,LOCATION_MZONE,0,1,1,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0)
end end
function c93969023.eqop(e,tp,eg,ep,ev,re,r,rp) function c93969023.eqop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -12,14 +12,11 @@ function c93983867.initial_effect(c) ...@@ -12,14 +12,11 @@ function c93983867.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
function c93983867.cfilter(c,tp) function c93983867.cfilter(c,tp)
return c:IsReason(REASON_DESTROY) and c:IsPreviousLocation(LOCATION_MZONE) and c:GetPreviousControler()==tp return c:IsSetCard(0xc6) and c:IsReason(REASON_DESTROY) and c:IsPreviousLocation(LOCATION_MZONE) and c:GetPreviousControler()==tp
end end
function c93983867.condition(e,tp,eg,ep,ev,re,r,rp) function c93983867.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c93983867.cfilter,1,nil,tp) return eg:IsExists(c93983867.cfilter,1,nil,tp)
end end
function c93983867.filter(c)
return c:IsControlerCanBeChanged()
end
function c93983867.spfilter(c,e,tp) function c93983867.spfilter(c,e,tp)
return c:IsSetCard(0xc6) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) return c:IsSetCard(0xc6) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
......
...@@ -437,3 +437,4 @@ ...@@ -437,3 +437,4 @@
!counter 0x33 妖仙指示物 !counter 0x33 妖仙指示物
!counter 0x34 指示物(BOX !counter 0x34 指示物(BOX
!counter 0x35 音响指示物 !counter 0x35 音响指示物
!counter 0x3036 娱乐法师指示物
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