Skip to content

Commit ddbd0b8

Browse files
committed
added new rush cards
1 parent 29119c6 commit ddbd0b8

File tree

5 files changed

+267
-0
lines changed

5 files changed

+267
-0
lines changed

rush/c160020009.lua

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
--ヴォイドヴェルグ・ユニヴァステラ
2+
--Voidvelg Universtella
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Set cards
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+
s.listed_names={160311025}
18+
function s.tdfilter(c)
19+
return c:IsRace(RACE_GALAXY) and c:IsAttribute(ATTRIBUTE_DARK) 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.tdfilter,tp,LOCATION_GRAVE,0,3,nil) end
23+
end
24+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
25+
if chk==0 then return e:GetHandler():IsAbleToGrave() end
26+
end
27+
function s.thfilter(c)
28+
return c:IsCode(160311025) and c:IsAbleToHand()
29+
end
30+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
31+
local c=e:GetHandler()
32+
--Requirement
33+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
34+
local g=Duel.SelectMatchingCard(tp,s.tdfilter,tp,LOCATION_GRAVE,0,3,3,nil)
35+
Duel.HintSelection(g)
36+
if Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_COST)<1 then return end
37+
--Effect
38+
if Duel.SendtoGrave(c,REASON_COST)<1 then return end
39+
if Duel.IsExistingMatchingCard(Card.IsSpellTrap,tp,0,LOCATION_ONFIELD,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
40+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
41+
local g=Duel.SelectMatchingCard(tp,Card.IsSpellTrap,tp,0,LOCATION_ONFIELD,1,1,nil)
42+
Duel.HintSelection(g)
43+
Duel.BreakEffect()
44+
if Duel.Destroy(g,REASON_EFFECT)>0 and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(s.thfilter),tp,LOCATION_GRAVE,0,1,nil)
45+
and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then
46+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
47+
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
48+
if #g>0 then
49+
Duel.SendtoHand(g,nil,REASON_EFFECT)
50+
Duel.ConfirmCards(1-tp,g)
51+
end
52+
end
53+
end
54+
end

rush/c160020010.lua

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
--ヴォイドヴェルグ・ヘタイロイ
2+
--Voidvelg Hetairoi
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Gain DEF
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetCategory(CATEGORY_DEFCHANGE)
9+
e1:SetType(EFFECT_TYPE_IGNITION)
10+
e1:SetRange(LOCATION_MZONE)
11+
e1:SetCountLimit(1)
12+
e1:SetCondition(s.condition)
13+
e1:SetCost(s.cost)
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 Duel.IsExistingMatchingCard(aux.FaceupFilter(Card.IsRace,RACE_GALAXY),tp,LOCATION_MZONE,0,1,c) and c:IsStatus(STATUS_SUMMON_TURN)
21+
end
22+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
23+
local c=e:GetHandler()
24+
if chk==0 then return c:IsAttackPos() and c:IsCanChangePositionRush() end
25+
end
26+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
27+
if chk==0 then return true end
28+
Duel.SetOperationInfo(0,CATEGORY_DEFCHANGE,e:GetHandler(),1,tp,1300)
29+
end
30+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
31+
local c=e:GetHandler()
32+
--Requirement
33+
if Duel.ChangePosition(c,POS_FACEUP_DEFENSE,0,0,0)<1 then return end
34+
--Effect
35+
local e1=Effect.CreateEffect(c)
36+
e1:SetType(EFFECT_TYPE_SINGLE)
37+
e1:SetCode(EFFECT_UPDATE_DEFENSE)
38+
e1:SetValue(1300)
39+
e1:SetReset(RESETS_STANDARD_PHASE_END,2)
40+
c:RegisterEffect(e1)
41+
end

rush/c160020044.lua

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
--ヴォイドヴェルグ・フォビドゥン・レクイエム
2+
--Voidvelg Forbidden Requiem
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,160010025,160317012)
9+
Fusion.AddContactProc(c,s.contactfil,s.contactop,nil,nil,SUMMON_TYPE_FUSION,nil,false)
10+
--Gain ATK
11+
local e1=Effect.CreateEffect(c)
12+
e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DESTROY)
13+
e1:SetType(EFFECT_TYPE_IGNITION)
14+
e1:SetRange(LOCATION_MZONE)
15+
e1:SetCountLimit(1)
16+
e1:SetCost(s.cost)
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.cost(e,tp,eg,ep,ev,re,r,rp,chk)
28+
if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,3) end
29+
end
30+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
31+
if chk==0 then return true end
32+
Duel.SetOperationInfo(0,CATEGORY_ATKCHANGE,e:GetHandler(),1,tp,900)
33+
end
34+
function s.cfilter(c)
35+
return c:IsLocation(LOCATION_GRAVE) and c:IsRace(RACE_GALAXY) and c:IsAttribute(ATTRIBUTE_DARK) and c:IsAttackAbove(1600)
36+
end
37+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
38+
local c=e:GetHandler()
39+
--Requirement
40+
if Duel.DiscardDeck(tp,3,REASON_COST)<1 then return end
41+
local g=Duel.GetOperatedGroup()
42+
local ct=g:FilterCount(s.cfilter,nil)
43+
--Effect
44+
local e1=Effect.CreateEffect(c)
45+
e1:SetType(EFFECT_TYPE_SINGLE)
46+
e1:SetCode(EFFECT_UPDATE_ATTACK)
47+
e1:SetValue(900)
48+
e1:SetReset(RESETS_STANDARD_PHASE_END)
49+
c:RegisterEffect(e1)
50+
local g=Duel.GetMatchingGroup(Card.IsNotMaximumModeSide,tp,0,LOCATION_ONFIELD,nil)
51+
if ct>0 and #g>0 and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
52+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
53+
local sg=g:Select(tp,1,ct,nil)
54+
sg=sg:AddMaximumCheck()
55+
if #sg>0 then
56+
Duel.HintSelection(sg)
57+
Duel.Destroy(sg,REASON_EFFECT)
58+
end
59+
end
60+
end

rush/c160020052.lua

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
--ヴォイドダスト・フュージョン
2+
--Void Dust Fusion
3+
--scripted by Naim
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Fusion Summon a Level 9 DARK Attribute Galaxy Type monster with 2000 or more DEF
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetType(EFFECT_TYPE_ACTIVATE)
10+
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON+CATEGORY_TODECK)
11+
e1:SetCode(EVENT_FREE_CHAIN)
12+
e1:SetTarget(s.fustg)
13+
e1:SetOperation(s.fusop)
14+
c:RegisterEffect(e1)
15+
end
16+
function s.extrafusionmat(exc)
17+
return function(e,tp,mg)
18+
return Duel.GetMatchingGroup(s.matfilter,tp,LOCATION_GRAVE,0,exc),s.matexclusioncheck(exc)
19+
end
20+
end
21+
function s.matexclusioncheck(exc)
22+
return function(tp,sg,fc)
23+
return not (exc and sg:IsContains(exc))
24+
end
25+
end
26+
function s.fusmonfilter(c)
27+
return c:IsLevel(9) and c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_GALAXY) and c:IsDefenseAbove(2000)
28+
end
29+
function s.matfilter(c)
30+
return c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_GALAXY) and c:IsAbleToDeck()
31+
end
32+
function s.atklimit(e,sc,tp,sg,chk)
33+
if chk==0 then
34+
--Register a flag to the summoned monster
35+
sc:RegisterFlagEffect(id,RESETS_STANDARD_PHASE_END,0,1)
36+
--Monsters other than the summoned monster cannot attack this turn
37+
local e1=Effect.CreateEffect(e:GetHandler())
38+
e1:SetType(EFFECT_TYPE_FIELD)
39+
e1:SetCode(EFFECT_CANNOT_ATTACK)
40+
e1:SetTargetRange(LOCATION_MZONE,0)
41+
e1:SetTarget(function(e,c) return not c:HasFlagEffect(id) end)
42+
e1:SetReset(RESET_PHASE|PHASE_END)
43+
Duel.RegisterEffect(e1,tp)
44+
end
45+
end
46+
function s.costfilter(c,e,tp,eg,ep,ev,re,r,rp)
47+
if not (c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_GALAXY) and c:IsType(TYPE_NORMAL)) then return false end
48+
local fusion_params={fusfilter=s.fusmonfilter,
49+
matfilter=aux.FALSE,
50+
extrafil=s.extrafusionmat(c),
51+
extraop=Fusion.ShuffleMaterial,
52+
exactcount=2,
53+
stage2=s.atklimit
54+
}
55+
return Fusion.SummonEffTG(fusion_params)(e,tp,eg,ep,ev,re,r,rp,0)
56+
end
57+
function s.fustg(e,tp,eg,ep,ev,re,r,rp,chk)
58+
if chk==0 then return Duel.IsExistingMatchingCard(s.costfilter,tp,LOCATION_GRAVE,0,1,nil,e,tp,eg,ep,ev,re,r,rp) end
59+
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,2,tp,LOCATION_GRAVE)
60+
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
61+
end
62+
function s.fusop(e,tp,eg,ep,ev,re,r,rp)
63+
local fusion_params={fusfilter=s.fusmonfilter,
64+
matfilter=aux.FALSE,
65+
extrafil=s.extrafusionmat(c),
66+
extraop=Fusion.ShuffleMaterial,
67+
exactcount=2,
68+
stage2=s.atklimit
69+
}
70+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
71+
local req_c=Duel.SelectMatchingCard(tp,s.costfilter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp,eg,ep,ev,re,r,rp)
72+
Duel.HintSelection(req_c)
73+
Duel.SendtoDeck(req_c,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
74+
Fusion.SummonEffTG(fusion_params)(e,tp,eg,ep,ev,re,r,rp,1)
75+
Fusion.SummonEffOP(fusion_params)(e,tp,eg,ep,ev,re,r,rp)
76+
end

rush/c160020060.lua

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
--レクイエム・ストライクバック
2+
--Requiem Strike Back
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Negate attack and destroy the attacking monster
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetType(EFFECT_TYPE_ACTIVATE)
10+
e1:SetCategory(CATEGORY_DAMAGE)
11+
e1:SetCode(EVENT_ATTACK_ANNOUNCE)
12+
e1:SetProperty(EFFECT_FLAG_DELAY)
13+
e1:SetCondition(s.condition)
14+
e1:SetTarget(s.target)
15+
e1:SetOperation(s.activate)
16+
c:RegisterEffect(e1)
17+
end
18+
s.listed_names={160010025}
19+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
20+
local a=Duel.GetAttacker()
21+
local tc=Duel.GetAttackTarget()
22+
return a and a:IsControler(1-tp) and tc and tc:IsFaceup() and tc:IsCode(160010025) and tc:IsControler(tp)
23+
end
24+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
25+
local tg=Duel.GetAttackTarget()
26+
if chk==0 then return tg:IsControler(tp) and tg:IsOnField() end
27+
Duel.SetPossibleOperationInfo(0,CATEGORY_DESTROY,tg,1,tp,0)
28+
end
29+
function s.activate(e,tp,eg,ep,ev,re,r,rp)
30+
--Effect
31+
local a=Duel.GetAttacker()
32+
Duel.NegateAttack()
33+
if a:GetAttack()>0 and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
34+
Duel.Damage(1-tp,a:GetAttack(),REASON_EFFECT)
35+
end
36+
end

0 commit comments

Comments
 (0)