Skip to content

Commit 2f3ee4c

Browse files
committed
added new rush cards
1 parent 91a6461 commit 2f3ee4c

20 files changed

+1067
-1
lines changed

proc_rush.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ local LEGEND_LIST={160001000,160205001,160418001,160002000,160421015,160404001,1
1010
160210058,160440010,160016033,160016034,160440011,160211080,160402039,160017033,160402040,160429003,160320014,
1111
160320038,160018036,160212004,160212003,160402044,160212075,160212001,160402045,160019063,160019064,160019065,
1212
160213078,160213082,160402047,160213084,160020059,160213076,160020001,160020040,160020000,160214052,160323029,
13-
160214020,160021065,160021027,160402052,160215086,160324001,160402055,160324022,160023000,160217058}
13+
160214020,160021065,160021027,160402052,160215086,160324001,160402055,160324022,160023000,160217058,160024000}
1414
-- Returns if a card is a Legend. Can be updated if a GetOT function is added to the core
1515
function Card.IsLegend(c)
1616
return c:IsHasEffect(EFFECT_IS_LEGEND) or c:IsOriginalCode(table.unpack(LEGEND_LIST))

rush/c160024000.lua

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
--神獣王バルバロス
2+
--Beast King Barbaros
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--summon without tribute
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE)
10+
e1:SetType(EFFECT_TYPE_SINGLE)
11+
e1:SetCode(EFFECT_SUMMON_PROC)
12+
e1:SetCondition(s.ntcon)
13+
e1:SetOperation(s.ntop)
14+
c:RegisterEffect(e1)
15+
--Summon with 3 tribute
16+
local e2=aux.AddNormalSummonProcedure(c,true,true,3,3,SUMMON_TYPE_TRIBUTE+1,aux.Stringid(id,1),s.ffilter)
17+
--Destroy all face-up cards
18+
local e3=Effect.CreateEffect(c)
19+
e3:SetCategory(CATEGORY_DESTROY)
20+
e3:SetType(EFFECT_TYPE_IGNITION)
21+
e3:SetRange(LOCATION_MZONE)
22+
e3:SetCountLimit(1)
23+
e3:SetCondition(s.condition)
24+
e3:SetTarget(s.target)
25+
e3:SetOperation(s.operation)
26+
c:RegisterEffect(e3)
27+
end
28+
function s.ntcon(e,c,minc)
29+
if c==nil then return true end
30+
return minc==0 and c:GetLevel()>4 and Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0
31+
end
32+
function s.ntop(e,tp,eg,ep,ev,re,r,rp,c)
33+
--change base attack
34+
local e1=Effect.CreateEffect(c)
35+
e1:SetType(EFFECT_TYPE_SINGLE)
36+
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
37+
e1:SetRange(LOCATION_MZONE)
38+
e1:SetReset(RESET_EVENT|(RESETS_STANDARD_DISABLE&~RESET_TOFIELD))
39+
e1:SetCode(EFFECT_SET_BASE_ATTACK)
40+
e1:SetValue(1900)
41+
c:RegisterEffect(e1)
42+
end
43+
function s.ffilter(c)
44+
return c:IsFaceup() and c:IsAttribute(ATTRIBUTE_EARTH)
45+
end
46+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
47+
local c=e:GetHandler()
48+
return c:IsStatus(STATUS_SUMMON_TURN) and c:GetSummonType()==SUMMON_TYPE_TRIBUTE+1
49+
end
50+
function s.desfilter(c)
51+
return c:IsFaceup() and c:IsNotMaximumModeSide()
52+
end
53+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
54+
local g=Duel.GetMatchingGroup(s.desfilter,tp,0,LOCATION_ONFIELD,nil)
55+
if chk==0 then return #g>0 end
56+
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,#g,0,0)
57+
end
58+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
59+
local g=Duel.GetMatchingGroup(s.desfilter,tp,0,LOCATION_ONFIELD,nil)
60+
if #g>0 then
61+
Duel.Destroy(g,REASON_EFFECT)
62+
end
63+
end

rush/c160024007.lua

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
--冥跡のナフル
2+
--Nafl of the Monumenthes
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_BEASTWARRIOR) and c:IsAttribute(ATTRIBUTE_EARTH) and c:IsAttack(1000) 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+
--Prevent attacking
37+
local e1=Effect.CreateEffect(e:GetHandler())
38+
e1:SetType(EFFECT_TYPE_FIELD)
39+
e1:SetCode(EFFECT_CANNOT_ATTACK)
40+
e1:SetProperty(EFFECT_FLAG_OATH)
41+
e1:SetTargetRange(LOCATION_MZONE,0)
42+
e1:SetTarget(s.ftarget)
43+
e1:SetReset(RESET_PHASE|PHASE_END)
44+
Duel.RegisterEffect(e1,tp)
45+
end
46+
end
47+
function s.ftarget(e,c)
48+
return not c:IsRace(RACE_BEASTWARRIOR) or not c:IsAttribute(ATTRIBUTE_EARTH)
49+
end

rush/c160024008.lua

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
--イシリアの依代
2+
--Yorishiro of Isyria
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Send the top 2 cards of deck to GY
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetType(EFFECT_TYPE_IGNITION)
9+
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_DECKDES)
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={160024047,160024048,160024061,160024046}
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.thfilter(c)
27+
return c:IsCode(160024047,160024048,160024061) and c:IsAbleToHand()
28+
end
29+
function s.thfilter2(c)
30+
return c:IsCode(160024046) and c:IsAbleToHand()
31+
end
32+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
33+
--Effect
34+
if Duel.DiscardDeck(tp,2,REASON_EFFECT)>0 and Duel.IsExistingMatchingCard(aux.NecroValleyFilter(s.thfilter),tp,LOCATION_GRAVE,0,1,nil)
35+
and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
36+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
37+
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
38+
if #g>0 then
39+
Duel.SendtoHand(g,nil,REASON_EFFECT)
40+
Duel.ConfirmCards(1-tp,g)
41+
if Duel.IsExistingMatchingCard(aux.NecroValleyFilter(s.thfilter2),tp,LOCATION_GRAVE,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then
42+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
43+
local g=Duel.SelectMatchingCard(tp,s.thfilter2,tp,LOCATION_GRAVE,0,1,1,nil)
44+
if #g>0 then
45+
Duel.SendtoHand(g,nil,REASON_EFFECT)
46+
Duel.ConfirmCards(1-tp,g)
47+
end
48+
end
49+
end
50+
end
51+
end

rush/c160024009.lua

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
--冥跡のカーディ
2+
--Qadi of the Monumenthes
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:SetType(EFFECT_TYPE_FIELD)
9+
e1:SetCode(EFFECT_SPSUMMON_PROC)
10+
e1:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SPSUM_PARAM)
11+
e1:SetRange(LOCATION_HAND)
12+
e1:SetTargetRange(POS_FACEUP_DEFENSE,0)
13+
e1:SetCondition(s.spcon)
14+
c:RegisterEffect(e1)
15+
--Attack restriction
16+
local e2=Effect.CreateEffect(c)
17+
e2:SetDescription(aux.Stringid(id,1))
18+
e2:SetCategory(CATEGORY_ATKCHANGE)
19+
e2:SetType(EFFECT_TYPE_IGNITION)
20+
e2:SetRange(LOCATION_MZONE)
21+
e2:SetCountLimit(1)
22+
e2:SetCondition(s.condition)
23+
e2:SetCost(s.cost)
24+
e2:SetOperation(s.operation)
25+
c:RegisterEffect(e2)
26+
end
27+
function s.filter(c)
28+
return c:IsFaceup() and c:IsCode(160448004,160024008)
29+
end
30+
function s.spcon(e,c)
31+
if c==nil then return true end
32+
return Duel.GetLocationCount(c:GetControler(),LOCATION_MZONE)>0
33+
and Duel.IsExistingMatchingCard(s.filter,c:GetControler(),LOCATION_MZONE,0,1,nil)
34+
end
35+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
36+
local c=e:GetHandler()
37+
return c:IsSummonPhaseMain() and c:IsStatus(STATUS_SUMMON_TURN+STATUS_SPSUMMON_TURN)
38+
end
39+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
40+
if chk==0 then return Duel.IsPlayerCanDiscardDeckAsCost(tp,1) end
41+
end
42+
function s.tdfilter(c)
43+
return c:IsAbleToDeck() and c:IsMonster() and c:IsRace(RACE_BEASTWARRIOR)
44+
end
45+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
46+
-- Requirement
47+
if Duel.DiscardDeck(tp,1,REASON_COST)<1 then return end
48+
--Effect
49+
local c=e:GetHandler()
50+
--can only attack twice
51+
local e1=Effect.CreateEffect(e:GetHandler())
52+
e1:SetDescription(aux.Stringid(id,2))
53+
e1:SetType(EFFECT_TYPE_FIELD)
54+
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_CLIENT_HINT)
55+
e1:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
56+
e1:SetTargetRange(0,LOCATION_MZONE)
57+
e1:SetCondition(s.atkcon)
58+
e1:SetReset(RESET_PHASE|PHASE_END,2)
59+
Duel.RegisterEffect(e1,tp)
60+
local e2=Effect.CreateEffect(e:GetHandler())
61+
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
62+
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
63+
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
64+
e2:SetOperation(s.checkop)
65+
e2:SetReset(RESET_PHASE|PHASE_END,2)
66+
e2:SetLabelObject(e1)
67+
Duel.RegisterEffect(e2,tp)
68+
if Duel.IsExistingMatchingCard(s.tdfilter,tp,LOCATION_GRAVE,0,3,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
69+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
70+
local tg=Duel.SelectMatchingCard(tp,s.tdfilter,tp,LOCATION_GRAVE,0,3,3,nil)
71+
Duel.HintSelection(tg)
72+
Duel.SendtoDeck(tg,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
73+
end
74+
end
75+
function s.atkcon(e)
76+
return e:GetLabel()==2
77+
end
78+
function s.checkop(e,tp,eg,ep,ev,re,r,rp)
79+
if Duel.IsTurnPlayer(1-e:GetHandlerPlayer()) then
80+
e:GetLabelObject():SetLabel(e:GetLabelObject():GetLabel()+1)
81+
end
82+
end

rush/c160024010.lua

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
--冥跡のアミール
2+
--Emir of the Monumenthes
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Cannot be destroyed by your opponent's effects
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetType(EFFECT_TYPE_FIELD)
9+
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
10+
e1:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
11+
e1:SetTargetRange(LOCATION_ONFIELD,0)
12+
e1:SetRange(LOCATION_MZONE)
13+
e1:SetTarget(s.indtg)
14+
e1:SetValue(aux.indoval)
15+
c:RegisterEffect(e1)
16+
--Atk
17+
local e2=Effect.CreateEffect(c)
18+
e2:SetType(EFFECT_TYPE_FIELD)
19+
e2:SetCode(EFFECT_UPDATE_ATTACK)
20+
e2:SetRange(LOCATION_MZONE)
21+
e2:SetTargetRange(LOCATION_MZONE,0)
22+
e2:SetTarget(s.target)
23+
e2:SetValue(500)
24+
c:RegisterEffect(e2)
25+
end
26+
function s.indtg(e,c)
27+
return c:IsSpellTrap() or c==e:GetHandler()
28+
end
29+
function s.target(e,c)
30+
return c:IsRace(RACE_BEASTWARRIOR) and c:IsAttribute(ATTRIBUTE_EARTH)
31+
end

rush/c160024011.lua

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
--ムーンフォース・ピヨピ
2+
--Moonforce Piyopi
3+
--scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
-- Inflict damage
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetCategory(CATEGORY_DRAW|CATEGORY_TODECK)
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+
return Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>=10
20+
end
21+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
22+
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeckOrExtraAsCost,tp,LOCATION_HAND|LOCATION_ONFIELD,0,1,e:GetHandler()) end
23+
end
24+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
25+
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
26+
Duel.SetTargetPlayer(1-tp)
27+
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
28+
end
29+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
30+
--Requirement
31+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
32+
local td=Duel.SelectMatchingCard(tp,Card.IsAbleToDeckOrExtraAsCost,tp,LOCATION_HAND|LOCATION_ONFIELD,0,1,2,e:GetHandler())
33+
Duel.ConfirmCards(1-tp,td)
34+
if #td==0 or Duel.SendtoDeck(td,nil,SEQ_DECKBOTTOM,REASON_COST)==0 then return end
35+
Duel.SortDeckbottom(tp,tp,#td)
36+
--Effect
37+
Duel.Draw(tp,#td,REASON_EFFECT)
38+
local e1=Effect.CreateEffect(e:GetHandler())
39+
e1:SetType(EFFECT_TYPE_FIELD)
40+
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
41+
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
42+
e1:SetTargetRange(1,0)
43+
e1:SetValue(s.aclimit)
44+
e1:SetReset(RESET_PHASE|PHASE_END)
45+
Duel.RegisterEffect(e1,tp)
46+
end
47+
function s.aclimit(e,re,tp)
48+
return re:IsMonsterEffect() and not (re:GetHandler():IsAttribute(ATTRIBUTE_EARTH) and re:GetHandler():IsRace(RACE_GALAXY))
49+
end

0 commit comments

Comments
 (0)