Commit 76461170 authored by 未闻皂名's avatar 未闻皂名

2026/1/16 整合常用的效果

parent ddbf0760
......@@ -541,11 +541,26 @@ function RushDuel.CanDraw(desc, player, count, break_effect)
return 0
end
-- 可选操作: 盲堆
function RushDuel.CanDiscardDeck(desc, player, count, break_effect)
if Duel.IsPlayerCanDiscardDeck(player, count) and Duel.SelectYesNo(player, desc) then
function RushDuel.CanDiscardDeck(desc, player, min, max, break_effect)
if Duel.IsPlayerCanDiscardDeck(player, min) and Duel.SelectYesNo(player, desc) then
if break_effect then
Duel.BreakEffect()
end
max = max or min
local ct = Duel.GetFieldGroupCount(player, LOCATION_DECK, 0)
local ops = {}
for i = min, math.min(max, ct) do
if Duel.IsPlayerCanDiscardDeck(player, i) then
table.insert(ops, i)
end
end
local count = 0
if #ops == 1 then
count = table.remove(ops)
elseif #ops > 1 then
Duel.Hint(HINT_SELECTMSG, player, HINTMSG_TOGRAVE_COUNT)
count = Duel.AnnounceNumber(player, table.unpack(ops))
end
return Duel.DiscardDeck(player, count, REASON_EFFECT)
end
return 0
......
......@@ -38,9 +38,10 @@ FLAG_SUMMON_MAIN_PHASE = 120000012 -- 召唤·特殊召唤的主要阶段
FLAG_ATTACK_ANNOUNCED = 120000013 -- 已经进行了攻击宣言, 不能向怪兽攻击的效果失效
FLAG_ATTACH_EFFECT = 120000014 -- 通过效果赋予的效果, 不能重复叠加
FLAG_CANNOT_ATTACK_NEXT_TURN = 120231059 -- 下个回合不能攻击
FLAG_CANNOT_ATTACK_UNTIL_NEXT_TURN = 120247006 -- 直到下个回合不能攻击
FLAG_CANNOT_ATTACK_UNTIL_NEXT_TURN = 120247006 -- 直到下个回合, 不能攻击
FLAG_HAS_DRAW_IN_MAIN_PHASE = 120261037 -- 已在主要阶段抽卡
FLAG_HAS_DRAW_IN_TURN = 120294034 -- 已在这个回合抽卡
FLAG_MAX_ATTACK_TWICE_NEXT_TURN = 120285044 -- 下个回合, 对方最多攻击2次
-- 提示信息
HINTMSG_MAXSUMMON = Auxiliary.Stringid(120000000, 0) -- 极大召唤
......@@ -52,6 +53,7 @@ HINTMSG_ANNOUNCE_LEGEND = Auxiliary.Stringid(120000001, 1) -- 宣言传说怪兽
HINTMSG_SUMMON_TURN = Auxiliary.Stringid(120000002, 0) -- 在这个回合召唤
HINTMSG_SPSUMMON_TURN = Auxiliary.Stringid(120000002, 1) -- 在这个回合特殊召唤
HINTMSG_EFFECT_USED = Auxiliary.Stringid(120000002, 2) -- 已使用过效果
HINTMSG_TOGRAVE_COUNT = HINTMSG_TOGRAVE -- 请选择要送去墓地的数量
-- 异画卡: 复制Lua代码
function RushDuel.AlternateCard(code)
......
......@@ -287,6 +287,10 @@ end
function RushDuel.IsCanAttachDisableContinuous(card)
return RushDuel.IsHasContinuousEffect(card) and not card:IsHasEffect(EFFECT_DISABLE)
end
-- 条件: 可否赋予效果 - 不能发动效果
function RushDuel.IsCanAttachCannotTrigger(card)
return not card:IsHasEffect(EFFECT_CANNOT_TRIGGER)
end
-- 条件: 可以被改变种族
function RushDuel.IsCanChangeRace(card, race)
......
......@@ -16,6 +16,53 @@ function RushDuel.AddContinuousEffect(c, ...)
end
end
-- 永续效果: 召唤·特殊召唤时, 对方不能把陷阱卡发动
function RushDuel.ContinuousSummonNotChainTrap(card, flag, filter)
local e1 = Effect.CreateEffect(card)
e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(function(e, tp, eg, ep, ev, re, r, rp)
return eg:IsExists(filter, 1, nil, e, tp, eg, ep, ev, re, r, rp)
end)
e1:SetOperation(function(e, tp, eg, ep, ev, re, r, rp)
if Duel.GetCurrentChain() == 0 then
Duel.SetChainLimitTillChainEnd(RushDuel.AttachSummonNotChainTrapLimit)
elseif Duel.GetCurrentChain() == 1 then
local c=e:GetHandler()
c:RegisterFlagEffect(flag,RESET_EVENT+RESETS_STANDARD,0,1)
local e1 = Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING)
e1:SetOperation(function(e)
e:GetHandler():ResetFlagEffect(flag)
e:Reset()
end)
Duel.RegisterEffect(e1,tp)
end
end)
card:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
card:RegisterEffect(e2)
local e3=Effect.CreateEffect(card)
e3:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_END)
e3:SetRange(LOCATION_MZONE)
e3:SetOperation(function(e, tp, eg, ep, ev, re, r, rp)
local c=e:GetHandler()
if c:GetFlagEffect(flag) ~= 0 then
Duel.SetChainLimitTillChainEnd(RushDuel.AttachSummonNotChainTrapLimit)
end
c:ResetFlagEffect(flag)
end)
card:RegisterEffect(e3)
return e1, e2, e3
end
function RushDuel.AttachSummonNotChainTrapLimit(e, rp, tp)
return not (rp ~= tp and e:IsHasType(EFFECT_TYPE_ACTIVATE) and e:IsActiveType(TYPE_TRAP))
end
-- 永续效果: 攻击宣言时, 对方不能把陷阱卡发动
function RushDuel.ContinuousAttackNotChainTrap(card)
local e1 = Effect.CreateEffect(card)
......
......@@ -36,7 +36,7 @@ function RushDuel.InitRule()
local e1 = Effect.GlobalEffect()
e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_DRAW)
e1:SetCondition(function ()
e1:SetCondition(function()
return Duel.GetCurrentPhase() == PHASE_DRAW
end)
e1:SetOperation(function()
......
......@@ -14,7 +14,7 @@ function cm.initial_effect(c)
end
--Cannot Trigger
function cm.filter(c)
return c:IsFacedown() and c:IsType(TYPE_SPELL+TYPE_TRAP) and not c:IsHasEffect(EFFECT_CANNOT_TRIGGER)
return c:IsFacedown() and c:IsType(TYPE_SPELL+TYPE_TRAP) and RD.IsCanAttachCannotTrigger(c)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)<=1
......
......@@ -22,7 +22,7 @@ function cm.confilter2(c,tp)
return c:GetSummonPlayer()==tp
end
function cm.filter(c)
return c:IsFaceup() and c:IsType(TYPE_EFFECT)
return c:IsFaceup() and c:IsType(TYPE_EFFECT) and RD.IsCanAttachCannotTrigger(c)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetMatchingGroupCount(cm.confilter1,tp,LOCATION_MZONE,0,nil)==3
......@@ -35,7 +35,10 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
RD.AttachAtkDef(e,tc,200,0,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
end)
RD.CanSelectAndDoAction(aux.Stringid(m,1),aux.Stringid(m,2),cm.filter,tp,0,LOCATION_MZONE,1,1,nil,function(sg)
RD.AttachCannotTrigger(e,sg:GetFirst(),aux.Stringid(m,3),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
local e1=RD.AttachCannotTrigger(e,sg:GetFirst(),aux.Stringid(m,3),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetCondition(function(e)
return e:GetHandlerPlayer()~=tp
end)
end)
end
end
\ No newline at end of file
local cm,m=GetID()
cm.name="爱心守护"
cm.name="爱之保护"
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
......
......@@ -16,7 +16,7 @@ end
cm.cost=RD.CostSendGraveToDeckBottom(cm.costfilter,1,1)
--Cannot Trigger
function cm.setfilter(c)
return c:IsFacedown() and c:IsType(TYPE_SPELL+TYPE_TRAP) and not c:IsHasEffect(EFFECT_CANNOT_TRIGGER)
return c:IsFacedown() and c:IsType(TYPE_SPELL+TYPE_TRAP) and RD.IsCanAttachCannotTrigger(c)
end
function cm.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.setfilter,tp,0,LOCATION_ONFIELD,1,nil) end
......
......@@ -32,7 +32,7 @@ end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.DiscardDeck(tp,1,REASON_EFFECT)~=0 then
if Duel.IsExistingMatchingCard(cm.exfilter,tp,LOCATION_GRAVE,0,1,nil) then
RD.CanDiscardDeck(aux.Stringid(m,1),tp,2,true)
RD.CanDiscardDeck(aux.Stringid(m,1),tp,2,2,true)
end
end
end
\ No newline at end of file
......@@ -4,6 +4,7 @@ function cm.initial_effect(c)
--Def Up
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DEFCHANGE)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
......
......@@ -2,22 +2,7 @@ local cm,m=GetID()
cm.name="魔力动物双剑士"
function cm.initial_effect(c)
--Cannot Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.limcon)
e1:SetOperation(cm.limop1)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_END)
e3:SetRange(LOCATION_MZONE)
e3:SetOperation(cm.limop2)
c:RegisterEffect(e3)
local e1,e2,e3=RD.ContinuousSummonNotChainTrap(c,20277030,cm.filter)
--Level Up
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
......@@ -31,39 +16,9 @@ function cm.initial_effect(c)
RD.AddContinuousEffect(c,e1,e2,e3,e4)
end
--Cannot Activate
function cm.limfilter(c,tp)
function cm.filter(c,e,tp,eg,ep,ev,re,r,rp)
return c:IsFaceup() and c:IsSummonPlayer(tp) and c:IsRace(RACE_BEAST)
end
function cm.limcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.limfilter,1,nil,tp)
end
function cm.limop1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetCurrentChain()==0 then
Duel.SetChainLimitTillChainEnd(cm.chainlm)
elseif Duel.GetCurrentChain()==1 then
local c=e:GetHandler()
c:RegisterFlagEffect(20277030,RESET_EVENT+RESETS_STANDARD,0,1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING)
e1:SetOperation(cm.resetop)
Duel.RegisterEffect(e1,tp)
end
end
function cm.limop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:GetFlagEffect(20277030)~=0 then
Duel.SetChainLimitTillChainEnd(cm.chainlm)
end
c:ResetFlagEffect(20277030)
end
function cm.chainlm(e,ep,tp)
return not (ep~=tp and e:GetHandler():IsType(TYPE_TRAP) and e:IsHasType(EFFECT_TYPE_ACTIVATE))
end
function cm.resetop(e)
e:GetHandler():ResetFlagEffect(20277030)
e:Reset()
end
--Level Up
function cm.target(e,c)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsRace(RACE_BEAST)
......
......@@ -31,6 +31,6 @@ function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if RD.Draw()~=0 and Duel.IsExistingMatchingCard(cm.exfilter,tp,LOCATION_GRAVE,0,2,nil) then
RD.CanDiscardDeck(aux.Stringid(m,1),tp,3,true)
RD.CanDiscardDeck(aux.Stringid(m,1),tp,3,3,true)
end
end
\ No newline at end of file
......@@ -10,7 +10,7 @@ function cm.initial_effect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetValue(cm.limit)
e1:SetValue(cm.splimit)
c:RegisterEffect(e1)
--Cannot To Hand & Deck & Extra
local e2=Effect.CreateEffect(c)
......@@ -38,8 +38,8 @@ function cm.matfilter2(c)
return c:IsAttackBelow(1500)
end
--Special Summon Condition
function cm.limit(e,se,sp,st)
return se:GetHandler():IsCode(list[1],list[2])
function cm.splimit(e,se,sp,st)
return se and se:GetHandler():IsCode(list[1],list[2])
end
--Cannot To Hand & Deck & Extra
function cm.condition(e)
......
......@@ -8,22 +8,7 @@ function cm.initial_effect(c)
--Contact Fusion
RD.EnableContactFusion(c,aux.Stringid(m,0))
--Cannot Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.limcon)
e1:SetOperation(cm.limop1)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_CHAIN_END)
e3:SetRange(LOCATION_MZONE)
e3:SetOperation(cm.limop2)
c:RegisterEffect(e3)
local e1,e2,e3=RD.ContinuousSummonNotChainTrap(c,20279003,cm.filter)
--Continuous Effect
RD.AddContinuousEffect(c,e1,e2,e3,RD.EnableChangeCode(c,list[2],LOCATION_MZONE))
end
......@@ -33,36 +18,6 @@ function cm.matfilter(c)
return c:IsLevelBelow(4) and c:IsRace(RACE_WINDBEAST)
end
--Cannot Activate
function cm.limfilter(c,tp)
function cm.filter(c,e,tp,eg,ep,ev,re,r,rp)
return c:IsFaceup() and c:IsSummonPlayer(tp)
end
function cm.limcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(cm.limfilter,1,nil,tp)
end
function cm.limop1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetCurrentChain()==0 then
Duel.SetChainLimitTillChainEnd(cm.chainlm)
elseif Duel.GetCurrentChain()==1 then
local c=e:GetHandler()
c:RegisterFlagEffect(20279003,RESET_EVENT+RESETS_STANDARD,0,1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING)
e1:SetOperation(cm.resetop)
Duel.RegisterEffect(e1,tp)
end
end
function cm.limop2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:GetFlagEffect(20279003)~=0 then
Duel.SetChainLimitTillChainEnd(cm.chainlm)
end
c:ResetFlagEffect(20279003)
end
function cm.chainlm(e,ep,tp)
return not (ep~=tp and e:GetHandler():IsType(TYPE_TRAP) and e:IsHasType(EFFECT_TYPE_ACTIVATE))
end
function cm.resetop(e)
e:GetHandler():ResetFlagEffect(20279003)
e:Reset()
end
\ No newline at end of file
......@@ -32,8 +32,10 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if c:IsFaceup() and c:IsRelateToEffect(e) then
RD.ChangeCode(e,c,list[2],RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
end
if Duel.GetFlagEffect(1-tp,FLAG_MAX_ATTACK_TWICE_NEXT_TURN)~=0 then return end
local e1,e2=RD.CreateLimitAttackCountEffect(e,aux.Stringid(m,2),2,tp,0,1,RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
e2:SetCondition(cm.atkcon)
Duel.RegisterFlagEffect(1-tp,FLAG_MAX_ATTACK_TWICE_NEXT_TURN,RESET_PHASE+PHASE_END+RESET_OPPO_TURN,0,1)
end
function cm.atkcon(e)
return Duel.GetTurnPlayer()~=e:GetHandlerPlayer()
......
......@@ -14,7 +14,7 @@ function cm.initial_effect(c)
end
--Cannot Trigger
function cm.filter(c)
return c:IsFacedown() and c:IsType(TYPE_SPELL+TYPE_TRAP) and not c:IsHasEffect(EFFECT_CANNOT_TRIGGER)
return c:IsFacedown() and c:IsType(TYPE_SPELL+TYPE_TRAP) and RD.IsCanAttachCannotTrigger(c)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_EXTRA,0)==0
......
local cm,m=GetID()
cm.name="神兽王 巴巴罗斯"
function cm.initial_effect(c)
--Summon Procedure
RD.AddSummonProcedureZero(c,aux.Stringid(m,0),nil,cm.zeroop)
RD.AddSummonProcedureThree(c,aux.Stringid(m,1))
--Destroy
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,2))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Summon Procedure
function cm.zeroop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local e1 = Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_BASE_ATTACK)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(1900)
e1:SetReset(RESET_EVENT + 0xff0000)
c:RegisterEffect(e1)
end
--Destroy
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return RD.IsSummonTurn(c) and c:IsSummonType(SUMMON_VALUE_THREE)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_ONFIELD,nil)
if g:GetCount()>0 then
Duel.Destroy(g,REASON_EFFECT)
end
end
\ No newline at end of file
local cm,m=GetID()
cm.name="冥迹之河灵"
function cm.initial_effect(c)
--To Hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_GRAVE_ACTION)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(RD.ConditionSummonOrSpecialSummonMainPhase)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--To Hand
function cm.thfilter(c)
return c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_BEASTWARRIOR)
and c:IsAttack(1000) and c:IsAbleToHand()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(HINTMSG_ATOHAND,aux.NecroValleyFilter(cm.thfilter),tp,LOCATION_GRAVE,0,1,1,nil,function(g)
RD.SendToHandAndExists(g,e,tp,REASON_EFFECT)
end)
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateAttackLimitEffect(e,cm.atktg,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
RD.CreateRaceCannotAttackEffect(e,aux.Stringid(m,1),RACE_ALL-RACE_BEASTWARRIOR,tp,1,0,RESET_PHASE+PHASE_END)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
function cm.atktg(e,c)
return not (c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_BEASTWARRIOR))
end
\ No newline at end of file
local cm,m=GetID()
local list={120300047,120300048,120300061,120300046}
cm.name="伊思里亚的依代"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Discard Deck
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DECKDES+CATEGORY_TOHAND+CATEGORY_GRAVE_ACTION)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(RD.ConditionSummonOrSpecialSummonMainPhase)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Discard Deck
function cm.thfilter1(c)
return c:IsCode(list[1],list[2],list[3]) and c:IsAbleToHand()
end
function cm.thfilter2(c)
return c:IsCode(list[4]) and c:IsAbleToHand()
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDiscardDeck(tp,2) end
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,2)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if RD.SendDeckTopToGraveAndExists(tp,2) then
RD.CanSelectAndDoAction(aux.Stringid(m,1),HINTMSG_ATOHAND,aux.NecroValleyFilter(cm.thfilter1),tp,LOCATION_GRAVE,0,1,1,nil,function(g)
Duel.BreakEffect()
if RD.SendToHandAndExists(g,e,tp,REASON_EFFECT) then
RD.CanSelectAndDoAction(aux.Stringid(m,2),HINTMSG_ATOHAND,aux.NecroValleyFilter(cm.thfilter2),tp,LOCATION_GRAVE,0,1,1,nil,function(sg)
RD.SendToHandAndExists(sg,e,tp,REASON_EFFECT)
end)
end
end)
end
end
\ No newline at end of file
local cm,m=GetID()
local list={120300009,120300008}
cm.name="冥迹之审判者"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Special Summon Procedure
RD.AddHandSpecialSummonProcedure(c,aux.Stringid(m,0),cm.spcon,nil,nil,nil,POS_FACEUP_DEFENSE)
--Discard Deck
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,1))
e1:SetCategory(CATEGORY_DECKDES+CATEGORY_TOHAND+CATEGORY_TODECK+CATEGORY_GRAVE_ACTION)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(RD.ConditionSummonOrSpecialSummonMainPhase)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Special Summon Procedure
function cm.spconfilter(c)
return c:IsFaceup() and c:IsCode(list[1],list[2])
end
function cm.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(cm.spconfilter,tp,LOCATION_ONFIELD,0,1,nil)
end
--Discard Deck
function cm.thfilter1(c)
return c:IsCode(list[1],list[2],list[3]) and c:IsAbleToHand()
end
function cm.thfilter2(c)
return c:IsCode(list[4]) and c:IsAbleToHand()
end
function cm.tdfilter(c)
return c:IsRace(RACE_BEASTWARRIOR) and c:IsAbleToDeck()
end
cm.cost=RD.CostSendDeckTopToGrave(1)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(1-tp,FLAG_MAX_ATTACK_TWICE_NEXT_TURN)==0 end
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local e1,e2=RD.CreateLimitAttackCountEffect(e,aux.Stringid(m,2),2,tp,0,1,RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
e2:SetCondition(cm.atkcon)
Duel.RegisterFlagEffect(1-tp,FLAG_MAX_ATTACK_TWICE_NEXT_TURN,RESET_PHASE+PHASE_END+RESET_OPPO_TURN,0,1)
RD.CanSelectAndDoAction(aux.Stringid(m,2),HINTMSG_TODECK,aux.NecroValleyFilter(cm.tdfilter),tp,LOCATION_GRAVE,0,3,3,nil,function(g)
RD.SendToDeckAndExists(g,e,tp,REASON_EFFECT)
end)
end
function cm.atkcon(e)
return Duel.GetTurnPlayer()~=e:GetHandlerPlayer()
end
\ No newline at end of file
local cm,m=GetID()
cm.name="冥迹之指挥官"
function cm.initial_effect(c)
--Indes
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(LOCATION_ONFIELD,0)
e1:SetTarget(cm.target1)
e1:SetValue(cm.indval)
c:RegisterEffect(e1)
--Atk Up
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_MZONE)
e2:SetTargetRange(LOCATION_MZONE,0)
e2:SetTarget(cm.target2)
e2:SetValue(500)
c:RegisterEffect(e2)
--Continuous Effect
RD.AddContinuousEffect(c,e1,e2)
end
--Indes
cm.indval=RD.ValueEffectIndesType(0,TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP,true)
function cm.target1(e,c)
return c==e:GetHandler() or c:IsType(TYPE_SPELL+TYPE_TRAP)
end
--Atk Up
function cm.target2(e,c)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_BEASTWARRIOR)
end
\ No newline at end of file
local cm,m=GetID()
cm.name="月军团 哔哔鸟"
function cm.initial_effect(c)
--Draw
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Draw
function cm.costfilter(c)
return c:IsAbleToDeckAsCost()
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>9
end
function cm.max(e,tp,eg,ep,ev,re,r,rp,chk)
if Duel.IsPlayerCanDraw(tp,2) then
return 2
else
return 1
end
end
cm.cost=RD.CostSendMatchToDeckSort(cm.costfilter,LOCATION_HAND+LOCATION_ONFIELD,1,cm.max,true,SEQ_DECKBOTTOM,false,true,nil,nil,Group.GetCount)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
RD.TargetDraw(tp,e:GetLabel())
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.Draw()
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateCannotActivateEffect(e,aux.Stringid(m,1),cm.aclimit,tp,1,0,RESET_PHASE+PHASE_END)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
function cm.aclimit(e,re,tp)
local tc=re:GetHandler()
return re:IsActiveType(TYPE_MONSTER) and not (tc:IsAttribute(ATTRIBUTE_EARTH) and tc:IsRace(RACE_GALAXY))
end
\ No newline at end of file
local cm,m=GetID()
local list={120252027}
cm.name="月军团 希拉鼠"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--To Hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--To Hand
function cm.confilter(c)
return c:IsType(TYPE_MONSTER)
end
function cm.filter(c)
return (cm.filter1(c) or cm.filter2(c)) and c:IsAbleToHand()
end
function cm.filter1(c)
return not c:IsLevel(2) and c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_GALAXY)
end
function cm.filter2(c)
return c:IsCode(list[1])
end
function cm.check(g)
if g:GetCount()<2 then return true end
local tc1=g:GetFirst()
local tc2=g:GetNext()
return (cm.filter1(tc1) and cm.filter2(tc2)) or (cm.filter1(tc2) and cm.filter2(tc1))
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(cm.confilter,tp,LOCATION_GRAVE,0,5,nil)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>3 end
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<4 then return end
local sg,g=RD.RevealDeckTopAndCanSelectGroup(tp,4,aux.Stringid(m,1),HINTMSG_ATOHAND,cm.filter,cm.check,1,2)
if sg:GetCount()>0 then
Duel.DisableShuffleCheck()
RD.SendToHandAndExists(sg,e,tp,REASON_EFFECT)
Duel.ShuffleHand(tp)
end
local ct=g:GetCount()
if ct>0 then
Duel.SortDecktop(tp,tp,ct)
RD.SendDeckTopToBottom(tp,ct)
end
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateAttackLimitEffect(e,cm.atktg,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
RD.CreateRaceCannotAttackEffect(e,aux.Stringid(m,2),RACE_ALL-RACE_GALAXY,tp,1,0,RESET_PHASE+PHASE_END)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
function cm.atktg(e,c)
return not (c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_GALAXY))
end
\ No newline at end of file
local cm,m=GetID()
cm.name="月军团 呲刺猬"
function cm.initial_effect(c)
--Lock Attack
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_TODECK+CATEGORY_GRAVE_ACTION+CATEGORY_DEFCHANGE)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Atk Down
function cm.costfilter(c,e,tp)
return c:IsFaceup() and RD.IsCanChangePosition(c,e,tp,REASON_COST)
end
function cm.filter(c)
return c:IsFaceup() and c:IsLevelBelow(8) and c:GetFlagEffect(FLAG_CANNOT_ATTACK_NEXT_TURN)==0
end
function cm.tdfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsAbleToDeck()
end
cm.cost=RD.CostChangePosition(cm.costfilter,1,1)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,0,LOCATION_MZONE,1,nil) end
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,0,LOCATION_MZONE,1,1,nil,function(g)
local tc=g:GetFirst()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(m,2))
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK)
e1:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e1:SetLabel(1-tp)
e1:SetCondition(cm.atkcon)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
tc:RegisterEffect(e1)
if not tc:IsImmuneToEffect(e) then
tc:RegisterFlagEffect(FLAG_CANNOT_ATTACK_NEXT_TURN,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN,0,1)
RD.CanSelectAndDoAction(aux.Stringid(m,2),HINTMSG_TODECK,aux.NecroValleyFilter(cm.tdfilter),tp,LOCATION_GRAVE,0,1,1,nil,function(g)
local c=e:GetHandler()
if RD.SendToDeckAndExists(g,e,tp,REASON_EFFECT)
and c:IsFaceup() and c:IsRelateToEffect(e) then
RD.AttachAtkDef(e,c,0,500,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
end
end)
end
end)
end
function cm.atkcon(e)
return Duel.GetTurnPlayer()==e:GetLabel()
end
\ No newline at end of file
local cm,m=GetID()
cm.name="月军团 提莫兔"
function cm.initial_effect(c)
--Draw
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Draw
function cm.costfilter(c)
return (c:IsLocation(LOCATION_HAND) or (c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_GALAXY)))
and c:IsAbleToDeckAsCost()
end
function cm.check(g)
return g:GetClassCount(Card.GetLocation)==g:GetCount()
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return RD.IsSummonTurn(e:GetHandler()) and Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>9
end
cm.cost=RD.CostSendGroupToDeckSort(cm.costfilter,cm.check,LOCATION_HAND+LOCATION_GRAVE,2,2,true,SEQ_DECKBOTTOM,true,false)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end
RD.TargetDraw(tp,2)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.Draw()
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateAttackLimitEffect(e,cm.atktg,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
RD.CreateRaceCannotAttackEffect(e,aux.Stringid(m,1),RACE_ALL-RACE_GALAXY,tp,1,0,RESET_PHASE+PHASE_END)
RD.CreateNoEffectDamageEffect(e,aux.Stringid(m,2),cm.damval,tp,0,1,RESET_PHASE+PHASE_END)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
function cm.atktg(e,c)
return not (c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_GALAXY))
end
function cm.damval(e,re,val,r,rp,rc)
if bit.band(r,REASON_EFFECT)~=0 then return 0
else return val end
end
\ No newline at end of file
local cm,m=GetID()
local list={120300046}
cm.name="冥迹神 伊思里亚"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
RD.AddRitualProcedure(c)
--Special Summon Condition
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetValue(cm.splimit)
c:RegisterEffect(e1)
--Indes
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(cm.indval)
c:RegisterEffect(e2)
--Cannot Activate
local e3,e4,e5=RD.ContinuousSummonNotChainTrap(c,20300037,cm.filter)
--Atk Up
local e6=Effect.CreateEffect(c)
e6:SetType(EFFECT_TYPE_FIELD)
e6:SetCode(EFFECT_UPDATE_ATTACK)
e6:SetRange(LOCATION_MZONE)
e6:SetTargetRange(LOCATION_MZONE,0)
e6:SetCondition(cm.condition)
e6:SetTarget(cm.target)
e6:SetValue(3000)
c:RegisterEffect(e6)
--Pierce
local e7=Effect.CreateEffect(c)
e7:SetDescription(aux.Stringid(m,1))
e7:SetType(EFFECT_TYPE_FIELD)
e7:SetCode(EFFECT_PIERCE)
e7:SetProperty(EFFECT_FLAG_CLIENT_HINT)
e7:SetRange(LOCATION_MZONE)
e7:SetTargetRange(LOCATION_MZONE,0)
e7:SetCondition(cm.condition)
e7:SetTarget(cm.target)
c:RegisterEffect(e7)
--Continuous Effect
RD.AddContinuousEffect(c,e2,e3,e4,e5,e6,e7)
end
--Special Summon Limit
function cm.splimit(e,se,sp,st)
return se and se:GetHandler():IsCode(list[1])
end
--Indes
cm.indval=RD.ValueEffectIndesType(TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP,TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP,true)
--Cannot Activate
function cm.filter(c,e,tp,eg,ep,ev,re,r,rp)
return c:IsFaceup() and c:IsSummonPlayer(tp) and c:IsRace(RACE_BEASTWARRIOR)
end
--Atk Up
function cm.condition(e)
return Duel.GetTurnPlayer()==e:GetHandlerPlayer()
end
function cm.target(e,c)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_BEASTWARRIOR)
and c~=e:GetHandler()
end
\ No newline at end of file
local cm,m=GetID()
local list={120300047,120300048,120300061,120300008,120300037}
cm.name="冥迹祭-伊思里亚的降灵-"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Activate
local e1=RD.CreateRitualEffect(c,RITUAL_ORIGINAL_LEVEL_GREATER,cm.matfilter,cm.spfilter)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(cm.cost)
c:RegisterEffect(e1)
end
--Activate
function cm.matfilter(c)
return c:IsFaceup() and c:IsOnField() and c:IsCode(list[4])
end
function cm.spfilter(c)
return c:IsCode(list[5])
end
function cm.costfilter(c)
return (c:IsLocation(LOCATION_HAND) or c:IsFacedown()) and c:IsCode(list[1],list[2],list[3])
and c:IsAbleToGraveAsCost()
end
function cm.check(g)
return g:GetClassCount(Card.GetCode)==g:GetCount()
end
cm.cost=RD.CostSendHandOrFieldSubToGrave(cm.costfilter,cm.check,3,3,true)
\ No newline at end of file
local cm,m=GetID()
cm.name="伊思里亚的供物"
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_RECOVER+CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
end
--Activate
function cm.atkfilter(c)
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_BEASTWARRIOR)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
RD.TargetRecover(tp,600)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if RD.Recover()~=0 then
RD.CanSelectAndDoAction(aux.Stringid(m,1),aux.Stringid(m,2),cm.atkfilter,tp,LOCATION_MZONE,0,1,1,nil,function(g)
RD.AttachAtkDef(e,g:GetFirst(),600,0,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
end)
end
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateAttackLimitEffect(e,cm.atktg,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
RD.CreateRaceCannotAttackEffect(e,aux.Stringid(m,1),RACE_ALL-RACE_BEASTWARRIOR,tp,1,0,RESET_PHASE+PHASE_END)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
function cm.atktg(e,c)
return not (c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_BEASTWARRIOR))
end
\ No newline at end of file
local cm,m=GetID()
cm.name="伊思里亚的棺"
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_GRAVE_SPSUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
end
--Activate
function cm.costfilter(c,e,tp)
return c:IsAbleToGraveAsCost() and Duel.GetMZoneCount(tp,c)>0
end
function cm.spfilter(c,e,tp)
return c:IsLevel(7) and c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_BEASTWARRIOR)
and RD.IsCanBeSpecialSummoned(c,e,tp,POS_FACEUP)
end
cm.cost=RD.CostSendMZoneToGrave(cm.costfilter,1,1,false)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return (e:IsCostChecked() or Duel.GetMZoneCount(tp)>0)
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndSpecialSummon(aux.NecroValleyFilter(cm.spfilter),tp,LOCATION_GRAVE,0,1,1,nil,e,POS_FACEUP)
if Duel.GetFlagEffect(tp,m)~=0 then return end
RD.CreateAttackLimitEffect(e,cm.atktg,tp,LOCATION_MZONE,0,RESET_PHASE+PHASE_END)
RD.CreateRaceCannotAttackEffect(e,aux.Stringid(m,1),RACE_ALL-RACE_BEASTWARRIOR,tp,1,0,RESET_PHASE+PHASE_END)
Duel.RegisterFlagEffect(tp,m,RESET_PHASE+PHASE_END,0,1)
end
function cm.atktg(e,c)
return not (c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_BEASTWARRIOR))
end
\ No newline at end of file
local cm,m=GetID()
cm.name="心之朋友"
function cm.initial_effect(c)
--Activate
local e1=RD.CreateRitualEffect(c,RITUAL_CURRENT_LEVEL_EQUAL,cm.matfilter,cm.spfilter,nil,0,0,nil,RushDuel.RitualToDeck,nil,cm.operation)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
end
--Activate
function cm.matfilter(c)
return c:IsFaceup() and c:IsOnField() and c:IsRace(RACE_GALAXY) and c:IsAbleToDeck()
end
function cm.spfilter(c,e,tp,mat)
return c:IsAttribute(ATTRIBUTE_EARTH) and c:IsRace(RACE_GALAXY)
and not mat:IsExists(Card.IsCode,1,nil,c:GetCode())
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp,mat,rc)
RD.CanDiscardDeck(aux.Stringid(m,1),1-tp,1,mat:GetCount())
end
\ No newline at end of file
local cm,m=GetID()
local list={120300050}
cm.name="悠久之乡-斯派克托利卡-"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(cm.condition)
c:RegisterEffect(e1)
-- Ritual Expend
end
--Activate
function cm.confilter(c)
return c:IsType(TYPE_MONSTER)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(cm.confilter,tp,LOCATION_GRAVE,0,5,nil)
end
\ No newline at end of file
local cm,m=GetID()
cm.name="伊思里亚的灵魂"
function cm.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e2)
end
--Activate
function cm.confilter(c,tp)
return c:GetSummonPlayer()==tp
end
function cm.filter(c)
return c:IsFaceup() and c:IsType(TYPE_EFFECT) and c:IsLevelBelow(8)
and RD.IsCanAttachCannotTrigger(c)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==1-tp and eg:IsExists(cm.confilter,1,nil,1-tp)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end
end
function cm.activate(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,0,LOCATION_MZONE,1,1,nil,function(g)
local e1=RD.AttachCannotTrigger(e,g:GetFirst(),aux.Stringid(m,3),RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetCondition(function(e)
return e:GetHandlerPlayer()~=tp
end)
RD.CanDraw(aux.Stringid(m,2),tp,1)
end)
end
\ No newline at end of file
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