Commit 08f1e028 authored by Huangnan's avatar Huangnan

fix

parent fecf6e93
Pipeline #35143 passed with stages
in 50 minutes and 44 seconds
No preview for this file type
--月之使者 雷普索尔特
local s,id,o=GetID()
function s.initial_effect(c)
aux.AddCodeList(c,12400134)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CHANGE_LEVEL)
......
......@@ -82,7 +82,7 @@ end
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.tfilter,tp,LOCATION_HAND,0,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONFIRM)
local g=Duel.SelectMatchingCard(tp,cm.tfilter,tp,LOCATION_HAND,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,cm.tfilter,tp,LOCATION_HAND,0,1,1,nil,tp)
Duel.ConfirmCards(1-tp,g)
e:SetLabelObject(g:GetFirst())
end
......@@ -97,7 +97,7 @@ function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=e:GetLabelObject()
local tcode=e:GetLabelObject()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil,tc)
if #sg>0 then
......
......@@ -51,6 +51,7 @@ function cm.initial_effect(c)
e6:SetTarget(cm.sptg2)
e6:SetOperation(cm.spop2)
c:RegisterEffect(e6)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
......@@ -185,7 +186,7 @@ function cm.spop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local ct=2
if ft>0 and ct>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,m+3,0,TYPES_TOKEN_MONSTER,2800,2800,8,RACE_WARRIOR,ATTRIBUTE_LIGHT) then
if ft>0 and ct>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,m+3,0,TYPES_TOKEN_MONSTER,2420,2400,8,RACE_WARRIOR,ATTRIBUTE_LIGHT) then
local count=math.min(ft,ct)
if Duel.IsPlayerAffectedByEffect(tp,59822133) then count=1 end
if count>1 then
......@@ -206,4 +207,4 @@ function cm.spop2(e,tp,eg,ep,ev,re,r,rp)
until count==0
Duel.SpecialSummonComplete()
end
end
\ No newline at end of file
end
......@@ -28,6 +28,13 @@ function cm.initial_effect(c)
e2:SetCost(cm.mvcost)
e2:SetOperation(cm.mvop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_IMMUNE_EFFECT)
e3:SetCondition(cm.ffcon)
e3:SetValue(cm.efilter1)
c:RegisterEffect(e3)
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......@@ -157,4 +164,14 @@ function cm.mvop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(dg2,REASON_EFFECT)
end
end
end
function cm.ttsfilter(c)
return c:GetFlagEffect(18700913)>0
end
function cm.efilter1(e,re)
return re:IsActiveType(TYPE_MONSTER) and not re:GetHandler():IsSetCard(0x829)
end
function cm.ffcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(cm.ttsfilter,tp,LOCATION_SZONE,0,1,nil)
end
\ No newline at end of file
......@@ -72,7 +72,8 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if sc:IsCode(18700804) and Duel.GetFlagEffect(tp,m)==0 then
if Duel.SelectYesNo(tp,aux.Stringid(m,2)) then
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(tp,m,0,0,1)
sc:RegisterFlagEffect(tp,m+1,RESET_PHASE+PHASE_END,0,1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_UPDATE_ATTACK)
......@@ -81,17 +82,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
e1:SetTarget(cm.atktg2)
e1:SetValue(500)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_IMMUNE_EFFECT)
e2:SetRange(LOCATION_SZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(cm.etfilter)
e2:SetValue(cm.efilter)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
sc:RegisterEffect(e1)
end
end
end
......@@ -101,12 +92,5 @@ function cm.atktg2(e,c)
return c:IsSetCard(0x829) and c:IsLevelAbove(10)
end
function cm.etfilter(e,c)
return c:IsSetCard(0x829)
end
function cm.efilter(e,te)
local tc=te:GetHandler()
return not tc:IsSetCard(0x829)
end
......@@ -72,8 +72,8 @@ function s.filter(c)
return c:IsFaceup() and c:IsLevelAbove(10) and c:IsCanOverlay()
end
function s.sptg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and cm.filter(chkc) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingTarget(cm.filter,tp,LOCATION_MZONE,0,1,nil)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and s.filter(chkc) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingTarget(s.filter,tp,LOCATION_MZONE,0,1,nil)
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
Duel.SelectTarget(tp,cm.filter,tp,LOCATION_MZONE,0,1,1,nil)
......
......@@ -41,7 +41,7 @@ function c33400435.initial_effect(c)
e5:SetCode(EFFECT_IMMUNE_EFFECT)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetRange(LOCATION_MZONE)
e5:SetCondition(c33400435.eqcon)
e5:SetCondition(c33400435.eqcon2)
e5:SetValue(c33400435.efilter)
c:RegisterEffect(e5)
end
......@@ -102,7 +102,7 @@ local tc=e:GetHandler():GetBattleTarget()
return tc and tc:IsFaceup() and (Duel.GetAttacker()==e:GetHandler() or Duel.GetAttackTarget()==e:GetHandler()) and (tc:IsSetCard(0x341) or (Duel.IsExistingMatchingCard(c33400435.cccfilter1,tp,LOCATION_SZONE,0,1,nil) or Duel.IsExistingMatchingCard(c33400435.cccfilter2,tp,LOCATION_MZONE,0,1,nil)))
end
function c33400435.eqcon(e)
function c33400435.eqcon2(e)
local eg=e:GetHandler():GetEquipGroup()
return eg:IsExists(Card.IsSetCard,1,nil,0x6343)
end
......
......@@ -73,7 +73,7 @@ function cm.initial_effect(c)
c:RegisterEffect(e9)
end
function cm.ffilter(c,fc,sub,mg,sg)
return c:IsCode(33400814,33400815) and (not sg or not sg:IsExists(Card.IsFusionCode,1,c,c:GetFusionCode())) and (not sg or sg:IsExists(Card.IsLocation,1,nil,LOCATION_MZONE))
return c:IsFusionCode(33400814,33400815) and (not sg or not sg:IsExists(Card.IsFusionCode,1,c,c:GetFusionCode())) and (not sg or sg:IsExists(Card.IsLocation,1,nil,LOCATION_MZONE))
end
function cm.splimit(e,se,sp,st)
......
......@@ -3,7 +3,7 @@ local m=33400908
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,99,cm.lcheck)
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsSetCard,0x341),2,99,s.lcheck)
c:EnableReviveLimit()
--
local e1=Effect.CreateEffect(c)
......
......@@ -3,7 +3,7 @@ local m=33400909
local cm=_G["c"..m]
function cm.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,nil,2,99,cm.lcheck)
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsSetCard,0x341),2,99,s.lcheck)
c:EnableReviveLimit()
--atk up
local e1=Effect.CreateEffect(c)
......
......@@ -30,29 +30,13 @@ function s.initial_effect(c)
--Activate only when you have 40+ "Fire's Dawn" cards
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCode(EVENT_FREE_CHAIN+EFFECT_CANNOT_INACTIVATE+EFFECT_CANNOT_DISABLE)
e1:SetCondition(s.condition)
e1:SetCost(s.cost)
e1:SetTarget(s.target)
e1:SetOperation(s.operation)
e1:SetCountLimit(1,id,EFFECT_COUNT_CODE_OATH)
c:RegisterEffect(e1)
--Cannot be negated
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_CANNOT_INACTIVATE)
e2:SetRange(LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED+LOCATION_DECK)
e2:SetValue(s.effectfilter)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_DISABLE)
e3:SetRange(LOCATION_HAND+LOCATION_GRAVE+LOCATION_REMOVED+LOCATION_DECK)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e3:SetTarget(s.distg)
c:RegisterEffect(e3)
end
function s.deckfilter(c)
......@@ -60,7 +44,7 @@ function s.deckfilter(c)
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(s.deckfilter,tp,LOCATION_DECK+LOCATION_HAND+LOCATION_GRAVE+LOCATION_EXTRA+LOCATION_ONFIELD,0,nil)
local ct=Duel.GetMatchingGroupCount(s.deckfilter,tp,0xff,0,nil)
return ct>=40
end
......@@ -82,14 +66,6 @@ function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
end
function s.effectfilter(e,ct)
return Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT):GetHandler()==e:GetHandler()
end
function s.distg(e,c)
return c==e:GetHandler()
end
function s.fdfilter(c,e,tp)
return c:IsSetCard(0xc22) and c:IsType(TYPE_MONSTER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
......
......@@ -17,7 +17,7 @@ function s.initial_effect(c)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
--e2:SetCountLimit(2)
e2:SetCountLimit(2)
e2:SetTarget(s.lvtg)
e2:SetOperation(s.lvop)
c:RegisterEffect(e2)
......
......@@ -68,7 +68,7 @@ function cm.fil3(c)
return c:IsType(TYPE_CONTINUOUS) and c:IsType(TYPE_SPELL) and c:IsFaceup()
end
function cm.fil4(c)
return c:IsOriginalCodeRule(60010252) and c:IsFaceup() and c:IsAbleToRemoveAsCost() and c:IsCanBeFusionMaterial()
return c:IsOriginalCodeRule(60010252) and c:IsReleasable() and c:IsCanBeFusionMaterial()
end
function cm.spcon(e,c)
local tp=e:GetHandlerPlayer()
......
......@@ -55,6 +55,10 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
local fc=Duel.SelectMatchingCard(tp,cm.mfilter2,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil,re:GetHandler()):GetFirst()
local fg=Group.FromCards(re:GetHandler(),fc)
c:SetMaterial(fg)
if fg:IsExists(Card.IsFacedown,1,nil) then
Duel.ConfirmCards(1,fg:Filter(Card.IsFacedown,nil))
Duel.ConfirmCards(0,fg:Filter(Card.IsFacedown,nil))
end
if Duel.SendtoGrave(fg,REASON_SPSUMMON)==2 then
Duel.SpecialSummon(c,0,tp,tp,true,true,POS_FACEUP)
end
......@@ -66,7 +70,7 @@ function cm.mfilter2(c,tc)
and #Group.FromCards(c,tc):Filter(cm.mfilter3,nil)>0
end
function cm.mfilter3(c)
return c:IsCode(60010252) and c:IsFaceup()
return c:IsCode(60010252) --and c:IsFaceup()
end
function cm.uop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -109,19 +109,10 @@ function s.common_operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.spfilter),tp,LOCATION_HAND+LOCATION_DECK+LOCATION_GRAVE+LOCATION_REMOVED,0,1,1,nil,e,tp)
if #g>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
Duel.SkipPhase(1-tp,PHASE_BATTLE,RESET_PHASE+PHASE_END,1,1)
Duel.SkipPhase(1-tp,PHASE_MAIN2,RESET_PHASE+PHASE_END,1)
end
end
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SKIP_TURN)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(0,1)
e2:SetReset(RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
Duel.RegisterEffect(e2,tp)
end
function s.damval(e,re,val,r,rp,rc)
if bit.band(r,REASON_EFFECT)~=0 then return 0
else return val end
end
function s.spfilter(c,e,tp)
return c:IsCode(70011115) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......
......@@ -31,7 +31,7 @@ function cm.initial_effect(c)
--accumulate
local e21=Effect.CreateEffect(c)
e21:SetType(EFFECT_TYPE_FIELD)
e21:SetCode(0x10000000+m)
e21:SetCode(EFFECT_FLAG_EFFECT+m)
e21:SetRange(LOCATION_MZONE)
e21:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e21:SetCondition(cm.costcon)
......@@ -73,7 +73,7 @@ function cm.costcon(e)
end
function cm.costchk(e,te_or_c,tp)
local ct=Duel.GetFlagEffect(tp,m)
return Duel.CheckLPCost(tp,ct*400)
return Duel.CheckLPCost(tp,ct*400)
end
function cm.costop(e,tp,eg,ep,ev,re,r,rp)
Duel.PayLPCost(tp,400)
......
......@@ -25,7 +25,7 @@ function s.initial_effect(c)
c:RegisterEffect(e2)
end
function s.thfilter(c)
return c:IsSetCard(0xaf0) and (c:IsAbleToHand() or c:IsAbleToRemove())
return c:IsSetCard(0xaf0) and c:IsType(TYPE_MONSTER) and (c:IsAbleToHand() or c:IsAbleToRemove())
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK,0,1,nil) 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