Commit 2798eb1b authored by Nemo Ma's avatar Nemo Ma

fix

parent c3b785dd
--双天法 那罗延
--21.09.12
local m=11451626
local cm=_G["c"..m]
local cm,m=GetID()
function cm.initial_effect(c)
--fusion
c:EnableReviveLimit()
......@@ -118,7 +117,7 @@ function cm.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
e:GetHandler():RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD+RESET_CHAIN,0,1,Duel.GetCurrentChain())
if Duel.IsExistingTarget(nil,tp,0,LOCATION_ONFIELD,1,nil) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local tc=Duel.SelectTarget(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil)
local tc=Duel.SelectTarget(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil):GetFirst()
c:SetCardTarget(tc)
e:GetLabelObject():AddCard(tc)
end
......
......@@ -66,8 +66,8 @@ function cm.xyzcheck(g)
return true
end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
local ct=e:GetLabel()
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,ct,REASON_COST) end
local ct,ct1=e:GetLabel(),e:GetHandler():GetOverlayCount()
if chk==0 then return ct1>0 and e:GetHandler():CheckRemoveOverlayCard(tp,ct,REASON_COST) end
Duel.Hint(HINT_OPSELECTED,1-tp,e:GetDescription())
e:GetHandler():RemoveOverlayCard(tp,ct,ct,REASON_COST)
end
......@@ -165,23 +165,31 @@ function cm.spfilter(c,e,tp)
end
function cm.spfilter1(c,e,tp)
return c:IsType(TYPE_XYZ) and (c:GetBaseAttack()==4000 or c:GetBaseAttack()==0) and e:GetHandler():IsCanBeXyzMaterial(c)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,true,true)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_XYZ,tp,true,true) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
end
function cm.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return aux.MustMaterialCheck(e:GetHandler(),tp,EFFECT_MUST_BE_XMATERIAL) and (Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_EXTRA,0,1,e:GetHandler(),e,tp) or (Duel.IsExistingMatchingCard(cm.spfilter1,tp,LOCATION_GRAVE,0,1,e:GetHandler(),e,tp) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0))end
if chk==0 then return aux.MustMaterialCheck(e:GetHandler(),tp,EFFECT_MUST_BE_XMATERIAL) and (Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_EXTRA,0,1,e:GetHandler(),e,tp) or Duel.IsExistingMatchingCard(cm.spfilter1,tp,LOCATION_GRAVE,0,1,e:GetHandler(),e,tp)) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA+LOCATION_GRAVE)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if (not c:IsRelateToEffect(e)) or Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 or (not aux.MustMaterialCheck(c,tp,EFFECT_MUST_BE_XMATERIAL)) then return end
local g=Duel.SelectMatchingCard(tp,cm.spfilter,tp,LOCATION_GRAVE+LOCATION_EXTRA,0,1,1,c,e,tp)
local tc=g:GetFirst()
if tc:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp)<=0 then return end
if tc then
local cg=Group.FromCards(c)
tc:SetMaterial(cg)
Duel.Overlay(tc,cg)
Duel.SpecialSummon(tc,SUMMON_TYPE_XYZ,tp,tp,true,true,POS_FACEUP)
tc:CompleteProcedure()
if (not c:IsRelateToEffect(e)) or not aux.MustMaterialCheck(c,tp,EFFECT_MUST_BE_XMATERIAL) then return end
local g1=Duel.GetMatchingGroup(cm.spfilter,tp,LOCATION_EXTRA,0,c,e,tp)
local g2=Duel.GetMatchingGroup(cm.spfilter1,tp,LOCATION_GRAVE,0,c,e,tp)
g1:Merge(g2)
if #g1<=0 then return end
local g=g1:Select(tp,1,1,nil)
if #g>0 then
local tc=g:GetFirst()
if tc and tc:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp)<=0 then return end
if tc then
Duel.SpecialSummon(tc,SUMMON_TYPE_XYZ,tp,tp,true,true,POS_FACEUP)
tc:CompleteProcedure()
if tc and tc:IsOnField() then
local cg=Group.FromCards(c)
tc:SetMaterial(cg)
Duel.Overlay(tc,cg)
end
end
end
end
\ No newline at end of file
......@@ -22,7 +22,7 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_IMMUNE_EFFECT)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(LOCATION_SZONE,LOCATION_SZONE)
e2:SetTargetRange(LOCATION_SZONE,0)
e2:SetTarget(cm.etarget)
e2:SetValue(cm.efilter)
c:RegisterEffect(e2)
......
......@@ -34,9 +34,9 @@ function c25000022.initial_effect(c)
e2:SetOperation(c25000022.xxop)
c:RegisterEffect(e2)
end
function c25000022.ffilter(c,fc,sub,mg,sg)
return ( not sg or sg:GetClassCount(Card.GetRace)==1) and c:IsFusionType(TYPE_FUSION)
end
function c25000022.ffilter(c,fc,sub,mg,sg)
return (not sg or sg:FilterCount(aux.TRUE,c)==0 or (sg:IsExists(Card.IsRace,1,c,c:GetRace()))) and c:IsFusionType(TYPE_FUSION)
end
function c25000022.splimit(e,se,sp,st)
return e:GetHandler():GetLocation()~=LOCATION_EXTRA
end
......
......@@ -16,7 +16,8 @@ function c25000029.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1,25000029)
e1:SetTarget(c25000029.dstg)
e1:SetOperation(c25000029.dsop)
......@@ -63,8 +64,8 @@ function c25000029.dsop(e,tp,eg,ep,ev,re,r,rp)
local x=g:GetCount()
local dg=Duel.GetDecktopGroup(tp,x)
if Duel.Destroy(dg,REASON_EFFECT)==x and Duel.IsExistingMatchingCard(Card.IsFaceup,tp,0,LOCATION_ONFIELD,1,nil) then
local tc=Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,0,LOCATION_ONFIELD,1,1,nil):GetFirst()
if not tc:IsDisabled() then
local tc=Duel.SelectMatchingCard(tp,Card.IsFaceup,tp,0,LOCATION_ONFIELD,1,1,nil):GetFirst()
if not tc:IsDisabled() then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DISABLE)
......@@ -73,7 +74,7 @@ function c25000029.dsop(e,tp,eg,ep,ev,re,r,rp)
Duel.AdjustInstantly()
Duel.NegateRelatedChain(tc,RESET_TURN_SET)
Duel.Destroy(tc,REASON_EFFECT)
end
end
end
end
function c25000029.sttg(e,tp,eg,ep,ev,re,r,rp,chk)
......@@ -83,10 +84,11 @@ end
function c25000029.stop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.IsExistingMatchingCard(nil,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) and ((Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1)) or Duel.IsExistingMatchingCard(nil,tp,LOCATION_PZONE,0,1,nil)) then
local dg=Group.CreateGroup()
if Duel.CheckLocation(tp,LOCATION_PZONE,0) or Duel.CheckLocation(tp,LOCATION_PZONE,1) then
local dg=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
dg=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
else
local dg=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_PZONE,0,1,1,nil)
dg=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_PZONE,0,1,1,nil)
end
if Duel.Destroy(dg,REASON_EFFECT)==0 then return end
Duel.MoveToField(c,tp,tp,LOCATION_PZONE,POS_FACEUP,true)
......
......@@ -4,7 +4,7 @@ function cm.initial_effect(c)
aux.EnablePendulumAttribute(c,false)
--xyz summon
c:EnableReviveLimit()
aux.AddXyzProcedureLevelFree(c,nil,cm.xyzcheck,3,3)
aux.AddXyzProcedureLevelFree(c,function(c)return c:IsLevelAbove(0)end,cm.xyzcheck,3,3)
--remove
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
......
......@@ -76,8 +76,17 @@ function c26692740.adjustop(e,tp,eg,ep,ev,re,r,rp)
if effect and effect:GetCode()==EVENT_TO_GRAVE then
local eff=effect:Clone()
local eff2=effect:Clone()
local tg=eff:GetTarget()
local op=eff:GetOperation()
eff:SetValue(26692740)
eff:SetTarget(
function(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then
return tg(e,tp,eg,ep,ev,re,r,1-tp,0,chkc)
end
Duel.Hint(HINT_CARD,0,26692740)
tg(e,tp,eg,ep,ev,re,r,1-tp,chk,chkc)
end)
eff:SetOperation(
function(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,26692740)
......
......@@ -102,17 +102,18 @@ function c40008691.thcon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD)
end
function c40008691.thfilter(c)
return c:IsSetCard(0x10c5) and c:IsAbleToHand() and c:IsCode(40008691)
return c:IsSetCard(0x10c5) and c:IsAbleToHand() and not c:IsCode(40008691)
end
function c40008691.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c40008691.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
function c40008691.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c40008691.thfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c40008691.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectTarget(tp,c40008691.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function c40008691.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c40008691.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
......@@ -30,7 +30,7 @@ function c51728679.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SendtoGrave(e:GetHandler(),REASON_DISCARD+REASON_COST)
end
function c51728679.thfilter(c)
return c:IsSetCard(0x159) and c:IsAbleToHand() and not c:IsCode(51728679)
return c:IsSetCard(0x159) and c:IsAbleToHand() and not c:IsCode(51728679) and c:IsType(TYPE_MONSTER)
end
function c51728679.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_GRAVE) and c51728679.thfilter(chkc) end
......
......@@ -20,7 +20,7 @@ function c71400030.initial_effect(c)
--banish
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_REMOVE)
e2:SetType(EFFECT_TYPE_TRIGGER_F)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_SUMMON_SUCCESS)
e2:SetRange(LOCATION_MZONE)
e2:SetDescription(aux.Stringid(71400030,0))
......
......@@ -9,7 +9,6 @@ function c71400058.initial_effect(c)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_FZONE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetDescription(aux.Stringid(71400058,0))
e1:SetCountLimit(1)
e1:SetTarget(c71400058.tg1)
......
......@@ -22,6 +22,7 @@ function c71402001.initial_effect(c)
e2:SetRange(LOCATION_GRAVE+LOCATION_REMOVED)
e2:SetCountLimit(1)
e2:SetCost(c71402001.cost2)
e2:SetTarget(c71402001.tg2)
e2:SetOperation(c71402001.op2)
c:RegisterEffect(e2)
--double tuner check
......@@ -53,9 +54,10 @@ end
function c71402001.op1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
if Duel.IsPlayerCanSpecialSummonMonster(tp,71402002,0,TYPES_TOKEN_MONSTER,5000,5000,12,RACE_FIEND,ATTRIBUTE_LIGHT,POS_FACEUP) then
local c=e:GetHandler()
local token=Duel.CreateToken(tp,71402002)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SELECT_BATTLE_TARGET)
e1:SetRange(LOCATION_MZONE)
......@@ -63,6 +65,7 @@ function c71402001.op1(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(c71402001.atklimit)
e1:SetReset(RESET_PHASE+PHASE_END)
token:RegisterEffect(e1)
Duel.SpecialSummonComplete()
end
end
function c71402001.atklimit(e,c)
......@@ -78,6 +81,11 @@ function c71402001.cost2(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,tp,LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c71402001.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,Duel.GetFirstTarget(),1,tp,LOCATION_HAND)
end
function c71402001.op2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)>0 then
......
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