Skip to content

Commit 4fbe4ae

Browse files
committed
added new rush cards
1 parent 33b8ef5 commit 4fbe4ae

17 files changed

+803
-0
lines changed

rush/c160023012.lua

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
--ネクメイド・ガード
2+
--Necromaid Guard
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Increase Level by 3
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,2))
9+
e1:SetType(EFFECT_TYPE_IGNITION)
10+
e1:SetRange(LOCATION_MZONE)
11+
e1:SetCountLimit(1)
12+
e1:SetCost(s.cost)
13+
e1:SetTarget(s.target)
14+
e1:SetOperation(s.operation)
15+
c:RegisterEffect(e1)
16+
end
17+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
18+
if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,1) end
19+
end
20+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
21+
if chk==0 then return e:GetHandler():HasLevel() end
22+
end
23+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
24+
local c=e:GetHandler()
25+
--Requirement
26+
if Duel.DiscardDeck(tp,1,REASON_COST)<1 then return end
27+
--Effect
28+
c:UpdateLevel(3,RESETS_STANDARD_PHASE_END,c)
29+
if (not Duel.IsPlayerAffectedByEffect(tp,FLAG_NO_TRIBUTE)) and e:GetHandler():CanBeDoubleTribute(FLAG_DOUBLE_TRIB_ZOMBIE) then
30+
c:AddDoubleTribute(id,s.otfilter,s.eftg,RESETS_STANDARD_PHASE_END,FLAG_DOUBLE_TRIB_ZOMBIE)
31+
end
32+
end
33+
function s.otfilter(c,tp)
34+
return c:IsDoubleTribute(FLAG_DOUBLE_TRIB_ZOMBIE) and (c:IsControler(tp) or c:IsFaceup())
35+
end
36+
function s.eftg(e,c)
37+
return c:IsRace(RACE_ZOMBIE) and c:IsLevelAbove(7) and c:IsSummonableCard()
38+
end

rush/c160023013.lua

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
--ネクメイド・ライター
2+
--Necromaid Lantern
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Set 1 card
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetType(EFFECT_TYPE_IGNITION)
10+
e1:SetRange(LOCATION_MZONE)
11+
e1:SetCountLimit(1)
12+
e1:SetCondition(s.condition)
13+
e1:SetTarget(s.target)
14+
e1:SetOperation(s.operation)
15+
c:RegisterEffect(e1)
16+
end
17+
s.listed_names={160023049,160023050}
18+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
19+
local c=e:GetHandler()
20+
return c:IsSummonPhaseMain() and c:IsStatus(STATUS_SUMMON_TURN+STATUS_SPSUMMON_TURN)
21+
end
22+
function s.setfilter(c)
23+
return c:IsCode(160023049,160023050) and c:IsSSetable()
24+
end
25+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
26+
if chk==0 then return Duel.IsExistingMatchingCard(s.setfilter,tp,LOCATION_GRAVE,0,1,nil) end
27+
end
28+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
29+
--Effect
30+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
31+
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.setfilter),tp,LOCATION_GRAVE,0,1,1,nil)
32+
if #g==0 then return end
33+
Duel.SSet(tp,g)
34+
end

rush/c160023014.lua

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
--ネクメイド・タイマー
2+
--Necromaid Timer
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Special summon
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetCountLimit(1)
13+
e1:SetCondition(s.condition)
14+
e1:SetCost(s.cost)
15+
e1:SetTarget(s.target)
16+
e1:SetOperation(s.operation)
17+
c:RegisterEffect(e1)
18+
end
19+
s.listed_names={160023018}
20+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
21+
local c=e:GetHandler()
22+
return c:IsSummonPhaseMain() and c:IsStatus(STATUS_SUMMON_TURN+STATUS_SPSUMMON_TURN)
23+
end
24+
function s.costfilter(c)
25+
return c:IsFaceup() and c:GetOriginalLevel()<=4 and c:IsAbleToGraveAsCost()
26+
end
27+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
28+
if chk==0 then return Duel.IsExistingMatchingCard(s.costfilter,tp,LOCATION_MZONE,0,2,nil) end
29+
end
30+
function s.filter(c,e,sp)
31+
return (c:IsCode(160023018) or (c:IsRace(RACE_ZOMBIE) and c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsRitualMonster())) and c:IsCanBeSpecialSummoned(e,0,sp,false,false)
32+
end
33+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
34+
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
35+
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
36+
end
37+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
38+
--Requirement
39+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
40+
local g=Duel.SelectMatchingCard(tp,s.costfilter,tp,LOCATION_MZONE,0,2,2,nil)
41+
if Duel.SendtoGrave(g,REASON_COST)<2 then return end
42+
--Effect
43+
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
44+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
45+
local g2=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
46+
if #g2>0 and Duel.SpecialSummon(g2,0,tp,tp,false,false,POS_FACEUP)>0 then
47+
--Prevent non-Zombie monsters from attacking
48+
local e1=Effect.CreateEffect(e:GetHandler())
49+
e1:SetType(EFFECT_TYPE_FIELD)
50+
e1:SetCode(EFFECT_CANNOT_ATTACK)
51+
e1:SetProperty(EFFECT_FLAG_OATH)
52+
e1:SetTargetRange(LOCATION_MZONE,0)
53+
e1:SetTarget(s.ftarget)
54+
e1:SetReset(RESET_PHASE|PHASE_END)
55+
Duel.RegisterEffect(e1,tp)
56+
end
57+
end
58+
function s.ftarget(e,c)
59+
return not c:IsRace(RACE_ZOMBIE)
60+
end

rush/c160023016.lua

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
--ネクメイド・クリーナー
2+
--Necromaid Cleaner
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Send the top 2 cards of your Deck to the GY
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_DECKDES)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetCountLimit(1)
13+
e1:SetCondition(s.condition)
14+
e1:SetTarget(s.target)
15+
e1:SetOperation(s.operation)
16+
c:RegisterEffect(e1)
17+
end
18+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
19+
local c=e:GetHandler()
20+
return c:IsSummonPhaseMain() and c:IsStatus(STATUS_SUMMON_TURN+STATUS_SPSUMMON_TURN)
21+
end
22+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
23+
if chk==0 then return Duel.IsPlayerCanDiscardDeck(tp,2) end
24+
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,2)
25+
end
26+
function s.cfilter(c)
27+
return c:IsLocation(LOCATION_GRAVE) and c:IsMonster() and c:IsRace(RACE_ZOMBIE)
28+
end
29+
function s.setfilter(c,tp)
30+
return c:IsSpellTrap() and c:IsSSetable(false, 1-tp)
31+
end
32+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
33+
--Effect
34+
if Duel.DiscardDeck(tp,2,REASON_EFFECT)~=2 then return end
35+
if Duel.GetOperatedGroup():FilterCount(s.cfilter,nil)>0 and Duel.IsExistingMatchingCard(s.setfilter,tp,0,LOCATION_GRAVE,1,nil,tp) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
36+
local g=Duel.SelectMatchingCard(tp,s.setfilter,tp,0,LOCATION_GRAVE,1,1,nil,tp)
37+
Duel.HintSelection(g)
38+
Duel.SSet(1-tp,g)
39+
end
40+
end

rush/c160023017.lua

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
--ネクメイド・コック
2+
--Necromaid Cook
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Excavate the top 5 cards and send 1 to the GY
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_TOGRAVE+CATEGORY_TOHAND)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetCountLimit(1)
13+
e1:SetTarget(s.target)
14+
e1:SetOperation(s.operation)
15+
c:RegisterEffect(e1)
16+
end
17+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
18+
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>=5 end
19+
Duel.SetPossibleOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK)
20+
end
21+
function s.filter(c)
22+
return ((c:IsMonster() and c:IsRace(RACE_ZOMBIE)) or c:IsRitualSpell()) and c:IsAbleToGrave()
23+
end
24+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
25+
if Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)<5 then return end
26+
Duel.ConfirmDecktop(tp,5)
27+
local g=Duel.GetDecktopGroup(tp,5)
28+
Duel.DisableShuffleCheck()
29+
if g:IsExists(s.filter,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
30+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
31+
local sg=g:FilterSelect(tp,s.filter,1,1,nil)
32+
Duel.SendtoGrave(sg,REASON_EFFECT)
33+
Duel.BreakEffect()
34+
g:RemoveCard(sg)
35+
end
36+
local ct=#g
37+
if ct>0 then
38+
Duel.MoveToDeckBottom(ct,tp)
39+
Duel.SortDeckbottom(tp,tp,ct)
40+
end
41+
end

rush/c160023018.lua

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
--ネクメイド・キャリッジ
2+
--Necromaid Carriage
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Send the top card of your Deck to the GY and special summon
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_DECKDES+CATEGORY_SPECIAL_SUMMON)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetCountLimit(1)
13+
e1:SetTarget(s.target)
14+
e1:SetOperation(s.operation)
15+
c:RegisterEffect(e1)
16+
end
17+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
18+
if chk==0 then return Duel.IsPlayerCanDiscardDeck(tp,1) end
19+
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,1)
20+
end
21+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
22+
--Effect
23+
Duel.SendtoGrave(Duel.GetDeckbottomGroup(tp,1),REASON_EFFECT)
24+
local ct=Duel.GetOperatedGroup():GetFirst()
25+
if ct and ct:IsRace(RACE_ZOMBIE) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and ct:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
26+
if Duel.SpecialSummon(ct,0,tp,tp,false,false,POS_FACEUP) then
27+
--Cannot activate the effect of "Necromaid Carriage"
28+
local e2=Effect.CreateEffect(e:GetHandler())
29+
e2:SetDescription(aux.Stringid(id,2))
30+
e2:SetType(EFFECT_TYPE_FIELD)
31+
e2:SetCode(EFFECT_CANNOT_ACTIVATE)
32+
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
33+
e2:SetTargetRange(1,0)
34+
e2:SetValue(s.aclimit)
35+
e2:SetReset(RESET_PHASE|PHASE_END)
36+
Duel.RegisterEffect(e2,tp)
37+
end
38+
end
39+
end
40+
function s.aclimit(e,re,tp)
41+
return re:GetHandler():IsCode(id)
42+
end

rush/c160023031.lua

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
--湧軍機応炎
2+
--Oh'en the Molten Martial Machine
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Add to the hand
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_TOHAND)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetCountLimit(1)
13+
e1:SetCondition(s.condition)
14+
e1:SetTarget(s.target)
15+
e1:SetOperation(s.operation)
16+
c:RegisterEffect(e1)
17+
end
18+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
19+
local c=e:GetHandler()
20+
return c:IsSummonPhaseMain() and c:IsStatus(STATUS_SUMMON_TURN+STATUS_SPSUMMON_TURN)
21+
end
22+
function s.thfilter(c)
23+
return c:IsRace(RACE_MACHINE) and c:IsAttribute(ATTRIBUTE_FIRE) and c:IsType(TYPE_EFFECT) and c:IsDefense(800) and c:IsLevelAbove(7) and c:IsAbleToHand()
24+
end
25+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
26+
if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
27+
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
28+
end
29+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
30+
--Effect
31+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
32+
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.thfilter),tp,LOCATION_GRAVE,0,1,1,nil)
33+
if #g>0 then
34+
Duel.SendtoHand(g,nil,REASON_EFFECT)
35+
Duel.ConfirmCards(1-tp,g)
36+
end
37+
end

rush/c160023032.lua

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
--湧軍機海炎
2+
--Kaien the Molten Martial Machine
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Special summon procedure
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetType(EFFECT_TYPE_FIELD)
9+
e1:SetCode(EFFECT_SPSUMMON_PROC)
10+
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
11+
e1:SetRange(LOCATION_HAND)
12+
e1:SetCondition(s.spcon)
13+
e1:SetTarget(s.sptg)
14+
e1:SetOperation(s.spop)
15+
c:RegisterEffect(e1)
16+
--Special Summon from the hand or GY
17+
local e2=Effect.CreateEffect(c)
18+
e2:SetDescription(aux.Stringid(id,0))
19+
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
20+
e2:SetType(EFFECT_TYPE_IGNITION)
21+
e2:SetRange(LOCATION_MZONE)
22+
e2:SetCountLimit(1)
23+
e2:SetCondition(s.condition)
24+
e2:SetCost(s.cost)
25+
e2:SetTarget(s.target)
26+
e2:SetOperation(s.operation)
27+
c:RegisterEffect(e2)
28+
end
29+
function s.spcfilter(c)
30+
return c:IsMonster() and c:IsRace(RACE_MACHINE) and c:IsAttribute(ATTRIBUTE_FIRE) and not c:IsLevel(7) and not c:IsPublic()
31+
end
32+
function s.spcon(e,c)
33+
if c==nil then return true end
34+
local tp=c:GetControler()
35+
local rg=Duel.GetMatchingGroup(s.spcfilter,tp,LOCATION_HAND,0,e:GetHandler())
36+
return #rg>0 and aux.SelectUnselectGroup(rg,e,tp,1,1,aux.ChkfMMZ(1),0)
37+
end
38+
function s.sptg(e,tp,eg,ep,ev,re,r,rp,c)
39+
local rg=Duel.GetMatchingGroup(s.spcfilter,tp,LOCATION_HAND,0,e:GetHandler())
40+
local g=aux.SelectUnselectGroup(rg,e,tp,1,1,aux.ChkfMMZ(1),1,tp,HINTMSG_CONFIRM,nil,nil,true)
41+
if #g>0 then
42+
g:KeepAlive()
43+
e:SetLabelObject(g)
44+
return true
45+
end
46+
return false
47+
end
48+
function s.spop(e,tp,eg,ep,ev,re,r,rp,c)
49+
local g=e:GetLabelObject()
50+
if not g then return end
51+
Duel.ConfirmCards(1-tp,g)
52+
Duel.ShuffleHand(tp)
53+
g:DeleteGroup()
54+
end
55+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
56+
return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>=10
57+
end
58+
function s.cfilter(c)
59+
return c:IsFaceup() and c:IsAbleToDeckOrExtraAsCost()
60+
end
61+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
62+
if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_MZONE,0,1,nil) end
63+
end
64+
function s.filter(c,e,tp)
65+
return c:IsRace(RACE_MACHINE) and c:IsAttribute(ATTRIBUTE_FIRE) and c:IsLevel(9) and c:IsType(TYPE_EFFECT) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE)
66+
end
67+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
68+
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
69+
and Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_GRAVE|LOCATION_HAND,0,1,nil,e,tp)
70+
end
71+
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,LOCATION_GRAVE|LOCATION_HAND)
72+
end
73+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
74+
--Requirement
75+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
76+
local g=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_MZONE,0,1,1,nil)
77+
if Duel.SendtoDeck(g,nil,SEQ_DECKBOTTOM,REASON_COST)<1 then return end
78+
--Effect
79+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
80+
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_GRAVE|LOCATION_HAND,0,1,1,nil,e,tp)
81+
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
82+
end

0 commit comments

Comments
 (0)