Commit 4687e6fd authored by tsubaki's avatar tsubaki

1.999zfb更新

parent 435a6f6c
No preview for this file type
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
!counter 0x28d 命莲指示物 !counter 0x28d 命莲指示物
!counter 0x208 阳光指示物 !counter 0x208 阳光指示物
!counter 0x254c 虚幻指示物 !counter 0x254c 虚幻指示物
!counter 0x500d 结晶指示物
!counter 0x373 粲辉指示物 !counter 0x373 粲辉指示物
!counter 0x1700 灵力指示物 !counter 0x1700 灵力指示物
...@@ -123,6 +124,7 @@ ...@@ -123,6 +124,7 @@
!setname 0x240 青娥 !setname 0x240 青娥
!setname 0x242 宫古芳香 !setname 0x242 宫古芳香
!setname 0x246 仙符 !setname 0x246 仙符
!setname 0x249 天理法则
!setname 0x250 原神 !setname 0x250 原神
!setname 0x251 星莲 !setname 0x251 星莲
!setname 0x251a 一轮 !setname 0x251a 一轮
......
No preview for this file type
...@@ -45,26 +45,14 @@ function cCardno.filter2(c,e,tp) ...@@ -45,26 +45,14 @@ function cCardno.filter2(c,e,tp)
return c:IsAbleToHand() and c:IsSetCard(0x456) and (c:IsType(TYPE_SPELL) or c:IsType(TYPE_TRAP)) return c:IsAbleToHand() and c:IsSetCard(0x456) and (c:IsType(TYPE_SPELL) or c:IsType(TYPE_TRAP))
end end
function cCardno.op(e,tp,eg,ep,ev,re,r,rp) function cCardno.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local g=Duel.GetDecktopGroup(1-tp,1)
if Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)<=0 then return end local tc
local g=Duel.GetFieldGroup(tp,0,LOCATION_HAND):RandomSelect(tp,1) if g:GetCount()>0 then
Duel.ConfirmCards(tp,g) tc=g:GetFirst()
--该 效 果 删 除 Duel.ConfirmDecktop(1-tp,1)
if false then Duel.Remove(g,POS_FACEDOWN,REASON_EFFECT)
Duel.Remove(g,POS_FACEDOWN,REASON_EFFECT)
g:KeepAlive()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabelObject(g)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetOperation(cCardno.retop)
Duel.RegisterEffect(e1,tp)
end end
Duel.BreakEffect() Duel.BreakEffect()
local tc=g:GetFirst()
if tc:IsType(TYPE_MONSTER) and Duel.IsExistingMatchingCard(cCardno.filter,tp,LOCATION_DECK,0,1,nil,e,tp) then if tc:IsType(TYPE_MONSTER) and Duel.IsExistingMatchingCard(cCardno.filter,tp,LOCATION_DECK,0,1,nil,e,tp) then
local ssg=Duel.SelectMatchingCard(tp,cCardno.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp) local ssg=Duel.SelectMatchingCard(tp,cCardno.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
Duel.SendtoHand(ssg,tp,REASON_EFFECT) Duel.SendtoHand(ssg,tp,REASON_EFFECT)
......
...@@ -61,12 +61,13 @@ function cCardno.drtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -61,12 +61,13 @@ function cCardno.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chkc then return chkc:IsLocation(LOCATION_REMOVED) and chkc:IsControler(tp) and cCardno.filter(chkc) end if chkc then return chkc:IsLocation(LOCATION_REMOVED) and chkc:IsControler(tp) and cCardno.filter(chkc) end
if chk==0 then return Duel.IsExistingMatchingCard(cCardno.filter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(cCardno.filter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
Duel.SelectTarget(tp,cCardno.filter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil) Duel.SelectTarget(tp,cCardno.filter,tp,LOCATION_GRAVE+LOCATION_REMOVED,0,1,3,nil)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,0,0)
end end
function cCardno.drop(e,tp,eg,ep,ev,re,r,rp) function cCardno.drop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget() local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
if tc:IsRelateToEffect(e) then local tg=g:Filter(Card.IsRelateToEffect,nil,e)
if tg:GetCount()>0 then
Duel.ConfirmCards(1-tp,tc) Duel.ConfirmCards(1-tp,tc)
Duel.SendtoDeck(tc,nil,2,REASON_EFFECT) Duel.SendtoDeck(tc,nil,2,REASON_EFFECT)
end end
......
...@@ -30,7 +30,15 @@ function cCardno.watop(e,tp,eg,ep,ev,re,r,rp) ...@@ -30,7 +30,15 @@ function cCardno.watop(e,tp,eg,ep,ev,re,r,rp)
if t==1 then t=1-tp else t=tp end if t==1 then t=1-tp else t=tp end
local g=Duel.GetDecktopGroup(t,5) local g=Duel.GetDecktopGroup(t,5)
Duel.ConfirmCards(tp,g) Duel.ConfirmCards(tp,g)
if Duel.SelectYesNo(tp,aux.Stringid(Cardno,4)) then Duel.ShuffleDeck(t) end if Duel.SelectYesNo(tp,aux.Stringid(Cardno,4)) then
Duel.ShuffleDeck(t)
local g=Duel.SelectMatchingCard(tp,Card.IsSetCard,tp,LOCATION_DECK,0,1,1,nil,0x456)
local tc=g:GetFirst()
if tc then
Duel.MoveSequence(tc,0)
Duel.ConfirmDecktop(tp,1)
end
end
end end
--search --search
function cCardno.activate(e,tp,eg,ep,ev,re,r,rp) function cCardno.activate(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -21,11 +21,11 @@ function cCardno.initial_effect(c) ...@@ -21,11 +21,11 @@ function cCardno.initial_effect(c)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(Cardno,1)) e3:SetDescription(aux.Stringid(Cardno,1))
e3:SetCategory(CATEGORY_TODECK) e3:SetCategory(CATEGORY_TODECK)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_TO_GRAVE) e3:SetCode(EVENT_TO_GRAVE)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e3:SetCost(cCardno.cost) --e3:SetCost(cCardno.cost)
e3:SetTarget(cCardno.tdtg) --e3:SetTarget(cCardno.tdtg)
e3:SetOperation(cCardno.tdop) e3:SetOperation(cCardno.tdop)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
...@@ -38,10 +38,12 @@ function cCardno.tdtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -38,10 +38,12 @@ function cCardno.tdtg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,0,tp,LOCATION_GRAVE) Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,0,tp,LOCATION_GRAVE)
end end
function cCardno.tdop(e,tp,eg,ep,ev,re,r,rp) function cCardno.tdop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK) if Duel.IsExistingMatchingCard(cCardno.tdfilter,tp,LOCATION_GRAVE,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(Cardno,1)) then
local g=Duel.SelectMatchingCard(tp,cCardno.tdfilter,tp,LOCATION_GRAVE,0,1,2,nil) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
if g:GetCount()>0 then local g=Duel.SelectMatchingCard(tp,cCardno.tdfilter,tp,LOCATION_GRAVE,0,1,2,nil)
Duel.SendtoDeck(g,nil,2,REASON_EFFECT) if g:GetCount()>0 then
Duel.SendtoDeck(g,nil,2,REASON_EFFECT)
end
end end
end end
--search --search
......
...@@ -61,7 +61,7 @@ function cCardno.ckop(e,tp,eg,ep,ev,re,r,rp) ...@@ -61,7 +61,7 @@ function cCardno.ckop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
c:ResetFlagEffect(Cardno) c:ResetFlagEffect(Cardno)
local nowg=c:GetOverlayGroup() local nowg=c:GetOverlayGroup()
c:RegisterFlagEffect(Cardno,0,0,0,nowg:GetCount()) c:RegisterFlagEffect(Cardno,0,0,0,nowg:FilterCount(Card.IsSetCard,nil,0x298))
end end
--SpecialSummon --SpecialSummon
function cCardno.spfilter2(c,e,tp) function cCardno.spfilter2(c,e,tp)
...@@ -113,6 +113,7 @@ function cCardno.sscon(e,tp,eg,ep,ev,re,r,rp) ...@@ -113,6 +113,7 @@ function cCardno.sscon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_XYZ return e:GetHandler():GetSummonType()==SUMMON_TYPE_XYZ
end end
function cCardno.sstg(e,tp,eg,ep,ev,re,r,rp,chk) function cCardno.sstg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.Hint(21,0,aux.Stringid(Cardno,6))
if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_SZONE)>0 end if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_SZONE)>0 end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,Duel.GetFieldGroup(tp,0,LOCATION_SZONE),Duel.GetFieldGroupCount(tp,0,LOCATION_SZONE),1-tp,LOCATION_SZONE) Duel.SetOperationInfo(0,CATEGORY_DESTROY,Duel.GetFieldGroup(tp,0,LOCATION_SZONE),Duel.GetFieldGroupCount(tp,0,LOCATION_SZONE),1-tp,LOCATION_SZONE)
end end
......
...@@ -49,7 +49,7 @@ function c74563007.filter(c) ...@@ -49,7 +49,7 @@ function c74563007.filter(c)
end end
function c74563007.damtg(e,tp,eg,ep,ev,re,r,rp,chk) function c74563007.damtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_SZONE)>0
and Duel.IsExistingMatchingCard(c74563007.filter,tp,LOCATION_DECK+LOCATION_REMOVED+LOCATION_GRAVE,0,1,nil) end and Duel.IsExistingMatchingCard(c74563007.filter,tp,LOCATION_DECK+LOCATION_REMOVED+LOCATION_GRAVE,0,1,nil) and Duel.GetTurnPlayer()==tp end
end end
function c74563007.damop(e,tp,eg,ep,ev,re,r,rp) function c74563007.damop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
......
...@@ -26,20 +26,37 @@ function c74563008.initial_effect(c) ...@@ -26,20 +26,37 @@ function c74563008.initial_effect(c)
c:RegisterEffect(e4) c:RegisterEffect(e4)
end end
function c74563008.filter0(c) function c74563008.filter0(c)
return c:IsCanBeFusionMaterial() return c:IsCanBeFusionMaterial() and c:IsType(TYPE_MONSTER)
end end
function c74563008.filter1(c,e) function c74563008.filter1(c,e)
return c:IsCanBeFusionMaterial() and not c:IsImmuneToEffect(e) return c:IsCanBeFusionMaterial() and c:IsType(TYPE_MONSTER) and not c:IsImmuneToEffect(e)
end end
function c74563008.filter2(c,e,tp,m,f,chkf) function c74563008.filter2(c,e,tp,m,f,chkf)
return (not f or f(c)) return (not f or f(c))
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
end end
function c74563008.spfilter1(c,e,tp,m,f,chkf)
return c:IsType(TYPE_FUSION) and (not f or f(c))
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
end
function c74563008.mfilter0(c,e)
return c:IsType(TYPE_SPELL+TYPE_MONSTER) and c:IsCanBeFusionMaterial() and not c:IsImmuneToEffect(e)
end
function c74563008.mfilter2(c,e)
return c:IsType(TYPE_SPELL+TYPE_MONSTER) and c:IsCanBeFusionMaterial()and not c:IsImmuneToEffect(e)
end
function c74563008.spfilter2(c,e,tp,m,f,chkf)
return c:IsType(TYPE_FUSION) and c:IsSetCard(0x372) and (not f or f(c)) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
end
function c74563008.target(e,tp,eg,ep,ev,re,r,rp,chk) function c74563008.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then if chk==0 then
local chkf=tp local chkf=tp
local mg1=Duel.GetMatchingGroup(c74563008.filter0,tp,LOCATION_ONFIELD+LOCATION_HAND,0,nil) local mg1=Duel.GetMatchingGroup(c74563008.filter0,tp,LOCATION_ONFIELD+LOCATION_HAND,0,nil)
local res=Duel.IsExistingMatchingCard(c74563008.filter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf) local res=Duel.IsExistingMatchingCard(c74563008.spfilter1,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg1,nil,chkf)
if res then return true end
local mg2=Duel.GetMatchingGroup(c74563008.mfilter0,tp,LOCATION_ONFIELD+LOCATION_HAND,0,nil,e)
mg2:Merge(mg1)
res=Duel.IsExistingMatchingCard(c74563008.spfilter2,tp,LOCATION_EXTRA,0,1,nil,e,tp,mg2,nil,chkf)
if not res then if not res then
local ce=Duel.GetChainMaterial(tp) local ce=Duel.GetChainMaterial(tp)
if ce~=nil then if ce~=nil then
...@@ -57,31 +74,41 @@ function c74563008.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -57,31 +74,41 @@ function c74563008.activate(e,tp,eg,ep,ev,re,r,rp)
local chkf=tp local chkf=tp
local mg1=Duel.GetMatchingGroup(c74563008.filter1,tp,LOCATION_ONFIELD+LOCATION_HAND,0,nil,e) local mg1=Duel.GetMatchingGroup(c74563008.filter1,tp,LOCATION_ONFIELD+LOCATION_HAND,0,nil,e)
local sg1=Duel.GetMatchingGroup(c74563008.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf) local sg1=Duel.GetMatchingGroup(c74563008.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg1,nil,chkf)
local mg2=Duel.GetMatchingGroup(c74563008.mfilter2,tp,LOCATION_ONFIELD+LOCATION_HAND,0,nil,e)
mg2:Merge(mg1)
local sg2=Duel.GetMatchingGroup(c74563008.spfilter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg2,nil,chkf)
sg1:Merge(sg2)
local mg3=nil local mg3=nil
local sg2=nil local sg3=nil
local ce=Duel.GetChainMaterial(tp) local ce=Duel.GetChainMaterial(tp)
if ce~=nil then if ce~=nil then
local fgroup=ce:GetTarget() local fgroup=ce:GetTarget()
mg3=fgroup(ce,e,tp) mg3=fgroup(ce,e,tp)
local mf=ce:GetValue() local mf=ce:GetValue()
sg2=Duel.GetMatchingGroup(c74563008.filter2,tp,LOCATION_EXTRA,0,nil,e,tp,mg3,mf,chkf) sg3=Duel.GetMatchingGroup(c74563008.spfilter1,tp,LOCATION_EXTRA,0,nil,e,tp,mg3,mf,chkf)
end end
if sg1:GetCount()>0 or (sg2~=nil and sg2:GetCount()>0) then if sg1:GetCount()>0 or (sg3~=nil and sg3:GetCount()>0) then
local sg=sg1:Clone() local sg=sg1:Clone()
if sg2 then sg:Merge(sg2) end if sg3 then sg:Merge(sg3) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local tg=sg:Select(tp,1,1,nil) local tg=sg:Select(tp,1,1,nil)
local tc=tg:GetFirst() local tc=tg:GetFirst()
if sg1:IsContains(tc) and (sg2==nil or not sg2:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then if sg1:IsContains(tc) and (sg3==nil or not sg3:IsContains(tc) or not Duel.SelectYesNo(tp,ce:GetDescription())) then
local mat1=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf) if tc:IsSetCard(0x372) then
tc:SetMaterial(mat1) local mat1=Duel.SelectFusionMaterial(tp,tc,mg2,nil,chkf)
Duel.SendtoGrave(mat1,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION) tc:SetMaterial(mat1)
Duel.SendtoGrave(mat1,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
else
local mat2=Duel.SelectFusionMaterial(tp,tc,mg1,nil,chkf)
tc:SetMaterial(mat2)
Duel.SendtoGrave(mat2,REASON_EFFECT+REASON_MATERIAL+REASON_FUSION)
end
Duel.BreakEffect() Duel.BreakEffect()
Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP) Duel.SpecialSummon(tc,SUMMON_TYPE_FUSION,tp,tp,false,false,POS_FACEUP)
else else
local mat2=Duel.SelectFusionMaterial(tp,tc,mg3,nil,chkf) local mat=Duel.SelectFusionMaterial(tp,tc,mg3,nil,chkf)
local fop=ce:GetOperation() local fop=ce:GetOperation()
fop(ce,e,tp,tc,mat2) fop(ce,e,tp,tc,mat)
end end
tc:CompleteProcedure() tc:CompleteProcedure()
end end
......
...@@ -8,12 +8,6 @@ function c74563022.initial_effect(c) ...@@ -8,12 +8,6 @@ function c74563022.initial_effect(c)
e1:SetTarget(c74563022.target) e1:SetTarget(c74563022.target)
e1:SetOperation(c74563022.activate) e1:SetOperation(c74563022.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
local e12=e1:Clone()
e12:SetType(EFFECT_TYPE_IGNITION)
e12:SetRange(LOCATION_GRAVE)
e12:SetCondition(aux.exccon)
e12:SetCost(aux.bfgcost)
c:RegisterEffect(e12)
end end
c74563022.DescSetName=0x258 c74563022.DescSetName=0x258
function c74563022.filter1(c,e) function c74563022.filter1(c,e)
...@@ -78,4 +72,4 @@ function c74563022.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -78,4 +72,4 @@ function c74563022.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.DisableShuffleCheck() Duel.DisableShuffleCheck()
Duel.SendtoGrave(tf,REASON_EFFECT+REASON_REVEAL) Duel.SendtoGrave(tf,REASON_EFFECT+REASON_REVEAL)
end end
end end
\ No newline at end of file
...@@ -22,6 +22,7 @@ function c74563024.initial_effect(c) ...@@ -22,6 +22,7 @@ function c74563024.initial_effect(c)
e3:SetType(EFFECT_TYPE_QUICK_O) e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN) e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_REMOVED) e3:SetRange(LOCATION_REMOVED)
e3:SetCountLimit(1,74563024)
e3:SetCost(c74563024.limcost) e3:SetCost(c74563024.limcost)
e3:SetTarget(c74563024.tktg) e3:SetTarget(c74563024.tktg)
e3:SetOperation(c74563024.tkop) e3:SetOperation(c74563024.tkop)
...@@ -143,7 +144,6 @@ function c74563024.SetMaterial(c,g) ...@@ -143,7 +144,6 @@ function c74563024.SetMaterial(c,g)
g:Sub(rg1) g:Sub(rg1)
Duel.Remove(rg1,POS_FACEUP,REASON_FUSION+REASON_MATERIAL+REASON_EFFECT) Duel.Remove(rg1,POS_FACEUP,REASON_FUSION+REASON_MATERIAL+REASON_EFFECT)
end end
Duel.SendtoGrave(g,REASON_FUSION+REASON_MATERIAL+REASON_EFFECT)
end end
function c74563024.rfilter(c,l) function c74563024.rfilter(c,l)
return c:IsLocation(LOCATION_GRAVE) and c:IsCode(74563024) return c:IsLocation(LOCATION_GRAVE) and c:IsCode(74563024)
......
...@@ -22,32 +22,11 @@ function c74563031.initial_effect(c) ...@@ -22,32 +22,11 @@ function c74563031.initial_effect(c)
e12:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) e12:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e12:SetValue(1) e12:SetValue(1)
c:RegisterEffect(e12) c:RegisterEffect(e12)
--avoid damage --atklimit
local e4=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e2:SetCode(EFFECT_CANNOT_ATTACK)
e4:SetCode(EFFECT_CHANGE_DAMAGE) c:RegisterEffect(e2)
e4:SetRange(LOCATION_MZONE)
e4:SetTargetRange(1,0)
e4:SetValue(c74563031.damval)
c:RegisterEffect(e4)
local e5=e4:Clone()
e5:SetCode(EFFECT_NO_EFFECT_DAMAGE)
c:RegisterEffect(e5)
--half atk
local e41=Effect.CreateEffect(c)
e41:SetType(EFFECT_TYPE_FIELD)
e41:SetCode(EFFECT_SET_ATTACK_FINAL)
e41:SetRange(LOCATION_MZONE)
e41:SetProperty(EFFECT_FLAG_DELAY)
e41:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e41:SetTarget(c74563031.atktg)
e41:SetValue(c74563031.atkval)
c:RegisterEffect(e41)
local e51=e4:Clone()
e51:SetCode(EFFECT_SET_DEFENSE_FINAL)
e51:SetValue(c74563031.defval)
c:RegisterEffect(e51)
end end
function c74563031.efilter(e,te) function c74563031.efilter(e,te)
return te:GetOwner()~=e:GetOwner() return te:GetOwner()~=e:GetOwner()
...@@ -56,12 +35,4 @@ function c74563031.damval(e,re,val,r,rp,rc) ...@@ -56,12 +35,4 @@ function c74563031.damval(e,re,val,r,rp,rc)
if bit.band(r,REASON_EFFECT)~=0 then return 0 end if bit.band(r,REASON_EFFECT)~=0 then return 0 end
return val return val
end end
function c74563031.atktg(e,c)
return c~=e:GetHandler()
end
function c74563031.atkval(e,c)
return math.ceil(c:GetAttack()/2)
end
function c74563031.defval(e,c)
return math.ceil(c:GetDefense()/2)
end
\ No newline at end of file
...@@ -27,7 +27,7 @@ function l.initial_effect(c) ...@@ -27,7 +27,7 @@ function l.initial_effect(c)
end end
function l.conditionfilter(c,tp) function l.conditionfilter(c,tp)
return c:GetSummonPlayer()==1-tp and c:IsPreviousLocation(LOCATION_HAND) and not (c:IsSetCard(0x815)or c:IsSetCard(0x814)) return c:GetSummonPlayer()==1-tp and c:IsPreviousLocation(LOCATION_HAND)
end end
function l.target2filter(c) function l.target2filter(c)
......
...@@ -204,7 +204,7 @@ function c86379658.rmtop1(e,tp,eg,ep,ev,re,r,rp) ...@@ -204,7 +204,7 @@ function c86379658.rmtop1(e,tp,eg,ep,ev,re,r,rp)
end end
elseif rc:IsType(TYPE_PENDULUM) and rc:IsPreviousLocation(LOCATION_PZONE) then elseif rc:IsType(TYPE_PENDULUM) and rc:IsPreviousLocation(LOCATION_PZONE) then
local pos=rc:GetPreviousPosition() local pos=rc:GetPreviousPosition()
if Duel.GetFieldCard(tp,LOCATION_PZONE,0) and Duel.GetFieldCard(tp,LOCATION_PZONE,1) then if Duel.GetFieldCard(cp,LOCATION_PZONE,0) and Duel.GetFieldCard(cp,LOCATION_PZONE,1) then
Duel.SendtoGrave(rc,REASON_RULE) Duel.SendtoGrave(rc,REASON_RULE)
else else
Duel.MoveToField(rc,cp,cp,LOCATION_PZONE,pos,true) Duel.MoveToField(rc,cp,cp,LOCATION_PZONE,pos,true)
......
...@@ -36,7 +36,7 @@ function c86379867.spfilter(c,e,tp) ...@@ -36,7 +36,7 @@ function c86379867.spfilter(c,e,tp)
else else
hasRoom=Duel.GetLocationCount(tp,LOCATION_MZONE)>0 hasRoom=Duel.GetLocationCount(tp,LOCATION_MZONE)>0
end end
return c:IsSetCard(0x190) and c:IsCanBeSpecialSummoned(e,0,tp,true,false) and hasRoom and c:IsType(TYPE_MONSTER) return c:IsSetCard(0x190) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and hasRoom and c:IsType(TYPE_MONSTER)
end end
function c86379867.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c86379867.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(c86379867.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE+LOCATION_EXTRA,0,1,nil,e,tp) end if chk==0 then return Duel.IsExistingMatchingCard(c86379867.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE+LOCATION_EXTRA,0,1,nil,e,tp) end
...@@ -54,7 +54,7 @@ function c86379867.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -54,7 +54,7 @@ function c86379867.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c86379867.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE+LOCATION_EXTRA,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,c86379867.spfilter,tp,LOCATION_DECK+LOCATION_GRAVE+LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst() local tc=g:GetFirst()
if tc and Duel.SpecialSummon(tc,0,tp,tp,true,false,POS_FACEUP)>0 then if tc and Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)>0 then
Duel.SendtoGrave(tc,REASON_EFFECT) Duel.SendtoGrave(tc,REASON_EFFECT)
end end
end end
......
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