Commit afec87ea authored by mercury233's avatar mercury233

fix

parent 497882fb
......@@ -10,6 +10,7 @@ function c100200158.initial_effect(c)
e1:SetDescription(aux.Stringid(100200158,0))
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCountLimit(1,100200158)
e1:SetCondition(c100200158.con)
e1:SetTarget(c100200158.target)
......
......@@ -7,7 +7,6 @@ function c100236105.initial_effect(c)
e1:SetDescription(aux.Stringid(100236105,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetRange(LOCATION_HAND)
e1:SetCountLimit(1,100236105)
e1:SetCost(c100236105.spcost)
......
......@@ -26,7 +26,7 @@ end
function c100236106.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SpecialSummon(tc,0,tp,tp,true,false,POS_FACEUP) then
if tc:IsRelateToEffect(e) and Duel.SpecialSummonStep(tc,0,tp,tp,true,false,POS_FACEUP) then
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
......
......@@ -27,7 +27,8 @@ function c100236114.initial_effect(c)
c:RegisterEffect(e2)
end
function c100236114.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer()
local a=Duel.GetAttacker()
return a:IsControler(1-tp)
end
function c100236114.filter(c,e,tp)
return c:IsCode(15610297) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......@@ -66,14 +67,14 @@ function c100236114.spop(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c100236114.filter,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c100236114.filter),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if not tc then return end
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
ft=ft-1
local i=0
while tc and i<2 and e:GetLabel()==1 and not Duel.IsPlayerAffectedByEffect(tp,59822133) and ft>0
and Duel.IsExistingMatchingCard(c100236114.filter,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp)
and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(c100236114.filter),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp)
and Duel.SelectYesNo(tp,aux.Stringid(100236114,2)) do
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
g=Duel.SelectMatchingCard(tp,c100236114.filter,tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp)
......
......@@ -25,7 +25,7 @@ function c100236118.initial_effect(c)
c:RegisterEffect(e2)
end
function c100236118.ctfilter(c)
return c:IsFaceup() and c:IsSetCard(0xe3) and c:IsType(TYPE_MONSTER)
return c:IsFaceup() and c:IsSetCard(0xe3)
end
function c100236118.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c100236118.ctfilter,tp,LOCATION_MZONE,0,1,nil)
......
......@@ -83,12 +83,12 @@ function c100308001.desop(e,tp,eg,ep,ev,re,r,rp)
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
local ct=Duel.GetMatchingGroupCount(c100308001.cfilter,tp,LOCATION_ONFIELD,0,nil)
if ct==0 then return end
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,ct,nil)
Duel.HintSelection(g)
local oc=Duel.Destroy(g,REASON_EFFECT)
if oc==0 then return end
Duel.BreakEffect()
e:GetHandler():AddCounter(0x1,oc)
end
end
......@@ -98,7 +98,7 @@ function c100308001.negcon(e,tp,eg,ep,ev,re,r,rp)
return re:IsActiveType(TYPE_SPELL+TYPE_TRAP) and Duel.IsChainNegatable(ev)
end
function c100308001.thfilter(c)
return c:GetCounter(0x1)>0
return c:GetCounter(0x1)>0 and c:IsAbleToHand()
end
function c100308001.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c100308001.thfilter,tp,LOCATION_ONFIELD,0,1,nil) end
......@@ -106,12 +106,14 @@ function c100308001.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_ONFIELD)
end
function c100308001.negop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND)
local g=Duel.SelectMatchingCard(tp,c100308001.thfilter,tp,LOCATION_ONFIELD,0,1,1,nil)
local tc=g:GetFirst()
if not tc then return end
local count=tc:GetCounter(0x1)
if Duel.SendtoHand(tc,nil,REASON_EFFECT)>0 and tc:IsLocation(LOCATION_HAND) and Duel.NegateActivation(ev)~=0
and re:GetHandler():IsRelateToEffect(re) and Duel.Destroy(eg,REASON_EFFECT)>0 then
......
......@@ -38,13 +38,13 @@ function c100412016.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c100412016.costfilter,tp,LOCATION_HAND,0,1,nil)
and e:GetHandler():IsReleasable() end
Duel.Release(e:GetHandler(),REASON_COST)
Duel.DiscardHand(tp,c100412016.costfilter,1,1,REASON_COST+REASON_DISCARD)
Duel.DiscardHand(tp,c100412016.costfilter,1,1,REASON_COST+REASON_DISCARD,nil)
end
function c100412016.spfilter(c,e,tp)
return c:IsSetCard(0x228) and not c:IsCode(100412016) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c100412016.sptg(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 Duel.GetMZoneCount(tp,e:GetHandler())>0
and Duel.IsExistingMatchingCard(c100412016.spfilter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
......
......@@ -21,6 +21,7 @@ function c100412027.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,100412027)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e2:SetCost(c100412027.descost1)
e2:SetCondition(c100412027.descon1)
e2:SetTarget(c100412027.destg1)
e2:SetOperation(c100412027.desop1)
......@@ -53,6 +54,14 @@ function c100412027.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(1-tp,g)
end
end
function c100412027.descost1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
if Duel.GetCurrentPhase()==PHASE_STANDBY then
e:GetHandler():RegisterFlagEffect(100412027,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_STANDBY,0,2,Duel.GetTurnCount())
else
e:GetHandler():RegisterFlagEffect(100412027,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_STANDBY,0,1,0)
end
end
function c100412027.descon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetEquipGroup():IsExists(Card.IsCode,1,nil,100412032)
end
......@@ -62,11 +71,6 @@ function c100412027.destg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,Card.IsSummonType,tp,0,LOCATION_MZONE,1,1,nil,SUMMON_TYPE_SPECIAL)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
if Duel.GetCurrentPhase()==PHASE_STANDBY then
e:GetHandler():RegisterFlagEffect(100412027,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_STANDBY,0,2,Duel.GetTurnCount())
else
e:GetHandler():RegisterFlagEffect(100412027,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_STANDBY,0,1,0)
end
end
function c100412027.desop1(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
......
......@@ -22,10 +22,10 @@ function c100412028.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e2:SetCountLimit(1,100412028)
e2:SetCost(c100412028.rmcost)
e2:SetCondition(c100412028.rmcon)
e2:SetTarget(c100412028.rmtg)
e2:SetOperation(c100412028.rmop)
e2:SetCost(c100412028.rmcost1)
e2:SetCondition(c100412028.rmcon1)
e2:SetTarget(c100412028.rmtg1)
e2:SetOperation(c100412028.rmop1)
c:RegisterEffect(e2)
--banish self
local e3=Effect.CreateEffect(c)
......@@ -35,9 +35,9 @@ function c100412028.initial_effect(c)
e3:SetCode(EVENT_PHASE+PHASE_STANDBY)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetCondition(c100412028.rmcon1)
e3:SetTarget(c100412028.rmtg1)
e3:SetOperation(c100412028.rmop1)
e3:SetCondition(c100412028.rmcon2)
e3:SetTarget(c100412028.rmtg2)
e3:SetOperation(c100412028.rmop2)
c:RegisterEffect(e3)
end
function c100412028.filter(c)
......@@ -56,38 +56,43 @@ function c100412028.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
function c100412028.rmcost(e,tp,eg,ep,ev,re,r,rp,chk)
function c100412028.rmcost1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
e:GetHandler():RegisterFlagEffect(100412028,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_STANDBY,0,1)
end
function c100412028.rmfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToRemove()
if Duel.GetCurrentPhase()==PHASE_STANDBY then
e:GetHandler():RegisterFlagEffect(100412028,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_STANDBY,0,2,Duel.GetTurnCount())
else
e:GetHandler():RegisterFlagEffect(100412028,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_STANDBY,0,1,0)
end
end
function c100412028.rmcon(e,tp,eg,ep,ev,re,r,rp)
function c100412028.rmcon1(e,tp,eg,ep,ev,re,r,rp)
local eg=e:GetHandler():GetEquipGroup()
return eg and eg:GetCount()>0 and eg:IsExists(Card.IsCode,1,nil,100412032)
end
function c100412028.rmtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
function c100412028.rmfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToRemove()
end
function c100412028.rmtg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:GetControler()~=tp and chkc:GetLocation()==LOCATION_GRAVE and c100412028.rmfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c100412028.rmfilter,tp,0,LOCATION_GRAVE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectTarget(tp,c100412028.rmfilter,tp,0,LOCATION_GRAVE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,0,0)
end
function c100412028.rmop(e,tp,eg,ep,ev,re,r,rp,chk)
function c100412028.rmop1(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)
end
end
function c100412028.rmcon1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(100412028)>0
function c100412028.rmcon2(e,tp,eg,ep,ev,re,r,rp)
local tid=e:GetHandler():GetFlagEffectLabel(100412028)
return tid and tid~=Duel.GetTurnCount()
end
function c100412028.rmtg1(e,tp,eg,ep,ev,re,r,rp,chk)
function c100412028.rmtg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,tp,LOCATION_GRAVE)
end
function c100412028.rmop1(e,tp,eg,ep,ev,re,r,rp,chk)
function c100412028.rmop2(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,LOCATION_GRAVE,0,1,1,nil)
if #g>0 then
......
......@@ -25,7 +25,7 @@ function c100412037.filter1(c)
return c:IsFaceup() and c:IsCode(100412032)
end
function c100412037.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsAbleToHand() and chkc:IsControler(1-tp) end
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsAbleToHand() end
if chk==0 then return Duel.IsExistingTarget(Card.IsAbleToHand,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
local tg=1
if Duel.IsExistingMatchingCard(c100412037.filter1,tp,LOCATION_SZONE,0,1,nil) then
......
......@@ -81,7 +81,7 @@ function c100412038.descon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsStatus(STATUS_DESTROY_CONFIRMED) then return false end
local tc=c:GetFirstCardTarget()
return tc and eg:IsContains(tc) and tc:IsReason(REASON_DESTROY)
return tc and eg:IsContains(tc)
end
function c100412038.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
......
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