Commit c26b66d4 authored by Huangnan's avatar Huangnan

fix

parent df618492
......@@ -39,22 +39,20 @@ c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetCode(EFFECT_INDESTRUCTABLE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE)
e5:SetValue(1)
c:RegisterEffect(e5)
local e6=e5:Clone()
e6:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e6:SetValue(1)
c:RegisterEffect(e6)
local e7=e5:Clone()
e7:SetCode(EFFECT_DIRECT_ATTACK)
e7:SetValue(1)
c:RegisterEffect(e7)
end
function cm.shop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rg=Duel.GetMatchingGroup(Card.IsOriginalCodeRule,tp,0x7f,0,nil,13700043)
Duel.SendtoDeck(e:GetHandler(),nil,2,REASON_EFFECT)
Duel.Recover(tp,1000,REASON_EFFECT)
Duel.RegisterFlagEffect(tp,m,0,0,1)
......@@ -95,7 +93,7 @@ end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=Duel.GetFlagEffect(tp,m)
Duel,Hint(2,0,aux.Stringid(id,0))
Duel.Hint(24,0,aux.Stringid(m,0))
Duel.SendtoHand(c,nil,REASON_EFFECT)
if ct>=1 then
if Duel.IsPlayerCanDraw(tp,1) then
......@@ -143,12 +141,23 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,true) then
Duel.SpecialSummon(c,0,tp,tp,false,true,POS_FACEUP)
Duel.Hint(2,0,aux.Stringid(id,1))
Duel.SpecialSummon(c,0,tp,tp,false,true,POS_FACEUP)
Duel.Hint(24,0,aux.Stringid(m,1))
c:SetCardData(CARDDATA_CODE,m+1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_LEAVE_FIELD)
e1:SetOperation(cm.reop)
c:RegisterEffect(e1)
end
end
end
function cm.filter(e,te)
return te:GetOwner()~=e:GetOwner()
end
function cm.reop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
c:SetCardData(CARDDATA_CODE,m)
end
\ No newline at end of file
......@@ -109,11 +109,17 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
local e8=e5:Clone()
e8:SetCode(EFFECT_CANNOT_REMOVE)
Duel.RegisterEffect(e8,tp)
local e9=e5:Clone()
local e9=Effect.CreateEffect(c)
e9:SetType(EFFECT_TYPE_FIELD)
e9:SetCode(EFFECT_IMMUNE_EFFECT)
e9:SetTargetRange(LOCATION_ONFIELD,0)
e9:SetValue(s.efilter)
e9:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e9,tp)
local e99=e9:Clone()
e99:SetTargetRange(0,LOCATION_ONFIELD)
e99:SetValue(s.efilter2)
Duel.RegisterEffect(e99,tp)
--伤害变成0
local e10=Effect.CreateEffect(c)
e10:SetType(EFFECT_TYPE_FIELD)
......@@ -132,4 +138,7 @@ function s.disable(e,c)
end
function s.efilter(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer()
end
function s.efilter2(e,te)
return te:GetOwnerPlayer()==e:GetHandlerPlayer() and te:GetHandler():GetOriginalCode()~=13700047
end
\ No newline at end of file
......@@ -105,7 +105,7 @@ function c16310045.eqop(e,tp,eg,ep,ev,re,r,rp)
e3:SetTarget(c16310045.atkfilter)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetReset(RESET_PHASE+PHASE_END)
c:RegisterEffect(e3)
Duel.RegisterEffect(e3,tp)
end
end
function c16310045.atkfilter(e,c)
......
......@@ -3,7 +3,7 @@ local cm,m,o=GetID()
function cm.initial_effect(c)
c:EnableReviveLimit()
aux.AddFusionProcFunRep2(c,cm.ffilter,3,99,true)
aux.AddContactFusionProcedure(c,cm.cfilter,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_EXTRA+LOCATION_REMOVED,0,cm.sprop(c))
aux.AddContactFusionProcedure(c,cm.ffilter,LOCATION_HAND+LOCATION_ONFIELD+LOCATION_GRAVE+LOCATION_EXTRA+LOCATION_REMOVED,0,cm.sprop(c))
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_MATERIAL_CHECK)
......@@ -35,18 +35,9 @@ function cm.initial_effect(c)
e3:SetOperation(cm.eqop2)
c:RegisterEffect(e3)
end
function cm.mttg(e,c)
return c:GetOriginalType()&TYPE_MONSTER~=0
end
function cm.mtval(e,c)
if not c then return false end
return true
end
function cm.ffilter(c)
return (c:IsFaceup() or c:IsLocation(LOCATION_HAND)) and c:IsSetCard(0x821) or (c:IsLocation(LOCATION_ONFIELD) and c:IsControler(tp) and (c:GetOriginalType()==TYPE_MONSTER or c:IsType(TYPE_MONSTER)))
end
function cm.cfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToDeckOrExtraAsCost() and (((c:IsLocation(LOCATION_EXTRA) or c:IsLocation(LOCATION_REMOVED)) and c:IsFaceup()) or not (c:IsLocation(LOCATION_EXTRA) or c:IsLocation(LOCATION_REMOVED)))
function cm.ffilter(c,tp)
return (c:IsFaceup() or c:IsLocation(LOCATION_HAND+LOCATION_MZONE)) and c:IsControler(tp)
and (c:IsSetCard(0x821) or c:IsLocation(LOCATION_MZONE)) and c:IsType(TYPE_MONSTER)
end
function cm.sprop(c)
return function(g)
......
......@@ -22,7 +22,7 @@ function s.initial_effect(c)
end
end
function s.checkop(e,tp,eg,ep,ev,re,r,rp)
if not re:IsActiveType(TYPE_SPELL) or not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return end
if not re:IsActiveType(TYPE_SPELL) or not re:IsHasType(EFFECT_TYPE_ACTIVATE) or re:GetHandler():GetOriginalType()&0x2<=0 then return end
local code1,code2=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_CODE,CHAININFO_TRIGGERING_CODE2)
Duel.RegisterFlagEffect(rp,id,RESET_PHASE+PHASE_END,0,1,code1)
Duel.RegisterFlagEffect(rp,id,RESET_PHASE+PHASE_END,0,1,code2)
......
......@@ -11,6 +11,9 @@ function c61200103.initial_effect(c)
e1:SetTarget(s.tg1)
e1:SetOperation(s.op1)
c:RegisterEffect(e1)
local e4=e1:Clone()
e4:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e4)
--除外自跳
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,2))
......@@ -59,8 +62,8 @@ function s.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
local g=Duel.SelectMatchingCard(tp,s.f1,tp,LOCATION_DECK,0,1,1,nil)
local tc=g:GetFirst()
if tc and Duel.SSet(tp,tc)~=0 then
local e1=Effect.CreateEffect(c)
if tc and Duel.SSet(tp,tc)~=0 and g:GetCount()>0 then
local e1=Effect.CreateEffect()
e1:SetDescription(aux.Stringid(id,1))
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
......
......@@ -11,6 +11,9 @@ function c61200104.initial_effect(c)
e1:SetTarget(s.tg1)
e1:SetOperation(s.op1)
c:RegisterEffect(e1)
local e4=e1:Clone()
e4:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e4)
--二速特招
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
......
......@@ -79,7 +79,7 @@ function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
end
--functions e2 needs
function cm.counter(c)
return c:IsType(TYPE_LINK) and c:IsType(TYPE_MONSTER) and c:IsLinkAbove(1)
return c:IsType(TYPE_LINK) and c:IsType(TYPE_MONSTER) and c:IsLinkAbove(1) and c:GetAttack()==0
end
function cm.addcon(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(cm.counter,tp,LOCATION_GRAVE,0,nil)
......
......@@ -121,7 +121,7 @@ function cm.desop(e,tp,eg,ep,ev,re,r,rp)
end
--spsummon
function cm.spfilter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,1-tp) and c:IsType(TYPE_MONSTER)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,1-tp) and c:IsType(TYPE_MONSTER) and c:IsSetCard(0x858)
end
function cm.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
......
......@@ -90,9 +90,13 @@ function cm.xtg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function cm.xop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.rmfilter),tp,LOCATION_GRAVE,0,2,2,nil,e,tp)
local lv=g:GetFirst():GetLevel()
Duel.Hint(HINTMSG_SELECT,tp,HINTMSG_REMOVE)
local tc=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.rmfilter),tp,LOCATION_GRAVE+LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil,e,tp):GetFirst()
local lv=tc:GetLevel()
local g=Group.CreateGroup()
g:AddCard(tc)
local g2=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(cm.rmfilter2),tp,LOCATION_GRAVE+LOCATION_HAND+LOCATION_ONFIELD,0,1,1,tc,lv)
g:Merge(g2)
if #g>0 then
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
local sc=Duel.SelectMatchingCard(tp,cm.xyzfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,lv):GetFirst()
......
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