-
-
Notifications
You must be signed in to change notification settings - Fork 63
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
796 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
--ジュラック・メガロ | ||
--Jurrac Megalo | ||
--scripted by Naim | ||
local s,id=GetID() | ||
function s.initial_effect(c) | ||
--Special Summon this card form your hand | ||
local e1=Effect.CreateEffect(c) | ||
e1:SetDescription(aux.Stringid(id,0)) | ||
e1:SetCategory(CATEGORY_SPECIAL_SUMMON) | ||
e1:SetType(EFFECT_TYPE_IGNITION) | ||
e1:SetRange(LOCATION_HAND) | ||
e1:SetCountLimit(1,id) | ||
e1:SetCondition(function(e,tp) return Duel.IsExistingMatchingCard(aux.FaceupFilter(Card.IsRace,RACE_DINOSAUR),tp,LOCATION_MZONE,0,1,nil) end) | ||
e1:SetTarget(s.sptg) | ||
e1:SetOperation(s.spop) | ||
c:RegisterEffect(e1) | ||
--Discard 2 cards, including a "Jurrac" card, then draw 2 cards | ||
local e2=Effect.CreateEffect(c) | ||
e2:SetDescription(aux.Stringid(id,1)) | ||
e2:SetCategory(CATEGORY_HANDES+CATEGORY_DRAW) | ||
e2:SetType(EFFECT_TYPE_IGNITION) | ||
e2:SetRange(LOCATION_MZONE) | ||
e2:SetCountLimit(1,{id,1}) | ||
e2:SetTarget(s.drwtg) | ||
e2:SetOperation(s.drwop) | ||
c:RegisterEffect(e2) | ||
--Send 1 "Jurrac" monster from your Deck or Extra Deck to the GY | ||
local e3=Effect.CreateEffect(c) | ||
e3:SetDescription(aux.Stringid(id,2)) | ||
e3:SetCategory(CATEGORY_TOGRAVE) | ||
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) | ||
e3:SetProperty(EFFECT_FLAG_DELAY) | ||
e3:SetCode(EVENT_DESTROYED) | ||
e3:SetCountLimit(1,{id,2}) | ||
e3:SetCondition(function(e) return e:GetHandler():IsReason(REASON_BATTLE|REASON_EFFECT) end) | ||
e3:SetTarget(s.tgtg) | ||
e3:SetOperation(s.tgop) | ||
c:RegisterEffect(e3) | ||
end | ||
s.listed_series={SET_JURRAC} | ||
s.listed_names={id} | ||
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) | ||
local c=e:GetHandler() | ||
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 | ||
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end | ||
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,tp,0) | ||
end | ||
function s.spop(e,tp,eg,ep,ev,re,r,rp) | ||
local c=e:GetHandler() | ||
if c:IsRelateToEffect(e) then | ||
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP) | ||
end | ||
end | ||
function s.drwtg(e,tp,eg,ep,ev,re,r,rp,chk) | ||
local g=Duel.GetMatchingGroup(Card.IsDiscardable,tp,LOCATION_HAND,0,nil,REASON_EFFECT) | ||
if chk==0 then return #g>=2 and g:IsExists(Card.IsSetCard,1,nil,SET_JURRAC) and Duel.IsPlayerCanDraw(tp,2) end | ||
Duel.SetOperationInfo(0,CATEGORY_HANDES,nil,0,tp,2) | ||
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2) | ||
end | ||
function s.rescon(sg,e,tp,mg) | ||
return sg:IsExists(Card.IsSetCard,1,nil,SET_JURRAC) | ||
end | ||
function s.drwop(e,tp,eg,ep,ev,re,r,rp) | ||
local g=Duel.GetMatchingGroup(Card.IsDiscardable,tp,LOCATION_HAND,0,nil,REASON_EFFECT) | ||
if #g<2 then return end | ||
local sg=aux.SelectUnselectGroup(g,e,tp,2,2,s.rescon,1,tp,HINTMSG_DISCARD) | ||
if #sg==2 and Duel.SendtoGrave(sg,REASON_EFFECT|REASON_DISCARD)>0 then | ||
Duel.BreakEffect() | ||
Duel.Draw(tp,2,REASON_EFFECT) | ||
end | ||
end | ||
function s.tgfilter(c) | ||
return c:IsSetCard(SET_JURRAC) and c:IsMonster() and not c:IsCode(id) and c:IsAbleToGrave() | ||
end | ||
function s.tgtg(e,tp,eg,ep,ev,re,r,rp,chk) | ||
if chk==0 then return Duel.IsExistingMatchingCard(s.tgfilter,tp,LOCATION_DECK|LOCATION_EXTRA,0,1,nil) end | ||
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK|LOCATION_EXTRA) | ||
end | ||
function s.tgop(e,tp,eg,ep,ev,re,r,rp) | ||
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) | ||
local g=Duel.SelectMatchingCard(tp,s.tgfilter,tp,LOCATION_DECK|LOCATION_EXTRA,0,1,1,nil) | ||
if #g>0 then | ||
Duel.SendtoGrave(g,REASON_EFFECT) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
--ジュラック・スティゴ | ||
--Jurrac Stigo | ||
--scripted by Naim | ||
local s,id=GetID() | ||
function s.initial_effect(c) | ||
--Destroy 1 card you control, send 1 Dinosaur monster to the GY, then you can Special Summon "Jurrac" monsters whose total Levels equal the sent monster's Level | ||
local e1=Effect.CreateEffect(c) | ||
e1:SetDescription(aux.Stringid(id,0)) | ||
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_TOGRAVE+CATEGORY_SPECIAL_SUMMON) | ||
e1:SetType(EFFECT_TYPE_IGNITION) | ||
e1:SetRange(LOCATION_MZONE) | ||
e1:SetCountLimit(1,id) | ||
e1:SetTarget(s.destg) | ||
e1:SetOperation(s.desop) | ||
c:RegisterEffect(e1) | ||
--Return 1 face-up card on the field to the hand | ||
local e2=Effect.CreateEffect(c) | ||
e2:SetDescription(aux.Stringid(id,1)) | ||
e2:SetCategory(CATEGORY_TOHAND) | ||
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) | ||
e2:SetCode(EVENT_BATTLE_DESTROYED) | ||
e2:SetTarget(s.thtg) | ||
e2:SetOperation(s.thop) | ||
c:RegisterEffect(e2) | ||
end | ||
s.listed_series={SET_JURRAC} | ||
s.listed_names={id} | ||
function s.tgfilter(c) | ||
return c:IsRace(RACE_DINOSAUR) and c:IsAbleToGrave() | ||
end | ||
function s.destg(e,tp,eg,ep,ev,re,r,rp,chk) | ||
local g=Duel.GetMatchingGroup(nil,tp,LOCATION_ONFIELD,0,nil) | ||
if chk==0 then return #g>0 and Duel.IsExistingMatchingCard(s.tgfilter,tp,LOCATION_DECK,0,1,nil) end | ||
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,tp,0) | ||
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_DECK) | ||
Duel.SetPossibleOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND|LOCATION_DECK) | ||
end | ||
function s.spfilter(c,e,tp) | ||
return c:HasLevel() and c:IsSetCard(SET_JURRAC) and not c:IsCode(id) and c:IsCanBeSpecialSummoned(e,0,tp,true,false) | ||
end | ||
function s.desop(e,tp,eg,ep,ev,re,r,rp) | ||
--Cannot Special Summon for the rest of this turn, except Dinosaur monsters | ||
local e1=Effect.CreateEffect(e:GetHandler()) | ||
e1:SetDescription(aux.Stringid(id,3)) | ||
e1:SetType(EFFECT_TYPE_FIELD) | ||
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT) | ||
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) | ||
e1:SetTargetRange(1,0) | ||
e1:SetTarget(function(e,c) return not c:IsRace(RACE_DINOSAUR) end) | ||
e1:SetReset(RESET_PHASE|PHASE_END) | ||
Duel.RegisterEffect(e1,tp) | ||
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) | ||
local dg=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_ONFIELD,0,1,1,nil) | ||
if #dg==0 then return end | ||
Duel.HintSelection(dg) | ||
if Duel.Destroy(dg,REASON_EFFECT)==0 then return end | ||
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE) | ||
local tgc=Duel.SelectMatchingCard(tp,s.tgfilter,tp,LOCATION_DECK,0,1,1,nil):GetFirst() | ||
if tgc and Duel.SendtoGrave(tgc,REASON_EFFECT)>0 and tgc:IsLocation(LOCATION_GRAVE) then | ||
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE) | ||
if ft==0 then return end | ||
if Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT) then ft=1 end | ||
local lvl=tgc:GetLevel() | ||
local g=Duel.GetMatchingGroup(s.spfilter,tp,LOCATION_HAND|LOCATION_DECK,0,nil,e,tp) | ||
if #g>0 and g:CheckWithSumEqual(Card.GetLevel,lvl,1,ft) and Duel.SelectYesNo(tp,aux.Stringid(id,2)) then | ||
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) | ||
local sg=g:SelectWithSumEqual(tp,Card.GetLevel,lvl,1,ft) | ||
if #sg==0 then return end | ||
Duel.BreakEffect() | ||
Duel.SpecialSummon(sg,0,tp,tp,true,false,POS_FACEUP) | ||
end | ||
end | ||
end | ||
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk) | ||
if chk==0 then return Duel.IsExistingMatchingCard(aux.FaceupFilter(Card.IsAbleToHand),tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end | ||
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_ONFIELD) | ||
end | ||
function s.thop(e,tp,eg,ep,ev,re,r,rp) | ||
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RTOHAND) | ||
local g=Duel.SelectMatchingCard(tp,aux.FaceupFilter(Card.IsAbleToHand),tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil) | ||
if #g>0 then | ||
Duel.HintSelection(g) | ||
Duel.SendtoHand(g,nil,REASON_EFFECT) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
--ジュラック・アステロ | ||
--Jurrac Astero | ||
--scripted by Naim | ||
local s,id=GetID() | ||
function s.initial_effect(c) | ||
c:EnableReviveLimit() | ||
--Synchro Summon procedure: 1 Tuner + 1+ non-Tuner Dinosaur monsters | ||
Synchro.AddProcedure(c,nil,1,1,Synchro.NonTunerEx(Card.IsRace,RACE_DINOSAUR),1,99) | ||
--Set 1 "Jurrac" Spell/Trap from your Deck or GY | ||
local e1=Effect.CreateEffect(c) | ||
e1:SetDescription(aux.Stringid(id,0)) | ||
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) | ||
e1:SetProperty(EFFECT_FLAG_DELAY) | ||
e1:SetCode(EVENT_SPSUMMON_SUCCESS) | ||
e1:SetCondition(function(e) return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO) end) | ||
e1:SetTarget(s.settg) | ||
e1:SetOperation(s.setop) | ||
c:RegisterEffect(e1) | ||
--Negate an opponent's Special Summon, and if you do, destroy that monster(s) | ||
local e2=Effect.CreateEffect(c) | ||
e2:SetDescription(aux.Stringid(id,1)) | ||
e2:SetCategory(CATEGORY_DISABLE_SUMMON+CATEGORY_DESTROY) | ||
e2:SetType(EFFECT_TYPE_QUICK_O) | ||
e2:SetCode(EVENT_SPSUMMON) | ||
e2:SetRange(LOCATION_MZONE) | ||
e2:SetCountLimit(1) | ||
e2:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ep==1-tp and Duel.GetCurrentChain()==0 end) | ||
e2:SetCost(s.negsumcost) | ||
e2:SetTarget(s.negsumtg) | ||
e2:SetOperation(s.negsumop) | ||
c:RegisterEffect(e2) | ||
--Special Summon 1 "Jurrac Meteor" from your Extra Deck | ||
local e3=Effect.CreateEffect(c) | ||
e3:SetDescription(aux.Stringid(id,2)) | ||
e3:SetCategory(CATEGORY_SPECIAL_SUMMON) | ||
e3:SetType(EFFECT_TYPE_QUICK_O) | ||
e3:SetCode(EVENT_FREE_CHAIN) | ||
e3:SetRange(LOCATION_GRAVE) | ||
e3:SetHintTiming(0,TIMING_STANDBY_PHASE|TIMING_MAIN_END|TIMINGS_CHECK_MONSTER_E) | ||
e3:SetCondition(function(e,tp) return Duel.IsTurnPlayer(1-tp) end) | ||
e3:SetCost(s.spcost) | ||
e3:SetTarget(s.sptg) | ||
e3:SetOperation(s.spop) | ||
c:RegisterEffect(e3) | ||
end | ||
s.listed_series={SET_JURRAC} | ||
s.listed_names={17548456} --"Jurrac Meteor" | ||
function s.setfilter(c) | ||
return c:IsSetCard(SET_JURRAC) and c:IsSpellTrap() and c:IsSSetable() | ||
end | ||
function s.settg(e,tp,eg,ep,ev,re,r,rp,chk) | ||
if chk==0 then return Duel.IsExistingMatchingCard(s.setfilter,tp,LOCATION_DECK|LOCATION_GRAVE,0,1,nil) end | ||
Duel.SetPossibleOperationInfo(0,CATEGORY_LEAVE_GRAVE,nil,1,tp,LOCATION_GRAVE) | ||
end | ||
function s.setop(e,tp,eg,ep,ev,re,r,rp) | ||
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SET) | ||
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(s.setfilter),tp,LOCATION_DECK|LOCATION_GRAVE,0,1,1,nil) | ||
if #g>0 then | ||
Duel.SSet(tp,g) | ||
end | ||
end | ||
function s.negsumcostfilter(c) | ||
return c:IsRace(RACE_DINOSAUR) and c:IsAbleToRemoveAsCost() and aux.SpElimFilter(c,true) | ||
end | ||
function s.negsumcost(e,tp,eg,ep,ev,re,r,rp,chk) | ||
if chk==0 then return Duel.IsExistingMatchingCard(s.negsumcostfilter,tp,LOCATION_GRAVE|LOCATION_MZONE,0,2,nil) end | ||
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) | ||
local g=Duel.SelectMatchingCard(tp,s.negsumcostfilter,tp,LOCATION_GRAVE|LOCATION_MZONE,0,2,2,nil) | ||
Duel.Remove(g,POS_FACEUP,REASON_COST) | ||
end | ||
function s.negsumtg(e,tp,eg,ep,ev,re,r,rp,chk) | ||
if chk==0 then return true end | ||
Duel.SetOperationInfo(0,CATEGORY_DISABLE_SUMMON,eg,#eg,tp,0) | ||
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,#eg,tp,0) | ||
end | ||
function s.negsumop(e,tp,eg,ep,ev,re,r,rp) | ||
Duel.NegateSummon(eg) | ||
Duel.Destroy(eg,REASON_EFFECT) | ||
end | ||
function s.spcostfilter(c) | ||
return c:IsSetCard(SET_JURRAC) and c:IsMonster() and c:IsAbleToRemoveAsCost() and aux.SpElimFilter(c,true) | ||
end | ||
function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk) | ||
local c=e:GetHandler() | ||
if chk==0 then return c:IsAbleToRemoveAsCost() | ||
and Duel.IsExistingMatchingCard(s.spcostfilter,tp,LOCATION_GRAVE,0,1,c,e,tp) end | ||
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE) | ||
local g=Duel.SelectMatchingCard(tp,s.spcostfilter,tp,LOCATION_GRAVE,0,1,1,c,e,tp) | ||
g:AddCard(c) | ||
Duel.Remove(g,POS_FACEUP,REASON_COST) | ||
end | ||
function s.spfilter(c,e,tp) | ||
local pg=aux.GetMustBeMaterialGroup(tp,Group.CreateGroup(),tp,c,nil,REASON_SYNCHRO) | ||
return #pg<=0 and c:IsCode(17548456) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 | ||
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false) | ||
end | ||
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk) | ||
if chk==0 then return Duel.IsExistingMatchingCard(s.spfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end | ||
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA) | ||
end | ||
function s.spop(e,tp,eg,ep,ev,re,r,rp) | ||
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON) | ||
local tc=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp):GetFirst() | ||
if tc and Duel.SpecialSummon(tc,SUMMON_TYPE_SYNCHRO,tp,tp,false,false,POS_FACEUP)>0 then | ||
tc:CompleteProcedure() | ||
end | ||
end |
Oops, something went wrong.