Skip to content

Commit b2fdbbd

Browse files
committed
added new rush cards
1 parent a187abc commit b2fdbbd

File tree

7 files changed

+370
-0
lines changed

7 files changed

+370
-0
lines changed

rush/c160023024.lua

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
--マルチプル
2+
--Lord British's Multiple
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Name becomes "Gradius' Option" in the hand or GY
7+
local e0=Effect.CreateEffect(c)
8+
e0:SetType(EFFECT_TYPE_SINGLE)
9+
e0:SetCode(EFFECT_CHANGE_CODE)
10+
e0:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
11+
e0:SetRange(LOCATION_HAND|LOCATION_GRAVE)
12+
e0:SetValue(14291024)
13+
c:RegisterEffect(e0)
14+
--Name change
15+
local e1=Effect.CreateEffect(c)
16+
e1:SetDescription(aux.Stringid(id,1))
17+
e1:SetCategory(CATEGORY_ATKCHANGE)
18+
e1:SetType(EFFECT_TYPE_IGNITION)
19+
e1:SetRange(LOCATION_MZONE)
20+
e1:SetCountLimit(1)
21+
e1:SetCost(s.cost)
22+
e1:SetTarget(s.target)
23+
e1:SetOperation(s.operation)
24+
c:RegisterEffect(e1)
25+
end
26+
s.listed_names={14291024}
27+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
28+
if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,1) end
29+
end
30+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
31+
local c=e:GetHandler()
32+
if chk==0 then return not c:IsCode(14291024) end
33+
end
34+
function s.cfilter(c)
35+
return c:IsFaceup() and c:IsOriginalCodeRule(160023065)
36+
end
37+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
38+
--Requirement
39+
if Duel.DiscardDeck(tp,1,REASON_COST)<1 then return end
40+
--Effect
41+
local c=e:GetHandler()
42+
--Name becomes "Gradius' Option"
43+
local e1=Effect.CreateEffect(c)
44+
e1:SetType(EFFECT_TYPE_SINGLE)
45+
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
46+
e1:SetCode(EFFECT_CHANGE_CODE)
47+
e1:SetValue(14291024)
48+
e1:SetReset(RESETS_STANDARD_PHASE_END)
49+
c:RegisterEffect(e1)
50+
local sg=Duel.GetMatchingGroup(Card.IsCanChangePositionRush,tp,0,LOCATION_MZONE,nil)
51+
if Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_MZONE,0,1,nil) and #sg>0 and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
52+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_POSCHANGE)
53+
local sc=Group.Select(sg,tp,1,1,nil)
54+
if #sc==0 then return end
55+
Duel.HintSelection(sc)
56+
Duel.BreakEffect()
57+
Duel.ChangePosition(sc,POS_FACEUP_DEFENSE,POS_FACEDOWN_DEFENSE,POS_FACEUP_ATTACK,POS_FACEUP_ATTACK)
58+
end
59+
end

rush/c160023025.lua

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
--ビック・バイパー スプレッドボム
2+
--Vic Viper Spread Bomb
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Name change
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,1))
9+
e1:SetCategory(CATEGORY_ATKCHANGE)
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={10992251}
19+
function s.cfilter(c)
20+
return c:IsMonster() and c:IsAbleToGraveAsCost()
21+
end
22+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
23+
if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_HAND|LOCATION_MZONE,0,1,e:GetHandler()) end
24+
end
25+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
26+
local c=e:GetHandler()
27+
if chk==0 then return not c:IsCode(10992251) end
28+
end
29+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
30+
local c=e:GetHandler()
31+
--Requirement
32+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
33+
local g=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_HAND|LOCATION_MZONE,0,1,1,c)
34+
if Duel.SendtoGrave(g,REASON_COST)==0 then return end
35+
--Effect
36+
local c=e:GetHandler()
37+
--Name becomes "Gradius"
38+
local e1=Effect.CreateEffect(c)
39+
e1:SetType(EFFECT_TYPE_SINGLE)
40+
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
41+
e1:SetCode(EFFECT_CHANGE_CODE)
42+
e1:SetValue(10992251)
43+
e1:SetReset(RESETS_STANDARD_PHASE_END)
44+
c:RegisterEffect(e1)
45+
if Duel.IsExistingMatchingCard(Card.IsSpellTrap,tp,0,LOCATION_ONFIELD,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
46+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
47+
local g=Duel.SelectMatchingCard(tp,Card.IsSpellTrap,tp,0,LOCATION_ONFIELD,1,1,nil)
48+
Duel.HintSelection(g)
49+
Duel.BreakEffect()
50+
Duel.Destroy(g,REASON_EFFECT)
51+
end
52+
--Prevent attacking
53+
local e2=Effect.CreateEffect(e:GetHandler())
54+
e2:SetType(EFFECT_TYPE_FIELD)
55+
e2:SetCode(EFFECT_CANNOT_ATTACK)
56+
e2:SetProperty(EFFECT_FLAG_OATH)
57+
e2:SetTargetRange(LOCATION_MZONE,0)
58+
e2:SetTarget(s.ftarget)
59+
e2:SetReset(RESET_PHASE|PHASE_END)
60+
Duel.RegisterEffect(e2,tp)
61+
end
62+
function s.ftarget(e,c)
63+
return not c:IsRace(RACE_MACHINE) or c:GetBaseDefense()~=800
64+
end

rush/c160023026.lua

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
--ビック・バイパー ビギニング
2+
--Vic Viper Beginning
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Name change
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,1))
9+
e1:SetCategory(CATEGORY_ATKCHANGE)
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={10992251,14291024}
19+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
20+
if chk==0 then return Duel.CheckLPCost(tp,100) end
21+
end
22+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
23+
local c=e:GetHandler()
24+
if chk==0 then return not c:IsCode(10992251) end
25+
end
26+
function s.tgfilter(c)
27+
return c:IsMonster() and c:IsAbleToGrave()
28+
end
29+
function s.spfilter(c,e,tp)
30+
return c:IsCode(14291024) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE)
31+
end
32+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
33+
local c=e:GetHandler()
34+
--Requirement
35+
Duel.PayLPCost(tp,100)
36+
--Effect
37+
local c=e:GetHandler()
38+
--Name becomes "Gradius"
39+
local e1=Effect.CreateEffect(c)
40+
e1:SetType(EFFECT_TYPE_SINGLE)
41+
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
42+
e1:SetCode(EFFECT_CHANGE_CODE)
43+
e1:SetValue(10992251)
44+
e1:SetReset(RESETS_STANDARD_PHASE_END)
45+
c:RegisterEffect(e1)
46+
if Duel.IsExistingMatchingCard(s.tgfilter,tp,LOCATION_HAND|LOCATION_MZONE,0,1,c) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
47+
local g2=Duel.SelectMatchingCard(tp,s.tgfilter,tp,LOCATION_HAND,0,1,2,nil)
48+
local ct=Duel.SendtoGrave(g2,REASON_COST)
49+
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
50+
local g3=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
51+
if ct>0 and ft>0 and #g3>0 and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then
52+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
53+
local sg=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_GRAVE,0,1,math.min(ft,ct),nil,e,tp)
54+
if #sg>0 then
55+
Duel.BreakEffect()
56+
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
57+
end
58+
end
59+
end
60+
end

rush/c160023041.lua

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
--ビック・バイパー リップルレーザー
2+
--Vic Viper Ripple Laser
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--fusion material
7+
c:EnableReviveLimit()
8+
Fusion.AddProcMix(c,true,true,10992251,14291024)
9+
Fusion.AddContactProc(c,s.contactfil,s.contactop,nil,nil,SUMMON_TYPE_FUSION,nil,false)
10+
--Send the top 2 cards from the Deck to the GY
11+
local e1=Effect.CreateEffect(c)
12+
e1:SetDescription(aux.Stringid(id,0))
13+
e1:SetCategory(CATEGORY_DECKDES+CATEGORY_ATKCHANGE)
14+
e1:SetType(EFFECT_TYPE_IGNITION)
15+
e1:SetRange(LOCATION_MZONE)
16+
e1:SetCountLimit(1)
17+
e1:SetTarget(s.target)
18+
e1:SetOperation(s.operation)
19+
c:RegisterEffect(e1)
20+
end
21+
function s.contactfil(tp)
22+
return Duel.GetMatchingGroup(aux.FaceupFilter(Card.IsAbleToDeckOrExtraAsCost),tp,LOCATION_ONFIELD,0,nil)
23+
end
24+
function s.contactop(g,tp)
25+
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_COST+REASON_MATERIAL)
26+
end
27+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
28+
if chk==0 then return Duel.IsPlayerCanDiscardDeck(tp,2) end
29+
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,2,tp,0)
30+
end
31+
function s.atkfilter(c)
32+
return c:IsMonster() and c:IsFaceup() and c:GetAttack()>0
33+
end
34+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
35+
if Duel.DiscardDeck(tp,2,REASON_EFFECT)==0 then return end
36+
if Duel.IsExistingMatchingCard(aux.FilterMaximumSideFunctionEx(s.atkfilter),tp,0,LOCATION_MZONE,1,nil)
37+
and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
38+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKDEF)
39+
local g=Duel.SelectMatchingCard(tp,aux.FilterMaximumSideFunctionEx(s.atkfilter),tp,0,LOCATION_MZONE,1,2,nil)
40+
Duel.HintSelection(g)
41+
for tc in g:Iter() do
42+
local e1=Effect.CreateEffect(e:GetHandler())
43+
e1:SetType(EFFECT_TYPE_SINGLE)
44+
e1:SetCode(EFFECT_UPDATE_ATTACK)
45+
e1:SetValue(-800)
46+
e1:SetReset(RESETS_STANDARD_PHASE_END)
47+
tc:RegisterEffect(e1)
48+
end
49+
end
50+
end

rush/c160023053.lua

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--ハイパースピード
2+
--Hyper Speed
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Activate
7+
Fusion.RegisterSummonEff(c,s.fusfilter,s.matfilter,nil,nil,nil,s.stage2)
8+
end
9+
function s.fusfilter(c)
10+
return c:IsRace(RACE_MACHINE) and c:IsLevel(4) and c:IsDefense(800)
11+
end
12+
function s.matfilter(c)
13+
return c:IsLocation(LOCATION_HAND|LOCATION_MZONE) and c:IsAbleToGrave()
14+
end
15+
function s.stage2(e,tc,tp,mg,chk)
16+
if chk==0 then
17+
if Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_GRAVE,0,1,nil,160023056) then
18+
local e1=Effect.CreateEffect(e:GetHandler())
19+
e1:SetType(EFFECT_TYPE_SINGLE)
20+
e1:SetCode(EFFECT_UPDATE_ATTACK)
21+
e1:SetProperty(EFFECT_FLAG_COPY_INHERIT)
22+
e1:SetReset(RESET_EVENT|RESETS_STANDARD_DISABLE|RESET_PHASE|PHASE_END)
23+
e1:SetValue(500)
24+
tc:RegisterEffect(e1)
25+
end
26+
end
27+
end

rush/c160023064.lua

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
--リボーンパターン
2+
--Reborn Pattern
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:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
11+
e1:SetType(EFFECT_TYPE_ACTIVATE)
12+
e1:SetCode(EVENT_DESTROYED)
13+
e1:SetCondition(s.condition)
14+
e1:SetTarget(s.target)
15+
e1:SetOperation(s.operation)
16+
c:RegisterEffect(e1)
17+
end
18+
function s.cfilter(c,tp)
19+
return c:GetReasonPlayer()==1-tp and c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousControler(tp)
20+
and (c:IsReason(REASON_EFFECT) or (c:IsReason(REASON_BATTLE) and Duel.GetAttacker():IsControler(1-tp)))
21+
end
22+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
23+
return eg:IsExists(s.cfilter,1,nil,tp)
24+
end
25+
function s.filter(c,e,tp)
26+
return (c:IsCode(10992251) or (c:IsRace(RACE_MACHINE) and c:IsType(TYPE_FUSION) and c:IsLevel(4) and c:IsDefense(800))) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
27+
end
28+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
29+
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
30+
and Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
31+
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
32+
end
33+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
34+
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
35+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
36+
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.filter),tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
37+
if #g>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)>0
38+
and Duel.IsExistingMatchingCard(Card.IsNotMaximumModeSide,tp,0,LOCATION_ONFIELD,1,nil)
39+
and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
40+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
41+
local g=Duel.SelectMatchingCard(tp,Card.IsNotMaximumModeSide,tp,0,LOCATION_ONFIELD,1,1,nil)
42+
local g2=g:AddMaximumCheck()
43+
Duel.HintSelection(g2)
44+
Duel.BreakEffect()
45+
Duel.Destroy(g,REASON_EFFECT)
46+
end
47+
end

rush/c160023065.lua

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
--超時空戦闘機ロードブリティッシュ
2+
--Lord British Salamander
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Name change
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,1))
9+
e1:SetCategory(CATEGORY_ATKCHANGE)
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={10992251,14291024}
19+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
20+
if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,1) end
21+
end
22+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
23+
local c=e:GetHandler()
24+
if chk==0 then return not c:IsCode(10992251) end
25+
end
26+
function s.spfilter(c,e,tp)
27+
return c:IsCode(14291024) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
28+
end
29+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
30+
--Requirement
31+
if Duel.DiscardDeck(tp,1,REASON_COST)<1 then return end
32+
--Effect
33+
local c=e:GetHandler()
34+
--Name becomes "Gradius"
35+
local e1=Effect.CreateEffect(c)
36+
e1:SetType(EFFECT_TYPE_SINGLE)
37+
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
38+
e1:SetCode(EFFECT_CHANGE_CODE)
39+
e1:SetValue(10992251)
40+
e1:SetReset(RESETS_STANDARD_PHASE_END)
41+
c:RegisterEffect(e1)
42+
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(s.spfilter),tp,LOCATION_GRAVE,0,nil,e,tp)
43+
if #g>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
44+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
45+
local sg=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
46+
if #sg>0 then
47+
Duel.BreakEffect()
48+
Duel.SpecialSummon(sg,0,tp,tp,false,false,POS_FACEUP)
49+
end
50+
end
51+
--Prevent attacking
52+
local e2=Effect.CreateEffect(e:GetHandler())
53+
e2:SetType(EFFECT_TYPE_FIELD)
54+
e2:SetCode(EFFECT_CANNOT_ATTACK)
55+
e2:SetProperty(EFFECT_FLAG_OATH)
56+
e2:SetTargetRange(LOCATION_MZONE,0)
57+
e2:SetTarget(s.ftarget)
58+
e2:SetReset(RESET_PHASE|PHASE_END)
59+
Duel.RegisterEffect(e2,tp)
60+
end
61+
function s.ftarget(e,c)
62+
return not c:IsRace(RACE_MACHINE) or c:GetBaseDefense()~=800
63+
end

0 commit comments

Comments
 (0)