Skip to content

Commit 6a34ba6

Browse files
committed
added new rush cards
1 parent cde625c commit 6a34ba6

15 files changed

+613
-0
lines changed

rush/c160021016.lua

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
--P・M タートグル
2+
--Plasmatic Model Turtglue
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Make 1 of your monsters gain 1 level
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: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.IsExistingMatchingCard(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,1,nil) end
19+
end
20+
function s.filter(c)
21+
return c:HasLevel() and c:IsRace(RACE_THUNDER) and c:IsFaceup()
22+
end
23+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
24+
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_MZONE,0,1,nil) end
25+
end
26+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
27+
local c=e:GetHandler()
28+
local tg=Duel.SelectMatchingCard(tp,Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,1,1,nil)
29+
if Duel.SendtoGrave(tg,REASON_COST)<1 then return end
30+
--Effect
31+
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_MZONE,0,1,2,nil)
32+
if #g>0 then
33+
Duel.HintSelection(g)
34+
for tc in g:Iter() do
35+
tc:UpdateLevel(4,RESETS_STANDARD_PHASE_END,c)
36+
end
37+
end
38+
end

rush/c160021017.lua

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
--P・M バニッパー
2+
--Plasmatic Model Bunnipper
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Add to the hand 1 "Yellow Gadget" from the GY
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(function(e)return e:GetHandler():IsStatus(STATUS_SUMMON_TURN)end)
14+
e1:SetTarget(s.target)
15+
e1:SetOperation(s.operation)
16+
c:RegisterEffect(e1)
17+
end
18+
s.listed_names={160021016,160021056}
19+
function s.thfilter(c)
20+
return c:IsCode(160021016,160021056) and c:IsAbleToHand()
21+
end
22+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
23+
if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
24+
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
25+
end
26+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
27+
--Effect
28+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
29+
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.thfilter),tp,LOCATION_GRAVE,0,1,1,nil)
30+
if #g>0 then
31+
Duel.SendtoHand(g,nil,REASON_EFFECT)
32+
Duel.ConfirmCards(1-tp,g)
33+
--Prevent non-Thunders from attacking
34+
local e1=Effect.CreateEffect(e:GetHandler())
35+
e1:SetType(EFFECT_TYPE_FIELD)
36+
e1:SetCode(EFFECT_CANNOT_ATTACK)
37+
e1:SetProperty(EFFECT_FLAG_OATH)
38+
e1:SetTargetRange(LOCATION_MZONE,0)
39+
e1:SetTarget(s.ftarget)
40+
e1:SetReset(RESET_PHASE|PHASE_END)
41+
Duel.RegisterEffect(e1,tp)
42+
end
43+
end
44+
function s.ftarget(e,c)
45+
return not c:IsRace(RACE_THUNDER)
46+
end

rush/c160021018.lua

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
--P・M ソニックホース
2+
--Plasmatic Model Sonic Horse
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Add card to 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:SetCost(s.cost)
14+
e1:SetTarget(s.target)
15+
e1:SetOperation(s.operation)
16+
c:RegisterEffect(e1)
17+
end
18+
s.listed_names={160021021,160021057}
19+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
20+
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
21+
end
22+
function s.thfilter(c)
23+
return c:IsCode(160021021,160021057) 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+
--Requirement
31+
local c=e:GetHandler()
32+
if Duel.SendtoGrave(c,REASON_COST)<1 then return end
33+
--Effect
34+
local sg=Duel.GetMatchingGroup(s.thfilter,tp,LOCATION_GRAVE,0,nil)
35+
local tg=aux.SelectUnselectGroup(sg,1,tp,1,2,aux.dncheck,1,tp)
36+
Duel.SendtoHand(tg,nil,REASON_EFFECT)
37+
Duel.ConfirmCards(1-tp,tg)
38+
end

rush/c160021019.lua

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
--P・M スマートオウル
2+
--Plasmatic Model Smart Owl
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Change the position of an opponent's monster and gain 500 ATK
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_POSITION+CATEGORY_ATKCHANGE)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetCountLimit(1)
13+
e1:SetCondition(function(e) return e:GetHandler():IsStatus(STATUS_SUMMON_TURN) end)
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={160021058}
20+
function s.cfilter(c)
21+
return c:IsMonster() and c:IsRace(RACE_THUNDER) and c:IsLevel(4) and c:IsDefense(800) and c:IsAbleToDeckOrExtraAsCost()
22+
end
23+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
24+
if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_GRAVE,0,2,nil) end
25+
end
26+
function s.filter(c)
27+
return c:IsFaceup() and c:IsCanTurnSet() and c:IsCanChangePositionRush()
28+
end
29+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
30+
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,0,LOCATION_MZONE,1,nil) end
31+
Duel.SetOperationInfo(0,CATEGORY_POSITION,nil,1,1-tp,0)
32+
end
33+
function s.setfilter(c)
34+
return c:IsCode(160021058) and c:IsSSetable()
35+
end
36+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
37+
--Requirement
38+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
39+
local g=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_GRAVE,0,2,2,nil)
40+
Duel.HintSelection(g)
41+
if Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_COST)<1 then return end
42+
--Effect
43+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
44+
local g=Duel.SelectMatchingCard(tp,s.filter,tp,0,LOCATION_MZONE,1,1,nil)
45+
if #g>0 then
46+
Duel.HintSelection(g)
47+
Duel.ChangePosition(g,POS_FACEDOWN_DEFENSE)
48+
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.setfilter),tp,LOCATION_GRAVE,0,nil)
49+
if #g2>0 and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
50+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
51+
local sg=g2:Select(tp,1,1,nil)
52+
Duel.BreakEffect()
53+
Duel.SSet(tp,sg)
54+
end
55+
end
56+
end

rush/c160021020.lua

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
--P・M ユニバースグライダー
2+
--Plasmatic Model Universe Glider
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+
s.listed_names={160021058}
19+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
20+
return e:GetHandler():IsStatus(STATUS_SUMMON_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.setfilter(c)
27+
return c:IsCode(160021058) and c:IsSSetable()
28+
end
29+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
30+
--Effect
31+
if Duel.DiscardDeck(tp,2,REASON_EFFECT)~=2 then return end
32+
local g2=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.setfilter),tp,LOCATION_GRAVE,0,nil)
33+
if #g2>0 and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
34+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET)
35+
local sg=g2:Select(tp,1,1,nil)
36+
Duel.BreakEffect()
37+
Duel.SSet(tp,sg)
38+
end
39+
end

rush/c160021021.lua

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
--P・M レノアール
2+
--Plasmatic Model Lenoir
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Increase Level by 1
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetType(EFFECT_TYPE_IGNITION)
9+
e1:SetRange(LOCATION_MZONE)
10+
e1:SetCountLimit(1)
11+
e1:SetCondition(function(e)return e:GetHandler():IsStatus(STATUS_SUMMON_TURN)end)
12+
e1:SetCost(s.cost)
13+
e1:SetTarget(s.target)
14+
e1:SetOperation(s.operation)
15+
c:RegisterEffect(e1)
16+
aux.GlobalCheck(s,function()
17+
local ge1=Effect.CreateEffect(c)
18+
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
19+
ge1:SetCode(EVENT_DRAW)
20+
ge1:SetOperation(s.checkop)
21+
Duel.RegisterEffect(ge1,0)
22+
end)
23+
end
24+
function s.checkop(e,tp,eg,ep,ev,re,r,rp)
25+
if Duel.IsMainPhase() then
26+
Duel.RegisterFlagEffect(ep,id,RESET_PHASE|PHASE_END,0,1)
27+
end
28+
end
29+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
30+
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,1,nil) end
31+
end
32+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
33+
if chk==0 then return e:GetHandler():HasLevel() end
34+
end
35+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
36+
--Requirement
37+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
38+
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,1,1,nil)
39+
if Duel.SendtoGrave(g,REASON_COST)<1 then return end
40+
--Effect
41+
local c=e:GetHandler()
42+
c:UpdateLevel(4,RESETS_STANDARD_PHASE_END,c)
43+
if Duel.GetFlagEffect(tp,id)==0 and Duel.IsPlayerCanDraw(tp,1) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
44+
Duel.BreakEffect()
45+
Duel.Draw(tp,1,REASON_EFFECT)
46+
end
47+
end

rush/c160021022.lua

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
--P・M リステラ
2+
--Plasmatic Model Lystella
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Destroy 1 spell/trap your opponent controls
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_DESTROY)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetCountLimit(1)
13+
e1:SetCost(s.cost)
14+
e1:SetTarget(s.target)
15+
e1:SetOperation(s.operation)
16+
c:RegisterEffect(e1)
17+
end
18+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
19+
if chk==0 then return Duel.IsExistingMatchingCard(nil,tp,LOCATION_MZONE,0,1,e:GetHandler()) end
20+
end
21+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
22+
local dg=Duel.GetMatchingGroup(Card.IsSpellTrap,tp,0,LOCATION_ONFIELD,nil)
23+
if chk==0 then return #dg>0 end
24+
end
25+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
26+
local c=e:GetHandler()
27+
--Requirement
28+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
29+
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_MZONE,0,1,1,c)
30+
if Duel.SendtoGrave(g,REASON_COST)==0 then return end
31+
--Effect
32+
local dg=Duel.GetMatchingGroup(Card.IsSpellTrap,tp,0,LOCATION_ONFIELD,nil)
33+
if #dg>0 then
34+
local sg=dg:Select(tp,1,1,nil)
35+
Duel.HintSelection(sg)
36+
Duel.Destroy(sg,REASON_EFFECT)
37+
--Prevent non-Thunders from attacking
38+
local e1=Effect.CreateEffect(e:GetHandler())
39+
e1:SetType(EFFECT_TYPE_FIELD)
40+
e1:SetCode(EFFECT_CANNOT_ATTACK)
41+
e1:SetProperty(EFFECT_FLAG_OATH)
42+
e1:SetTargetRange(LOCATION_MZONE,0)
43+
e1:SetTarget(s.ftarget)
44+
e1:SetReset(RESET_PHASE|PHASE_END)
45+
Duel.RegisterEffect(e1,tp)
46+
end
47+
end
48+
function s.ftarget(e,c)
49+
return not c:IsRace(RACE_THUNDER)
50+
end

rush/c160021023.lua

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
--P・M ブラウ
2+
--Plasmatic Model Blau
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Destroy 1 monster the opponent controls
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_DESTROY)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetCountLimit(1)
13+
e1:SetCost(s.cost)
14+
e1:SetTarget(s.target)
15+
e1:SetOperation(s.operation)
16+
c:RegisterEffect(e1)
17+
end
18+
function s.cfilter(c)
19+
return c:IsRitualMonster() and c:IsRace(RACE_THUNDER) and c:IsDefense(1600) and c:IsAbleToDeckOrExtraAsCost()
20+
end
21+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
22+
if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
23+
end
24+
function s.filter(c)
25+
return c:IsFaceup() and c:IsLevelBelow(8) and not c:IsMaximumModeSide()
26+
end
27+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
28+
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,0,LOCATION_MZONE,1,nil) end
29+
end
30+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
31+
--Requirement
32+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
33+
local g=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_GRAVE,0,1,1,nil)
34+
Duel.HintSelection(g)
35+
if Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_COST)<1 then return end
36+
--Effect
37+
local g=Duel.GetMatchingGroup(s.filter,tp,0,LOCATION_MZONE,nil)
38+
if #g>0 then
39+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
40+
local dg=g:Select(tp,1,1,nil)
41+
local dg2=dg:AddMaximumCheck()
42+
Duel.HintSelection(dg2)
43+
Duel.Destroy(dg,REASON_EFFECT)
44+
--Prevent non-Thunders from attacking
45+
local e1=Effect.CreateEffect(e:GetHandler())
46+
e1:SetType(EFFECT_TYPE_FIELD)
47+
e1:SetCode(EFFECT_CANNOT_ATTACK)
48+
e1:SetProperty(EFFECT_FLAG_OATH)
49+
e1:SetTargetRange(LOCATION_MZONE,0)
50+
e1:SetTarget(s.ftarget)
51+
e1:SetReset(RESET_PHASE|PHASE_END)
52+
Duel.RegisterEffect(e1,tp)
53+
end
54+
end
55+
function s.ftarget(e,c)
56+
return not c:IsRace(RACE_THUNDER)
57+
end

0 commit comments

Comments
 (0)