Commit a90b10f7 authored by mercury233's avatar mercury233

fix

parent d0df8ce7
...@@ -7,6 +7,7 @@ function c100248002.initial_effect(c) ...@@ -7,6 +7,7 @@ function c100248002.initial_effect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCountLimit(1,100248002+EFFECT_COUNT_CODE_OATH) e1:SetCountLimit(1,100248002+EFFECT_COUNT_CODE_OATH)
e1:SetCondition(c100248002.condition) e1:SetCondition(c100248002.condition)
e1:SetTarget(c100248002.target) e1:SetTarget(c100248002.target)
...@@ -33,6 +34,7 @@ function c100248002.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -33,6 +34,7 @@ function c100248002.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_ATTACK) Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_ATTACK)
tc:RegisterFlagEffect(100248002,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,0) tc:RegisterFlagEffect(100248002,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,0)
end end
if not e:IsHasType(EFFECT_TYPE_ACTIVATE) then return end
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_ACTIVATE) e1:SetCode(EFFECT_CANNOT_ACTIVATE)
......
...@@ -17,16 +17,15 @@ function c100248029.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -17,16 +17,15 @@ function c100248029.condition(e,tp,eg,ep,ev,re,r,rp)
end end
function c100248029.filter(c,e,tp) function c100248029.filter(c,e,tp)
return (c:IsSetCard(0x27) or (c:IsLevelBelow(4) and c:IsType(TYPE_TUNER))) return (c:IsSetCard(0x27) or (c:IsLevelBelow(4) and c:IsType(TYPE_TUNER)))
and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c100248029.target(e,tp,eg,ep,ev,re,r,rp,chk) function c100248029.target(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 true end
and Duel.IsExistingMatchingCard(c100248029.filter,tp,LOCATION_DECK+LOCATION_HAND,0,1,nil,e,tp) end Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,LOCATION_DECK+LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_HAND)
end end
function c100248029.activate(e,tp,eg,ep,ev,re,r,rp) function c100248029.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c100248029.filter,tp,LOCATION_DECK+LOCATION_HAND,0,nil,e,tp) local g=Duel.GetMatchingGroup(c100248029.filter,tp,LOCATION_DECK+LOCATION_HAND,0,nil,e,tp)
if Duel.NegateAttack()~=0 and #g>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 if Duel.NegateAttack() and #g>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.SelectYesNo(tp,aux.Stringid(100248029,0)) then and Duel.SelectYesNo(tp,aux.Stringid(100248029,0)) then
Duel.BreakEffect() Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
......
...@@ -26,6 +26,7 @@ function c100248030.initial_effect(c) ...@@ -26,6 +26,7 @@ function c100248030.initial_effect(c)
e2:SetOperation(c100248030.operation) e2:SetOperation(c100248030.operation)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
c100248030.xyz_number=26
function c100248030.dacost(e,tp,eg,ep,ev,re,r,rp,chk) function c100248030.dacost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
......
...@@ -39,9 +39,11 @@ function c100248031.initial_effect(c) ...@@ -39,9 +39,11 @@ function c100248031.initial_effect(c)
e3:SetOperation(c100248031.operation3) e3:SetOperation(c100248031.operation3)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
c100248030.xyz_number=60
function c100248031.cost(e,tp,eg,ep,ev,re,r,rp,chk) function c100248031.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_COST) end if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,2,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST)
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
end end
function c100248031.target1(e,tp,eg,ep,ev,re,r,rp,chk) function c100248031.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end
......
...@@ -33,10 +33,12 @@ function c100248032.initial_effect(c) ...@@ -33,10 +33,12 @@ function c100248032.initial_effect(c)
e4:SetRange(LOCATION_MZONE) e4:SetRange(LOCATION_MZONE)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET) e4:SetProperty(EFFECT_FLAG_CARD_TARGET)
e4:SetCountLimit(1,100248032) e4:SetCountLimit(1,100248032)
e4:SetHintTiming(0,TIMING_END_PHASE)
e4:SetTarget(c100248032.xyztg) e4:SetTarget(c100248032.xyztg)
e4:SetOperation(c100248032.xyzop) e4:SetOperation(c100248032.xyzop)
c:RegisterEffect(e4) c:RegisterEffect(e4)
end end
c100248032.xyz_number=76
function c100248032.effilter(c) function c100248032.effilter(c)
return c:IsType(TYPE_MONSTER) return c:IsType(TYPE_MONSTER)
end end
...@@ -53,7 +55,7 @@ function c100248032.attval(e,c) ...@@ -53,7 +55,7 @@ function c100248032.attval(e,c)
return att return att
end end
function c100248032.indval1(e,c) function c100248032.indval1(e,c)
return not c:GetBattleTarget():GetAttribute()~=c:GetAttribute() return c:GetBattleTarget():GetAttribute()&c:GetAttribute()~=0
end end
function c100248032.indval2(e,te,rp) function c100248032.indval2(e,te,rp)
return rp==1-e:GetHandlerPlayer() and te:IsActivated() and te:GetHandler():GetAttribute()&e:GetHandler():GetAttribute()~=0 return rp==1-e:GetHandlerPlayer() and te:IsActivated() and te:GetHandler():GetAttribute()&e:GetHandler():GetAttribute()~=0
...@@ -62,16 +64,16 @@ function c100248032.xyzfilter(c) ...@@ -62,16 +64,16 @@ function c100248032.xyzfilter(c)
return c:IsType(TYPE_MONSTER) return c:IsType(TYPE_MONSTER)
end end
function c100248032.xyztg(e,tp,eg,ep,ev,re,r,rp,chk) function c100248032.xyztg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingTarget(c100248032.xyzfilter,tp,0,LOCATION_GRAVE,1,nil) and e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_EFFECT) end if chk==0 then return Duel.IsExistingTarget(c100248032.xyzfilter,tp,0,LOCATION_GRAVE,1,nil)
and e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_EFFECT) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local g=Duel.SelectTarget(tp,c100248032.xyzfilter,tp,0,LOCATION_GRAVE,1,1,nil) local g=Duel.SelectTarget(tp,c100248032.xyzfilter,tp,0,LOCATION_GRAVE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,1,0,0)
end end
function c100248032.xyzop(e,tp,eg,ep,ev,re,r,rp) function c100248032.xyzop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and c:IsRelateToEffect(e) then if c:IsRelateToEffect(e) and c:RemoveOverlayCard(tp,1,1,REASON_EFFECT) and tc:IsRelateToEffect(e) then
c:RemoveOverlayCard(tp,1,1,REASON_EFFECT)
Duel.Overlay(c,Group.FromCards(tc)) Duel.Overlay(c,Group.FromCards(tc))
end end
end end
...@@ -72,14 +72,14 @@ function c100248035.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -72,14 +72,14 @@ function c100248035.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(TYPE_TUNER) e1:SetValue(TYPE_TUNER)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
end end
local e1=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e2:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0) e2:SetTargetRange(1,0)
e1:SetTarget(c100248035.splimit) e2:SetTarget(c100248035.splimit)
e1:SetReset(RESET_PHASE+PHASE_END) e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e2,tp)
end end
function c100248035.splimit(e,c) function c100248035.splimit(e,c)
return not c:IsRace(RACE_INSECT) and c:IsLocation(LOCATION_EXTRA) return not c:IsRace(RACE_INSECT) and c:IsLocation(LOCATION_EXTRA)
......
...@@ -11,8 +11,8 @@ function c100248040.initial_effect(c) ...@@ -11,8 +11,8 @@ function c100248040.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O) e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_PRE_DAMAGE_CALCULATE) e1:SetCode(EVENT_PRE_DAMAGE_CALCULATE)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(c100248040.atkcon) e1:SetCondition(c100248040.atkcon)
e1:SetCost(c100248040.atkcost)
e1:SetOperation(c100248040.atkop) e1:SetOperation(c100248040.atkop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--search --search
...@@ -28,7 +28,7 @@ end ...@@ -28,7 +28,7 @@ end
function c100248040.atkcon(e,tp,eg,ep,ev,re,r,rp) function c100248040.atkcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=c:GetBattleTarget() local tc=c:GetBattleTarget()
return c==Duel.GetAttacker() and tc and tc:IsFaceup() and tc:GetAttack()>c:GetAttack() return c==Duel.GetAttacker() and tc and tc:IsFaceup() and tc:IsControler(1-tp) and tc:GetAttack()>c:GetAttack()
end end
function c100248040.atkcost(e,tp,eg,ep,ev,re,r,rp,chk) function c100248040.atkcost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -25,7 +25,7 @@ function c100248044.initial_effect(c) ...@@ -25,7 +25,7 @@ function c100248044.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c100248044.filter(c,e,tp) function c100248044.filter(c,e,tp)
return c:IsSetCard(0x22c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP) return c:IsSetCard(0x22c) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c100248044.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100248044.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c100248044.filter(chkc,e,tp) end if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c100248044.filter(chkc,e,tp) end
......
...@@ -19,7 +19,7 @@ function c100250011.condition(e,tp,eg,ep,ev,re,r,rp) ...@@ -19,7 +19,7 @@ function c100250011.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetAttacker():IsControler(1-tp) and Duel.GetAttackTarget()==nil and atk>=8000 return Duel.GetAttacker():IsControler(1-tp) and Duel.GetAttackTarget()==nil and atk>=8000
end end
function c100250011.spfilter(c,e,tp) function c100250011.spfilter(c,e,tp)
return c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK) return c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK)
end end
function c100250011.spfilter1(c,e,tp,chk) function c100250011.spfilter1(c,e,tp,chk)
return c100250011.spfilter(c,e,tp) return c100250011.spfilter(c,e,tp)
......
...@@ -37,6 +37,7 @@ function c100336001.destg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -37,6 +37,7 @@ function c100336001.destg(e,tp,eg,ep,ev,re,r,rp,chk)
end end
function c100336001.desop(e,tp,eg,ep,ev,re,r,rp) function c100336001.desop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) and Duel.Destroy(e:GetHandler(),REASON_EFFECT)>0 then if e:GetHandler():IsRelateToEffect(e) and Duel.Destroy(e:GetHandler(),REASON_EFFECT)>0 then
Duel.BreakEffect()
local g=Duel.GetFieldGroup(tp,0,LOCATION_EXTRA) local g=Duel.GetFieldGroup(tp,0,LOCATION_EXTRA)
Duel.ConfirmCards(tp,g) Duel.ConfirmCards(tp,g)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
......
...@@ -33,13 +33,15 @@ function c100422034.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -33,13 +33,15 @@ function c100422034.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST) e:GetHandler():RemoveOverlayCard(tp,2,2,REASON_COST)
end end
function c100422034.filter(c) function c100422034.filter(c)
return c:IsFaceup() and c:IsControlerCanBeChanged() return c:IsControlerCanBeChanged()
end end
function c100422034.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100422034.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c100422034.filter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c100422034.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c100422034.filter,tp,0,LOCATION_MZONE,1,nil) end local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if chk==0 then return ft>0 and Duel.IsExistingTarget(c100422034.filter,tp,0,LOCATION_MZONE,1,nil) end
local ct=math.min(ft,2)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectTarget(tp,c100422034.filter,tp,0,LOCATION_MZONE,1,2,nil) local g=Duel.SelectTarget(tp,c100422034.filter,tp,0,LOCATION_MZONE,1,ct,nil)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,#g,0,0) Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,#g,0,0)
end end
function c100422034.operation(e,tp,eg,ep,ev,re,r,rp) function c100422034.operation(e,tp,eg,ep,ev,re,r,rp)
...@@ -77,8 +79,8 @@ end ...@@ -77,8 +79,8 @@ end
function c100422034.lvfilter(c) function c100422034.lvfilter(c)
return c:IsFaceup() and not c:IsLevel(8) and c:GetLevel()>0 return c:IsFaceup() and not c:IsLevel(8) and c:GetLevel()>0
end end
function c100422034.lvtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c100422034.lvtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c100422034.lvfilter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingMatchingCard(c100422034.lvfilter,tp,LOCATION_MZONE,0,1,e:GetHandler()) end
end end
function c100422034.lvop(e,tp,eg,ep,ev,re,r,rp) function c100422034.lvop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c100422034.lvfilter,tp,LOCATION_MZONE,0,nil) local g=Duel.GetMatchingGroup(c100422034.lvfilter,tp,LOCATION_MZONE,0,nil)
......
...@@ -41,9 +41,9 @@ end ...@@ -41,9 +41,9 @@ end
function c100422045.atkfilter(c) function c100422045.atkfilter(c)
return c:IsFaceup() and c:GetCounter(0x1041)>0 return c:IsFaceup() and c:GetCounter(0x1041)>0
end end
function c100422045.atkval(e,tp,eg,ep,ev,re,r,rp) function c100422045.atkval(e,c)
local g=Duel.GetMatchingGroup(c100422045.atkfilter,tp,LOCATION_MZONE,LOCATION_MZONE,nil) local g=Duel.GetMatchingGroup(c100422045.atkfilter,0,LOCATION_MZONE,LOCATION_MZONE,c)
local atk=g:GetSum(Card.GetAttack) local atk=g:GetSum(Card.GetBaseAttack)
return atk return atk
end end
function c100422045.cfilter(c,tp) function c100422045.cfilter(c,tp)
...@@ -51,7 +51,7 @@ function c100422045.cfilter(c,tp) ...@@ -51,7 +51,7 @@ function c100422045.cfilter(c,tp)
end end
function c100422045.condition(e,tp,eg,ep,ev,re,r,rp) function c100422045.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=ep and eg:IsExists(c100422045.cfilter,1,nil,1-tp) and Duel.GetCurrentChain()==0 return tp~=ep and eg:IsExists(c100422045.cfilter,1,nil,1-tp) and Duel.GetCurrentChain()==0
and e:GetHandler():GetSummonType(SUMMON_TYPE_FUSION) and e:GetHandler():IsSummonType(SUMMON_TYPE_FUSION)
end end
function c100422045.target(e,tp,eg,ep,ev,re,r,rp,chk) function c100422045.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
......
...@@ -26,7 +26,8 @@ function c101010014.initial_effect(c) ...@@ -26,7 +26,8 @@ function c101010014.initial_effect(c)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c101010014.cfilter(c) function c101010014.cfilter(c)
return c:IsRace(RACE_DRAGON) and c:IsAbleToGraveAsCost() and (c:IsLocation(LOCATION_HAND) or c:IsFaceup()) return c:IsRace(RACE_DRAGON) and c:GetOriginalLevel()>0 and c:IsAbleToGraveAsCost()
and (c:IsLocation(LOCATION_HAND) or c:IsFaceup())
end end
function c101010014.filter(c,e,tp) function c101010014.filter(c,e,tp)
local rg=Duel.GetMatchingGroup(c101010014.cfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,nil) local rg=Duel.GetMatchingGroup(c101010014.cfilter,tp,LOCATION_HAND+LOCATION_MZONE,0,nil)
......
...@@ -70,6 +70,11 @@ function c101010035.atkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -70,6 +70,11 @@ function c101010035.atkop(e,tp,eg,ep,ev,re,r,rp)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE) e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE)
c:RegisterEffect(e2) c:RegisterEffect(e2)
Duel.ChainAttack() local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_EXTRA_ATTACK)
e3:SetValue(1)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE)
c:RegisterEffect(e3)
end end
end end
...@@ -14,6 +14,7 @@ function c101010037.initial_effect(c) ...@@ -14,6 +14,7 @@ function c101010037.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_DELAY) e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS) e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c101010037.ctcon) e1:SetCondition(c101010037.ctcon)
e1:SetTarget(c101010037.cttg)
e1:SetOperation(c101010037.ctop) e1:SetOperation(c101010037.ctop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--atk up --atk up
...@@ -40,11 +41,14 @@ function c101010037.initial_effect(c) ...@@ -40,11 +41,14 @@ function c101010037.initial_effect(c)
c:RegisterEffect(e3) c:RegisterEffect(e3)
end end
function c101010037.ctcon(e,tp,eg,ep,ev,re,r,rp) function c101010037.ctcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK) and Duel.IsExistingMatchingCard(c101010037.cfilter,tp,LOCATION_GRAVE,0,1,nil) return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end end
function c101010037.cfilter(c) function c101010037.cfilter(c)
return c:IsRace(RACE_CYBERSE) and c:IsType(TYPE_RITUAL+TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ) return c:IsRace(RACE_CYBERSE) and c:IsType(TYPE_RITUAL+TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ)
end end
function c101010037.cttg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c101010037.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
end
function c101010037.cfilter2(c,type) function c101010037.cfilter2(c,type)
return c:IsRace(RACE_CYBERSE) and c:IsType(type) return c:IsRace(RACE_CYBERSE) and c:IsType(type)
end end
......
...@@ -14,6 +14,7 @@ function c101010047.initial_effect(c) ...@@ -14,6 +14,7 @@ function c101010047.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,101010047) e1:SetCountLimit(1,101010047)
e1:SetHintTiming(TIMING_DAMAGE_STEP)
e1:SetCondition(c101010047.atkcon) e1:SetCondition(c101010047.atkcon)
e1:SetCost(aux.bfgcost) e1:SetCost(aux.bfgcost)
e1:SetTarget(c101010047.atktg) e1:SetTarget(c101010047.atktg)
...@@ -42,31 +43,31 @@ function c101010047.atkfilter(c) ...@@ -42,31 +43,31 @@ function c101010047.atkfilter(c)
end end
function c101010047.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c101010047.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c101010047.atkfilter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c101010047.atkfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c101010047.atkfilter,tp,LOCATION_MZONE,0,1,nil) end if chk==0 then return Duel.IsExistingTarget(c101010047.atkfilter,tp,LOCATION_MZONE,0,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c101010047.atkfilter,tp,LOCATION_MZONE,0,1,1,nil) Duel.SelectTarget(tp,c101010047.atkfilter,tp,LOCATION_MZONE,0,1,1,nil)
end end
function c101010047.atkop(e,tp,eg,ep,ev,re,r,rp) function c101010047.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
local m=_G["c"..tc:GetCode()] local m=_G["c"..tc:GetCode()]
if not m then return end if m and tc:IsFaceup() and tc:IsRelateToEffect(e) then
local no=m.xyz_number local no=m.xyz_number
if tc:IsFaceup() and tc:IsRelateToEffect(e) then local e1=Effect.CreateEffect(c)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL) e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(no*100) e1:SetValue(no*100)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_BATTLE)
tc:RegisterEffect(e1) tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CHANGE_DAMAGE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(0,1)
e2:SetValue(c101010047.val)
e2:SetReset(RESET_PHASE+PHASE_BATTLE)
Duel.RegisterEffect(e2,tp)
end end
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CHANGE_DAMAGE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(0,1)
e2:SetValue(c101010047.val)
e2:SetReset(RESET_PHASE+PHASE_BATTLE)
Duel.RegisterEffect(e2,tp)
end end
function c101010047.val(e,re,dam,r,rp,rc) function c101010047.val(e,re,dam,r,rp,rc)
if bit.band(r,REASON_BATTLE)~=0 then if bit.band(r,REASON_BATTLE)~=0 then
......
...@@ -87,7 +87,7 @@ end ...@@ -87,7 +87,7 @@ end
function c101010050.spop(e,tp,eg,ep,ev,re,r,rp) function c101010050.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end 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,c101010050.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp) local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c101010050.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 then if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_DEFENSE) Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
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