Skip to content

Commit 15ff3e8

Browse files
committed
added new rush cards
1 parent 4f947e9 commit 15ff3e8

File tree

5 files changed

+249
-0
lines changed

5 files changed

+249
-0
lines changed

rush/c160024001.lua

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
--ヴォイドヴェルグ・ストーク
2+
--Voidvelg Stork
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_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={160018001,160010025}
19+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
20+
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,1,nil) or Duel.IsPlayerCanDiscardDeckAsCost(tp,2) 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(160018001) end
25+
end
26+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
27+
--Requirement
28+
local b1=Duel.IsExistingMatchingCard(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,1,nil)
29+
local b2=Duel.IsPlayerCanDiscardDeckAsCost(tp,2)
30+
local op=Duel.SelectEffect(tp,{b1,aux.Stringid(id,1)},{b2,aux.Stringid(id,2)})
31+
local requiem=false
32+
if op==1 then
33+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
34+
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,1,1,nil)
35+
if Duel.SendtoGrave(g,REASON_COST)==0 then return end
36+
requiem=true
37+
elseif op==2 then
38+
if Duel.DiscardDeck(tp,2,REASON_COST)<0 then return end
39+
end
40+
--Effect
41+
local c=e:GetHandler()
42+
local code=160018001
43+
if not c:IsCode(160010025) and requiem and Duel.SelectYesNo(tp,aux.Stringid(id,3)) then
44+
code=160010025
45+
end
46+
--Name change
47+
local e1=Effect.CreateEffect(c)
48+
e1:SetType(EFFECT_TYPE_SINGLE)
49+
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
50+
e1:SetCode(EFFECT_CHANGE_CODE)
51+
e1:SetValue(code)
52+
e1:SetReset(RESETS_STANDARD_PHASE_END)
53+
c:RegisterEffect(e1)
54+
end

rush/c160024031.lua

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
--ヴォイドヴェルグ・ビヨンドプローブ
2+
--Voidvelg Beyond Probe
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Fusion Procedure
7+
c:EnableReviveLimit()
8+
Fusion.AddProcMixN(c,true,true,160018001,1,s.ffilter,1)
9+
Fusion.AddContactProc(c,s.contactfil,s.contactop,nil,nil,SUMMON_TYPE_FUSION,nil,false)
10+
--Destroy 1 face-down card on the field
11+
local e1=Effect.CreateEffect(c)
12+
e1:SetDescription(aux.Stringid(id,0))
13+
e1:SetCategory(CATEGORY_DESTROY)
14+
e1:SetType(EFFECT_TYPE_IGNITION)
15+
e1:SetRange(LOCATION_MZONE)
16+
e1:SetCountLimit(1)
17+
e1:SetCondition(s.condition)
18+
e1:SetTarget(s.target)
19+
e1:SetOperation(s.operation)
20+
c:RegisterEffect(e1)
21+
end
22+
s.named_material={160018001}
23+
function s.ffilter(c,fc,sumtype,tp)
24+
return c:IsAttribute(ATTRIBUTE_DARK,fc,sumtype,tp) and c:IsLevelBelow(4)
25+
end
26+
function s.contactfil(tp)
27+
return Duel.GetMatchingGroup(aux.FaceupFilter(Card.IsAbleToDeckOrExtraAsCost),tp,LOCATION_ONFIELD,0,nil)
28+
end
29+
function s.contactop(g,tp)
30+
Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_COST+REASON_MATERIAL)
31+
end
32+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
33+
local c=e:GetHandler()
34+
return c:IsSummonPhaseMain() and c:IsStatus(STATUS_SPSUMMON_TURN) and c:IsSummonType(SUMMON_TYPE_FUSION)
35+
end
36+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
37+
local dg=Duel.GetMatchingGroup(Card.IsFacedown,tp,0,LOCATION_STZONE,nil)
38+
if chk==0 then return #dg>0 end
39+
end
40+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
41+
--Effect
42+
local dg=Duel.GetMatchingGroup(Card.IsFacedown,tp,0,LOCATION_STZONE,nil)
43+
if #dg>0 then
44+
local sg=dg:Select(tp,1,1,nil)
45+
Duel.HintSelection(sg)
46+
Duel.Destroy(sg,REASON_EFFECT)
47+
end
48+
--Prevent non-DARK Galaxy from attacking
49+
local e1=Effect.CreateEffect(e:GetHandler())
50+
e1:SetType(EFFECT_TYPE_FIELD)
51+
e1:SetCode(EFFECT_CANNOT_ATTACK)
52+
e1:SetTargetRange(LOCATION_MZONE,0)
53+
e1:SetTarget(s.atktg)
54+
e1:SetReset(RESET_PHASE|PHASE_END)
55+
Duel.RegisterEffect(e1,tp)
56+
end
57+
function s.atktg(e,c)
58+
return not (c:IsRace(RACE_GALAXY) and c:IsAttribute(ATTRIBUTE_DARK))
59+
end

rush/c160024032.lua

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
--エテルナム・ヴォイドヴェルグ・レクイエム
2+
--Eternum Voidvelg Requiem
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--fusion material
7+
c:EnableReviveLimit()
8+
Fusion.AddProcMixRep(c,true,true,s.matfilter,1,99,160010025)
9+
--Spells/Traps cannot be returned
10+
local e1=Effect.CreateEffect(c)
11+
e1:SetType(EFFECT_TYPE_FIELD)
12+
e1:SetCode(EFFECT_CANNOT_TO_DECK)
13+
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_SET_AVAILABLE)
14+
e1:SetRange(LOCATION_MZONE)
15+
e1:SetCondition(s.indcond)
16+
e1:SetTarget(s.indtg2)
17+
e1:SetTargetRange(LOCATION_MZONE,0)
18+
e1:SetValue(s.value)
19+
c:RegisterEffect(e1)
20+
local e2=e1:Clone()
21+
e2:SetCode(EFFECT_CANNOT_TO_HAND)
22+
c:RegisterEffect(e2)
23+
--spsummon success
24+
local e3=Effect.CreateEffect(c)
25+
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
26+
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
27+
e3:SetRange(LOCATION_MZONE)
28+
e3:SetOperation(s.sucop)
29+
c:RegisterEffect(e3)
30+
end
31+
s.named_material={160015003}
32+
function s.matfilter(c,scard,sumtype,tp)
33+
return c:IsAttribute(ATTRIBUTE_DARK,scard,sumtype,tp) and c:IsRace(RACE_GALAXY,scard,sumtype,tp)
34+
end
35+
function s.indcond(e)
36+
return Duel.IsTurnPlayer(1-e:GetHandlerPlayer())
37+
end
38+
function s.indtg2(e,c)
39+
return c==e:GetHandler()
40+
end
41+
function s.value(e,re,rp)
42+
return nil~=re
43+
end
44+
function s.sucop(e,tp,eg,ep,ev,re,r,rp)
45+
local c=e:GetHandler()
46+
if c:IsSummonType(SUMMON_TYPE_FUSION) and c:GetMaterialCount()>=3 then
47+
--Cannot be destroyed
48+
local e1=Effect.CreateEffect(c)
49+
e1:SetDescription(3001)
50+
e1:SetType(EFFECT_TYPE_SINGLE)
51+
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
52+
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE|EFFECT_FLAG_CLIENT_HINT)
53+
e1:SetRange(LOCATION_MZONE)
54+
e1:SetValue(1)
55+
e1:SetReset(RESET_EVENT|RESETS_STANDARD)
56+
c:RegisterEffect(e1)
57+
end
58+
end

rush/c160024042.lua

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
--シャドウフォース・エクスプロージョン
2+
--Shadowforce Explosion
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Add monsters from the grave to the hand
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetType(EFFECT_TYPE_ACTIVATE)
10+
e1:SetCategory(CATEGORY_TOHAND)
11+
e1:SetCode(EVENT_FREE_CHAIN)
12+
e1:SetCondition(s.condition)
13+
e1:SetCost(s.cost)
14+
e1:SetTarget(s.target)
15+
e1:SetOperation(s.activate)
16+
c:RegisterEffect(e1)
17+
aux.GlobalCheck(s,function()
18+
local ge1=Effect.CreateEffect(c)
19+
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
20+
ge1:SetCode(EVENT_CHAIN_SOLVED)
21+
ge1:SetOperation(s.checkop)
22+
Duel.RegisterEffect(ge1,0)
23+
end)
24+
end
25+
s.listed_names={160024042}
26+
function s.checkop(e,tp,eg,ep,ev,re,r,rp)
27+
if re:GetHandler():IsCode(160024042) then
28+
Duel.RegisterFlagEffect(rp,id,RESET_PHASE|PHASE_END,0,1)
29+
end
30+
end
31+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
32+
return Duel.GetFlagEffect(tp,id)==0
33+
end
34+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
35+
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeckOrExtraAsCost,tp,LOCATION_HAND,0,1,e:GetHandler()) end
36+
end
37+
function s.filter(c)
38+
return c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_GALAXY) and c:IsLevelBelow(8) and c:IsAbleToHand()
39+
end
40+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
41+
local g=Duel.GetMatchingGroup(s.filter,tp,LOCATION_GRAVE,0,nil)
42+
if chk==0 then return aux.SelectUnselectGroup(g,e,tp,2,2,s.rescon,0) end
43+
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
44+
end
45+
function s.rescon(sg,e,tp,mg)
46+
return sg:GetClassCount(Card.GetCode)==#sg
47+
end
48+
function s.activate(e,tp,eg,ep,ev,re,r,rp)
49+
local c=e:GetHandler()
50+
--Requirement
51+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
52+
local td=Duel.SelectMatchingCard(tp,Card.IsAbleToDeckOrExtraAsCost,tp,LOCATION_HAND,0,1,1,c)
53+
local opt=Duel.SelectOption(tp,aux.Stringid(id,1),aux.Stringid(id,2))
54+
if opt==0 then
55+
Duel.SendtoDeck(td,nil,SEQ_DECKTOP,REASON_COST)
56+
elseif opt==1 then
57+
Duel.SendtoDeck(td,nil,SEQ_DECKBOTTOM,REASON_COST)
58+
end
59+
--Effect
60+
local g=Duel.GetMatchingGroup(s.filter,tp,LOCATION_GRAVE,0,nil)
61+
local cg=aux.SelectUnselectGroup(g,e,tp,2,2,s.rescon,1,tp,HINTMSG_TOHAND)
62+
if #cg>0 then
63+
Duel.SendtoHand(cg,nil,REASON_EFFECT)
64+
Duel.ConfirmCards(1-tp,cg)
65+
end
66+
end

rush/c160024043.lua

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
--ワーム・ヴォイド・ホール
2+
--Worm Void Hole
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Activate
7+
Fusion.RegisterSummonEff(c,s.fusfilter)
8+
end
9+
s.listed_names={160018001,160010025}
10+
function s.fusfilter(c)
11+
return c:IsLevelBelow(9) and c:ListsCodeAsMaterial(160018001,160010025)
12+
end

0 commit comments

Comments
 (0)