Commit 52c7f08d authored by Nemo Ma's avatar Nemo Ma

fix

parent 35f9960e
......@@ -1001,11 +1001,14 @@
31400126 0
10401401 0
33720056 0
31400133 0
33331607 0
40008715 0
40009249 0
40009459 0
82208107 0
15000600 0
15000600 1
33711401 1
82566601 0
82567779 0
......@@ -1325,7 +1328,6 @@
40008688 1
#220821
9951001 0
53087982 0
60009998 0
#220814
15000404 0
......
......@@ -77,8 +77,6 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
Debug.Message(te)
Debug.Message(te:GetHandler():IsRelateToEffect(e))
if not te then return end
if not te:GetHandler():IsRelateToEffect(e) then return end
e:SetLabelObject(te:GetLabelObject())
......
--无前之斗争军势
--21.05.21
local m=11451537
local cm=_G["c"..m]
local cm,m=GetID()
function cm.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,nil,10,2,nil,nil,99)
......@@ -120,8 +119,6 @@ function cm.otcon(e,c,minc)
if ct==0 then return false end
local tp=c:GetControler()
local mi,ma=c:GetTributeRequirement()
Debug.Message(mi)
Debug.Message(ma)
return ma>0 and minc<=ma and ((math.max(mi,minc)<=ct and Duel.GetMZoneCount(tp)>0) or Duel.CheckTribute(c,math.max(1,math.max(mi,minc)-ct)))
end
function cm.fselect(g)
......
--辉影翩跹
--21.06.13
local m=11451538
local cm=_G["c"..m]
local cm,m=GetID()
function cm.initial_effect(c)
--act in set turn
local e0=Effect.CreateEffect(c)
......@@ -91,6 +90,8 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
local rg=tg:Select(tp,1,1,nil)
Duel.XyzSummon(tp,rg:GetFirst(),og)
end
else
Duel.ShuffleDeck(tp)
end
end
function cm.filter(c)
......
--璇心救世军-“红玉”
local m=11451729
local cm=_G["c"..m]
--璇心救世军-“残雪”
local cm,m=GetID()
function cm.initial_effect(c)
--link summon
c:EnableReviveLimit()
aux.AddLinkProcedure(c,nil,1,1)
--atk
--indes
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCondition(cm.smcon)
e1:SetCost(cm.smcost)
e1:SetOperation(cm.atkop)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetTargetRange(LOCATION_ONFIELD,0)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetCondition(cm.indcon)
e1:SetTarget(cm.indtg)
e1:SetValue(1)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetDescription(aux.Stringid(m,1))
e2:SetCondition(cm.sscon)
e2:SetCost(cm.sscost)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_CANNOT_INACTIVATE)
e2:SetCondition(cm.indcon)
e2:SetValue(cm.effectfilter)
c:RegisterEffect(e2)
--cannot be link material
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e3:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e3:SetValue(1)
local e3=e2:Clone()
e3:SetCode(EFFECT_CANNOT_DISEFFECT)
e3:SetValue(cm.effectfilter2)
c:RegisterEffect(e3)
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetRange(LOCATION_MZONE)
e4:SetCode(EFFECT_CANNOT_DISABLE)
e4:SetTargetRange(LOCATION_ONFIELD,0)
e4:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e4:SetCondition(cm.indcon)
e4:SetTarget(cm.indtg)
c:RegisterEffect(e4)
--atk
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetCode(EFFECT_UPDATE_ATTACK)
e5:SetRange(LOCATION_MZONE)
e5:SetTargetRange(LOCATION_MZONE,0)
e5:SetCondition(cm.indcon2)
e5:SetTarget(aux.TargetBoolFunction(Card.IsFaceup))
e5:SetValue(3000)
c:RegisterEffect(e5)
--immune
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_IMMUNE_EFFECT)
e6:SetRange(LOCATION_MZONE)
e6:SetTargetRange(LOCATION_MZONE,0)
e6:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e6:SetCondition(cm.indcon2)
e6:SetValue(cm.efilter)
c:RegisterEffect(e6)
--cannot be link material
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_SINGLE)
e7:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e7:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
e7:SetValue(1)
c:RegisterEffect(e7)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_LEAVE_FIELD)
ge1:SetOperation(cm.regop)
Duel.RegisterEffect(ge1,0)
end
end
function cm.smcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsType,1,nil,TYPE_MONSTER) and Duel.GetTurnPlayer()==tp
function cm.mfilter(c)
return c:IsPreviousLocation(LOCATION_MZONE) and c:GetReasonPlayer()==1-c:GetPreviousControler()
end
function cm.cfilter(c,g)
return g:IsExists(Card.IsRace,1,nil,c:GetRace()) and c:IsFaceup() and c:IsAbleToGraveAsCost()
function cm.sfilter(c)
return c:IsPreviousLocation(LOCATION_ONFIELD) and c:GetPreviousTypeOnField()&(TYPE_SPELL+TYPE_TRAP)~=0 and (c:IsPreviousPosition(POS_FACEUP) or c:IsPreviousLocation(LOCATION_SZONE)) and c:GetReasonPlayer()==1-c:GetPreviousControler()
end
function cm.smcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter,tp,0,LOCATION_MZONE,1,nil,eg) end
local tg=Duel.SelectMatchingCard(tp,cm.cfilter,tp,0,LOCATION_MZONE,1,1,nil,eg)
Duel.SendtoGrave(tg,REASON_COST)
function cm.regop(e,tp,eg,ep,ev,re,r,rp)
local g1=eg:Filter(cm.mfilter,nil)
for tc in aux.Next(g1) do
if Duel.GetFlagEffect(tc:GetPreviousControler(),m)==0 then
Duel.RegisterFlagEffect(tc:GetPreviousControler(),m,RESET_PHASE+PHASE_END,0,1)
end
if Duel.GetFlagEffect(0,m)>0 and Duel.GetFlagEffect(1,m)>0 then break end
end
local g2=eg:Filter(cm.sfilter,nil)
for tc in aux.Next(g2) do
if Duel.GetFlagEffect(tc:GetPreviousControler(),m-1)==0 then
Duel.RegisterFlagEffect(tc:GetPreviousControler(),m-1,RESET_PHASE+PHASE_END,0,1)
end
if Duel.GetFlagEffect(0,m-1)>0 and Duel.GetFlagEffect(1,m-1)>0 then break end
end
end
function cm.sscon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsType,1,nil,TYPE_SPELL+TYPE_TRAP) and Duel.GetTurnPlayer()~=tp
function cm.indcon(e)
return Duel.GetFlagEffect(e:GetHandlerPlayer(),m)>0
end
function cm.cfilter2(c,g)
return g:IsExists(Card.IsType,1,nil,c:GetType()&0x6) and c:IsFaceup() and c:IsAbleToGraveAsCost()
function cm.indcon2(e)
return Duel.GetFlagEffect(e:GetHandlerPlayer(),m-1)>0
end
function cm.sscost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.cfilter2,tp,0,LOCATION_SZONE,1,nil,eg) end
local tg=Duel.SelectMatchingCard(tp,cm.cfilter2,tp,0,LOCATION_SZONE,1,1,nil,eg)
Duel.SendtoGrave(tg,REASON_COST)
function cm.indtg(e,c)
return c:IsType(TYPE_SPELL+TYPE_TRAP)
end
function cm.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(1500)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE)
c:RegisterEffect(e1)
end
function cm.effectfilter(e,ct)
local te,tp,typ,loc=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_CONTROLER,CHAININFO_TYPE,CHAININFO_TRIGGERING_LOCATION)
return loc&LOCATION_ONFIELD>0 and tp==e:GetHandlerPlayer() and typ&0x6>0 and te:IsHasType(EFFECT_TYPE_ACTIVATE)
end
function cm.effectfilter2(e,ct)
local te,tp,typ,loc=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_CONTROLER,CHAININFO_TYPE,CHAININFO_TRIGGERING_LOCATION)
return loc&LOCATION_ONFIELD>0 and tp==e:GetHandlerPlayer() and typ&0x6>0
end
function cm.efilter(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer() and te:IsActiveType(TYPE_MONSTER)
end
\ No newline at end of file
......@@ -17,6 +17,7 @@ aux.EnableChangeCode(c,25800023,LOCATION_MZONE+LOCATION_GRAVE)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_HAND)
e3:SetCountLimit(1,25800026)
......
......@@ -20,7 +20,7 @@ function c25800081.initial_effect(c)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetCondition(c25800081.negcon)
e3:SetTarget(c25800081.negtg)
e3:SetTarget(aux.nbtg)
e3:SetOperation(c25800081.negop)
c:RegisterEffect(e3)
......@@ -35,18 +35,9 @@ function c25800081.initial_effect(c)
e4:SetOperation(c25800081.sumop)
c:RegisterEffect(e4)
end
function c25800081.negcon(e,tp,eg,ep,ev,re,r,rp)
if ep==tp or e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) then return false end
return Duel.IsChainNegatable(ev)
end
function c25800081.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return aux.nbcon(tp,re) end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_REMOVE,eg,1,0,0)
end
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED)
and (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.IsChainNegatable(ev)
end
function c25800081.negop(e,tp,eg,ep,ev,re,r,rp)
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
......
......@@ -3,10 +3,8 @@ function c25800103.initial_effect(c)
--extra summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(25800103,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(c25800103.sumcon)
e1:SetCost(c25800103.sumcost)
e1:SetTarget(c25800103.sumtg)
......@@ -18,9 +16,7 @@ function c25800103.initial_effect(c)
e2:SetDescription(aux.Stringid(25800103,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE)
e2:SetCountLimit(1,25800103)
e2:SetCost(aux.bfgcost)
e2:SetTarget(c25800103.sptg)
......
......@@ -77,7 +77,12 @@ function c26692740.adjustop(e,tp,eg,ep,ev,re,r,rp)
local eff=effect:Clone()
local eff2=effect:Clone()
local op=eff:GetOperation()
local tg=eff:GetTarget()
eff:SetValue(26692740)
eff:SetTarget(
function(e,tp,eg,ep,ev,re,r,rp)
tg(e,tp,eg,ep,ev,re,r,1-tp)
end)
eff:SetOperation(
function(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,26692740)
......
......@@ -75,7 +75,7 @@ function cm.indop(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(31400049,0))
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT+EFFECT_FLAG_SINGLE_RANGE)
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(cm.efilter)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
......
......@@ -94,17 +94,15 @@ function cm.rmfilter(c,fid)
return c:GetFlagEffectLabel(m)==fid
end
function cm.rmcon(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
if not g:IsExists(cm.rmfilter,1,nil,e:GetLabel()) then
g:DeleteGroup()
local c=e:GetLabelObject()
if c:GetFlagEffectLabel(m)~=e:GetLabel() then
e:Reset()
return false
else return true end
end
function cm.rmop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(cm.rmfilter,nil,e:GetLabel())
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
local c=e:GetLabelObject()
Duel.Remove(c,POS_FACEUP,REASON_EFFECT)
end
......@@ -19,6 +19,16 @@ function cm.initial_effect(c)
e2:SetRange(LOCATION_MZONE)
e2:SetOperation(cm.op)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e3:SetValue(1)
c:RegisterEffect(e3)
local e4=e3:Clone()
e4:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
c:RegisterEffect(e4)
local ex=Effect.CreateEffect(c)
ex:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ex:SetCode(EVENT_ADJUST)
......
......@@ -27,8 +27,8 @@ end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=re:GetHandler()
return rc:IsOriginalCodeRule(24094653) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and rp==tp
and ((re:IsActiveType(TYPE_MONSTER) and ((Duel.GetLocationCount(tp,LOCATION_MZONE)>=1 and rc:GetSequence()>4) or (Duel.GetLocationCount(tp,LOCATION_MZONE)>=0))) or (re:IsActiveType(TYPE_SPELL+TYPE_TRAP) and Duel.GetLocationCount(tp,LOCATION_MZONE)>=1)) and rc:IsAbleToGraveAsCost() and not rc:IsLocation(LOCATION_GRAVE)
return rc:IsCode(24094653) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and rp==tp and re:IsHasType(EFFECT_TYPE_ACTIVATE)
and Duel.GetLocationCount(tp,LOCATION_MZONE)>=1 and rc:IsAbleToGraveAsCost() and rc:IsLocation(LOCATION_SZONE)
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
......@@ -41,7 +41,7 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
end
function cm.filter(c)
return c:IsOriginalCodeRule(24094653) and c:IsAbleToHand()
return c:IsCode(24094653) and c:IsAbleToHand()
end
function cm.shtg(e,tp,eg,ep,ev,re,r,rp,chk)
......
......@@ -74,7 +74,7 @@ function c79029067.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.IsExistingMatchingCard(c79029067.thfil,tp,LOCATION_DECK,0,1,nil,tp) and Duel.SelectYesNo(tp,aux.Stringid(79029067,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_OPERATECARD)
local g=Duel.SelectMatchingCard(tp,c79029067.thfil,tp,LOCATION_DECK,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,c79029067.thfil,tp,LOCATION_DECK,0,1,1,nil,tp)
if g:GetCount()<=0 then return end
local tc=g:GetFirst()
if tc:IsAbleToHand() and (not tc:IsAbleToGrave() or Duel.SelectOption(tp,1190,1191)==0) then
......@@ -84,7 +84,7 @@ function c79029067.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.SendtoGrave(tc,REASON_EFFECT)
end
else
local g=Duel.SelectMatchingCard(tp,c79029067.srfil,tp,LOCATION_DECK,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,c79029067.srfil,tp,LOCATION_DECK,0,1,1,nil,tp)
if g:GetCount()<=0 then return end
local tc=g:GetFirst()
Duel.MoveToField(tc,tp,tp,LOCATION_FZONE,POS_FACEUP,true)
......
......@@ -150,6 +150,6 @@ function c92781608.fieldop(e,tp,eg,ep,ev,re,r,rp)
if tc then return false end
local sc=Duel.GetFirstMatchingCard(c92781608.fdfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,nil,tp)
if sc then
Duel.MoveToField(sc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
Duel.MoveToField(sc,tp,tp,LOCATION_FZONE,POS_FACEUP,true)
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