Skip to content

Commit d86b2a0

Browse files
committed
added new rush cards
1 parent 1711f75 commit d86b2a0

File tree

9 files changed

+381
-0
lines changed

9 files changed

+381
-0
lines changed

rush/c160020026.lua

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
--アニマジカ・トレーダー
2+
--Animagica Trader
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Set
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_DESTROY)
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+
return e:GetHandler():IsStatus(STATUS_SUMMON_TURN|STATUS_SPSUMMON_TURN)
20+
end
21+
function s.thfilter(c)
22+
return c:IsCode(160020056,160020057) and c:IsAbleToHand()
23+
end
24+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
25+
if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_GRAVE,0,1,nil) end
26+
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
27+
end
28+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
29+
local c=e:GetHandler()
30+
--Effect
31+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
32+
local sg=Duel.GetMatchingGroup(s.thfilter,tp,LOCATION_GRAVE,0,nil)
33+
local tg=aux.SelectUnselectGroup(sg,1,tp,1,2,s.rescon,1,tp)
34+
local ct=Duel.SendtoHand(tg,nil,REASON_EFFECT)
35+
Duel.ConfirmCards(1-tp,tg)
36+
if c:IsAbleToGrave() and ct==2 then
37+
Duel.SendtoGrave(c,REASON_EFFECT)
38+
end
39+
end
40+
function s.rescon(sg,e,tp,mg)
41+
return sg:FilterCount(Card.IsCode,nil,160020056)<2 and sg:FilterCount(Card.IsCode,nil,160020057)<2
42+
end

rush/c160020027.lua

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
--アニマジカ・トレーダー
2+
--Animagica Gardna
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
-- Mill and add to hand
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_DECKDES+CATEGORY_TOHAND)
10+
e1:SetType(EFFECT_TYPE_IGNITION)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetCountLimit(1)
13+
e1:SetCondition(s.condition)
14+
e1:SetCost(s.cost)
15+
e1:SetTarget(s.target)
16+
e1:SetOperation(s.operation)
17+
c:RegisterEffect(e1)
18+
end
19+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
20+
return e:GetHandler():IsStatus(STATUS_SUMMON_TURN|STATUS_SPSUMMON_TURN)
21+
end
22+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
23+
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,1,nil) end
24+
end
25+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
26+
if chk==0 then return Duel.IsPlayerCanDiscardDeck(tp,3) end
27+
Duel.SetOperationInfo(0,CATEGORY_DECKDES,nil,0,tp,3)
28+
Duel.SetPossibleOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
29+
end
30+
function s.thfilter(c)
31+
return c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsRace(RACE_BEAST) and c:IsLevel(7,8) and c:IsDefenseAbove(1500) and c:IsAbleToHand()
32+
end
33+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
34+
--Requirement
35+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
36+
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToGraveAsCost,tp,LOCATION_HAND,0,1,1,nil)
37+
Duel.SendtoGrave(g,REASON_COST)
38+
--Effect
39+
if Duel.DiscardDeck(tp,3,REASON_EFFECT)<1 then return end
40+
if Duel.IsExistingMatchingCard(aux.NecroValleyFilter(s.thfilter),tp,LOCATION_GRAVE,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
41+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
42+
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.thfilter),tp,LOCATION_GRAVE,0,1,1,nil)
43+
if #g>0 then
44+
Duel.BreakEffect()
45+
Duel.SendtoHand(g,nil,REASON_EFFECT)
46+
Duel.ConfirmCards(1-tp,g)
47+
end
48+
end
49+
end

rush/c160020028.lua

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
--アニマジカ・ソーサラー
2+
--Animagica Sorcerer
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Atk
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetType(EFFECT_TYPE_FIELD)
9+
e1:SetCode(EFFECT_UPDATE_ATTACK)
10+
e1:SetRange(LOCATION_MZONE)
11+
e1:SetTargetRange(LOCATION_MZONE,0)
12+
e1:SetTarget(aux.TargetBoolFunction(Card.IsRace,RACE_BEAST))
13+
e1:SetValue(400)
14+
c:RegisterEffect(e1)
15+
local e2=e1:Clone()
16+
e2:SetCode(EFFECT_PIERCE)
17+
c:RegisterEffect(e2)
18+
--lv up
19+
local e3=Effect.CreateEffect(c)
20+
e3:SetType(EFFECT_TYPE_FIELD)
21+
e3:SetCode(EFFECT_UPDATE_LEVEL)
22+
e3:SetRange(LOCATION_MZONE)
23+
e3:SetTargetRange(LOCATION_MZONE,0)
24+
e3:SetTarget(s.target)
25+
e3:SetValue(2)
26+
c:RegisterEffect(e3)
27+
end
28+
function s.target(e,c)
29+
return c:IsRace(RACE_BEAST) and c:IsAttribute(ATTRIBUTE_LIGHT)
30+
end

rush/c160020029.lua

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
--アニマジカ・ナイト
2+
--Animagica Knight
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Face-up Beast monsters you control 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:SetTargetRange(LOCATION_MZONE,0)
11+
e1:SetRange(LOCATION_MZONE)
12+
e1:SetTarget(s.indtg)
13+
e1:SetValue(aux.indoval)
14+
c:RegisterEffect(e1)
15+
--lv up
16+
local e2=Effect.CreateEffect(c)
17+
e2:SetType(EFFECT_TYPE_FIELD)
18+
e2:SetCode(EFFECT_UPDATE_LEVEL)
19+
e2:SetRange(LOCATION_MZONE)
20+
e2:SetTargetRange(LOCATION_MZONE,0)
21+
e2:SetTarget(s.target)
22+
e2:SetValue(2)
23+
c:RegisterEffect(e2)
24+
end
25+
function s.indtg(e,c)
26+
return c:IsFaceup() and c:IsRace(RACE_BEAST)
27+
end
28+
function s.target(e,c)
29+
return c:IsRace(RACE_BEAST) and c:IsAttribute(ATTRIBUTE_LIGHT)
30+
end

rush/c160020030.lua

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
--アニマジカ・ダブルセイバー
2+
--Animagica Double Saber
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Prevent the activation of Traps when you Summon a Beast
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
9+
e1:SetRange(LOCATION_MZONE)
10+
e1:SetCode(EVENT_SUMMON_SUCCESS)
11+
e1:SetOperation(s.sucop)
12+
c:RegisterEffect(e1)
13+
local e2=e1:Clone()
14+
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
15+
c:RegisterEffect(e2)
16+
local e3=e1:Clone()
17+
e3:SetCode(EVENT_CHAIN_END)
18+
e3:SetOperation(s.cedop2)
19+
c:RegisterEffect(e3)
20+
--lv up
21+
local e4=Effect.CreateEffect(c)
22+
e4:SetType(EFFECT_TYPE_FIELD)
23+
e4:SetCode(EFFECT_UPDATE_LEVEL)
24+
e4:SetRange(LOCATION_MZONE)
25+
e4:SetTargetRange(LOCATION_MZONE,0)
26+
e4:SetTarget(s.target)
27+
e4:SetValue(2)
28+
c:RegisterEffect(e4)
29+
end
30+
function s.sucfilter(c,tp)
31+
return c:IsRace(RACE_BEAST) and c:IsFaceup() and c:IsControler(tp)
32+
end
33+
function s.sucop(e,tp,eg,ep,ev,re,r,rp)
34+
if eg:IsExists(s.sucfilter,1,nil,tp) then
35+
Duel.SetChainLimit(s.chainlm)
36+
end
37+
end
38+
function s.cedop2(e,tp,eg,ep,ev,re,r,rp)
39+
local _,g=Duel.CheckEvent(EVENT_SPSUMMON_SUCCESS,true)
40+
if g and g:IsExists(s.sucfilter,1,nil,tp) and Duel.CheckEvent(EVENT_SPSUMMON_SUCCESS) then
41+
Duel.SetChainLimitTillChainEnd(s.chainlm)
42+
end
43+
end
44+
function s.chainlm(e,rp,tp)
45+
return tp==rp or (e:IsTrapEffect() and not e:IsHasType(EFFECT_TYPE_ACTIVATE))
46+
end
47+
function s.target(e,c)
48+
return c:IsRace(RACE_BEAST) and c:IsAttribute(ATTRIBUTE_LIGHT)
49+
end

rush/c160020031.lua

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
--アニマジカ・ウィップ
2+
--Animagica Whip
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Summon with 1 tribute
7+
local e1=aux.AddNormalSummonProcedure(c,true,true,1,1,SUMMON_TYPE_TRIBUTE,aux.Stringid(id,0),s.otfilter)
8+
--Reduce ATK
9+
local e1=Effect.CreateEffect(c)
10+
e1:SetDescription(aux.Stringid(id,1))
11+
e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DRAW)
12+
e1:SetType(EFFECT_TYPE_IGNITION)
13+
e1:SetRange(LOCATION_MZONE)
14+
e1:SetCountLimit(1)
15+
e1:SetCost(s.cost)
16+
e1:SetTarget(s.target)
17+
e1:SetOperation(s.operation)
18+
c:RegisterEffect(e1)
19+
end
20+
function s.otfilter(c)
21+
return c:IsAttribute(ATTRIBUTE_LIGHT)
22+
end
23+
function s.cfilter(c)
24+
return c:IsRace(RACE_BEAST) and c:IsAbleToDeckOrExtraAsCost()
25+
end
26+
function s.cost(e,tp,eg,ep,ev,re,r,rp,chk)
27+
if chk==0 then return Duel.IsExistingMatchingCard(s.cfilter,tp,LOCATION_GRAVE,0,1,nil) end
28+
end
29+
function s.filter(c,lvl)
30+
return c:IsFaceup() and c:GetLevel()<lvl and c:IsNotMaximumModeSide()
31+
end
32+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
33+
if chk==0 then return Duel.IsExistingMatchingCard(s.filter,tp,0,LOCATION_MZONE,1,nil,e:GetHandler():GetLevel()) end
34+
Duel.SetOperationInfo(0,CATEGORY_ATKCHANGE,nil,1,tp,-600)
35+
end
36+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
37+
local c=e:GetHandler()
38+
--Requirement
39+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
40+
local g=Duel.SelectMatchingCard(tp,s.cfilter,tp,LOCATION_GRAVE,0,1,1,nil)
41+
if #g==0 then return end
42+
Duel.HintSelection(g)
43+
if Duel.SendtoDeck(g,nil,SEQ_DECKBOTTOM,REASON_COST)==0 then return end
44+
--Effect
45+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATKDEF)
46+
local g=Duel.SelectMatchingCard(tp,s.filter,tp,0,LOCATION_MZONE,1,1,nil,c:GetLevel())
47+
if #g>0 then
48+
Duel.HintSelection(g)
49+
local e1=Effect.CreateEffect(c)
50+
e1:SetType(EFFECT_TYPE_SINGLE)
51+
e1:SetCode(EFFECT_UPDATE_ATTACK)
52+
e1:SetValue(-2000)
53+
e1:SetReset(RESETS_STANDARD_PHASE_END)
54+
g:GetFirst():RegisterEffect(e1)
55+
end
56+
end

rush/c160020032.lua

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
--アニマジカ・シューター
2+
--Animagica Shooter
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Summon with 1 tribute
7+
local e1=aux.AddNormalSummonProcedure(c,true,true,1,1,SUMMON_TYPE_TRIBUTE,aux.Stringid(id,0),s.otfilter)
8+
--Change monster's battle position
9+
local e2=Effect.CreateEffect(c)
10+
e2:SetDescription(aux.Stringid(id,1))
11+
e2:SetCategory(CATEGORY_POSITION)
12+
e2:SetType(EFFECT_TYPE_IGNITION)
13+
e2:SetRange(LOCATION_MZONE)
14+
e2:SetCountLimit(1)
15+
e2:SetCondition(s.condition)
16+
e2:SetTarget(s.target)
17+
e2:SetOperation(s.operation)
18+
c:RegisterEffect(e2)
19+
end
20+
function s.otfilter(c)
21+
return c:IsAttribute(ATTRIBUTE_LIGHT)
22+
end
23+
function s.condition(e,tp,eg,ep,ev,re,r,rp)
24+
return e:GetHandler():IsStatus(STATUS_SUMMON_TURN|STATUS_SPSUMMON_TURN)
25+
end
26+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
27+
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsCanChangePositionRush,tp,0,LOCATION_MZONE,1,nil) end
28+
end
29+
function s.desfilter(c,lvl)
30+
return c:IsFaceup() and c:GetLevel()<lvl
31+
end
32+
function s.operation(e,tp,eg,ep,ev,re,r,rp)
33+
--Effect
34+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
35+
local g=Duel.SelectMatchingCard(tp,Card.IsCanChangePositionRush,tp,0,LOCATION_MZONE,1,1,nil)
36+
Duel.HintSelection(g)
37+
Duel.ChangePosition(g,POS_FACEUP_DEFENSE,POS_FACEDOWN_DEFENSE,POS_FACEUP_ATTACK,POS_FACEUP_ATTACK)
38+
local g=Duel.GetMatchingGroup(s.desfilter,tp,0,LOCATION_MZONE,nil,e:GetHandler():GetLevel())
39+
if #g>0 and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then
40+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
41+
local sg=g:Select(tp,1,1,nil)
42+
if #sg==0 then return end
43+
sg=sg:AddMaximumCheck()
44+
Duel.HintSelection(sg)
45+
Duel.BreakEffect()
46+
Duel.Destroy(sg,REASON_EFFECT)
47+
end
48+
end

rush/c160020056.lua

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
--アニマジカ・コイン
2+
--Animagica Coin
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--Activate
7+
local e1=Effect.CreateEffect(c)
8+
e1:SetDescription(aux.Stringid(id,0))
9+
e1:SetCategory(CATEGORY_TOGRAVE+CATEGORY_TOHAND)
10+
e1:SetType(EFFECT_TYPE_ACTIVATE)
11+
e1:SetCode(EVENT_FREE_CHAIN)
12+
e1:SetTarget(s.target)
13+
e1:SetOperation(s.activate)
14+
c:RegisterEffect(e1)
15+
end
16+
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
17+
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,LOCATION_MZONE,0,1,nil) end
18+
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_MZONE)
19+
end
20+
function s.thfilter(c)
21+
return c:IsAttribute(ATTRIBUTE_LIGHT) and c:IsRace(RACE_BEAST) and c:IsLevel(7,8) and c:IsDefenseAbove(1500) and c:IsAbleToHand()
22+
end
23+
function s.activate(e,tp,eg,ep,ev,re,r,rp)
24+
--Effect
25+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
26+
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToGrave,tp,LOCATION_MZONE,0,1,1,nil)
27+
Duel.HintSelection(g)
28+
if Duel.SendtoGrave(g,REASON_EFFECT)==0 then return end
29+
if Duel.IsExistingMatchingCard(aux.NecroValleyFilter(s.thfilter),tp,LOCATION_GRAVE,0,1,nil) and Duel.SelectYesNo(tp,aux.Stringid(id,1)) then
30+
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
31+
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_GRAVE,0,1,1,nil)
32+
if #g>0 then
33+
Duel.SendtoHand(g,nil,REASON_EFFECT)
34+
Duel.ConfirmCards(1-tp,g)
35+
end
36+
end
37+
local e1=Effect.CreateEffect(e:GetHandler())
38+
e1:SetType(EFFECT_TYPE_FIELD)
39+
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
40+
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
41+
e1:SetTargetRange(1,0)
42+
e1:SetValue(s.aclimit)
43+
e1:SetReset(RESET_PHASE|PHASE_END)
44+
Duel.RegisterEffect(e1,tp)
45+
end
46+
function s.aclimit(e,re,tp)
47+
return re:IsMonsterEffect() and re:GetHandler():GetOriginalLevel()<=6
48+
end

rush/c160020057.lua

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
--アニマジカ・シールド
2+
--Animagica Shield
3+
--Scripted by YoshiDuels
4+
local s,id=GetID()
5+
function s.initial_effect(c)
6+
--equip
7+
aux.AddEquipProcedure(c,0,s.eqfilter,s.eqlimit)
8+
--atk/def up
9+
local e1=Effect.CreateEffect(c)
10+
e1:SetType(EFFECT_TYPE_EQUIP)
11+
e1:SetCode(EFFECT_UPDATE_ATTACK)
12+
e1:SetValue(600)
13+
c:RegisterEffect(e1)
14+
local e2=e1:Clone()
15+
e2:SetCode(EFFECT_UPDATE_DEFENSE)
16+
c:RegisterEffect(e2)
17+
--level up
18+
local e3=Effect.CreateEffect(c)
19+
e3:SetType(EFFECT_TYPE_EQUIP)
20+
e3:SetCode(EFFECT_UPDATE_LEVEL)
21+
e3:SetValue(3)
22+
c:RegisterEffect(e3)
23+
end
24+
function s.eqfilter(c)
25+
return c:IsFaceup() and c:IsRace(RACE_BEAST) and c:IsAttribute(ATTRIBUTE_LIGHT) and not c:IsMaximumModeSide()
26+
end
27+
function s.eqlimit(e,c)
28+
return c:IsFaceup()
29+
end

0 commit comments

Comments
 (0)