Commit 3655480a authored by Nemo Ma's avatar Nemo Ma

Update 0918

90 cards added
parent ec88872b
......@@ -103,12 +103,12 @@
#777
77770006 1 --城市废墟
77770014 1 --爆裂魔法师 惠惠
77770015 2 --人工智障 绊爱
77770015 0 --人工智障 绊爱
77770020 1 --歌姬 溶解
77770021 1 --歌姬 REOL
77770019 1 --虚拟偶像 猫宫日向
77770050 0 --邪魔道士
77777001 0 --白龙少女 康娜
#BUGs
......
No preview for this file type
--跨越时空之船的船长
function c1146020.initial_effect(c)
--
c:EnableReviveLimit()
aux.AddLinkProcedure(c,nil,2,2,c1146020.lcheck)
--
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(1146020,0))
e1:SetCategory(CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c1146020.con1)
e1:SetTarget(c1146020.tg1)
e1:SetOperation(c1146020.op1)
c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(1146020,1))
e2:SetCategory(CATEGORY_REMOVE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetTarget(c1146020.tg2)
e2:SetOperation(c1146020.op2)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e3:SetCode(EVENT_REMOVE)
e3:SetCondition(c1146020.con3)
e3:SetOperation(c1146020.op3)
c:RegisterEffect(e3)
--
local e4=Effect.CreateEffect(c)
e4:SetDescription(aux.Stringid(1146020,2))
e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e4:SetCode(EVENT_PHASE+PHASE_END)
e4:SetRange(LOCATION_REMOVED)
e4:SetCountLimit(1,EFFECT_COUNT_CODE_DUEL)
e4:SetCondition(c1146020.con4)
e4:SetTarget(c1146020.tg4)
e4:SetOperation(c1146020.op4)
c:RegisterEffect(e4)
--
end
--
function c1146020.lcheck(g,lc)
return g:IsExists(Card.IsRace,1,nil,RACE_ZOMBIE)
end
--
function c1146020.con1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
--
function c1146020.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local gc=Duel.GetFieldGroup(tp,LOCATION_GRAVE,0)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,gc,gc:GetCount(),0,0)
end
--
function c1146020.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local gc=Duel.GetFieldGroup(tp,LOCATION_GRAVE,0)
if Duel.Remove(gc,POS_FACEUP,REASON_EFFECT)>0 then
local tg=Duel.GetOperatedGroup()
local tc=tg:GetFirst()
for tc in aux.Next(tg) do
local e1_1=Effect.CreateEffect(c)
e1_1:SetType(EFFECT_TYPE_SINGLE)
e1_1:SetCode(EFFECT_CANNOT_TRIGGER)
e1_1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1_1:SetRange(LOCATION_REMOVED)
e1_1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1_1)
end
if c:IsFacedown() then return end
if c:GetControler()~=tp then return end
if not c:IsRelateToEffect(e) then return end
if not c:IsLocation(LOCATION_MZONE) then return end
local fid=c:GetFieldID()
local tc=tg:GetFirst()
for tc in aux.Next(tg) do
tc:RegisterFlagEffect(1146020,RESET_EVENT+0x1fe0000,0,0,fid)
end
local e1_2=Effect.CreateEffect(c)
e1_2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e1_2:SetCode(EVENT_LEAVE_FIELD)
e1_2:SetLabel(fid)
e1_2:SetLabelObject(c)
e1_2:SetCondition(c1146020.con1_2)
e1_2:SetOperation(c1146020.op1_2)
Duel.RegisterEffect(e1_2,tp)
end
end
--
function c1146020.con1_2(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
return tc and eg:IsContains(tc)
end
function c1146020.ofilter1_2(c,fid)
return c:GetFlagEffectLabel(1146020)==fid
end
function c1146020.op1_2(e,tp,eg,ep,ev,re,r,rp)
local sg=Duel.GetMatchingGroup(c1146020.ofilter1_2,tp,LOCATION_REMOVED,0,nil,e:GetLabel())
if sg:GetCount()>0 then
Duel.SendtoGrave(sg,REASON_EFFECT+REASON_RETURN)
end
e:Reset()
end
--
function c1146020.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,e:GetHandler(),1,0,0)
end
--
function c1146020.op2(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_EFFECT)
end
--
function c1146020.con3(e,tp,eg,ep,ev,re,r,rp)
return r and bit.band(r,REASON_EFFECT)~=0
end
--
function c1146020.op3(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsFacedown() then return end
e:GetHandler():RegisterFlagEffect(1146021,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,0,1)
end
--
function c1146020.con4(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(1146021)~=0
end
--
function c1146020.tg4(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
--
function c1146020.op4(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
local e4_1=Effect.CreateEffect(c)
e4_1:SetDescription(aux.Stringid(1146020,3))
e4_1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4_1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e4_1:SetCode(EVENT_PHASE+PHASE_STANDBY)
e4_1:SetRange(LOCATION_REMOVED)
e4_1:SetCountLimit(1)
e4_1:SetOperation(c1146020.op4_1)
e4_1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,2)
c:RegisterEffect(e4_1)
end
--
function c1146020.op4_1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local b1=(Duel.GetMZoneCount(tp)>0)
local b2=c:IsCanBeSpecialSummoned(e,0,tp,false,false)
if b1 and b2 then
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
e:Reset()
end
--
--Sepialife - Muted Sonata
--Scripted by AlphaKretin
--For Nemoma
local s = c33701010
local id = 33701010
function s.initial_effect(c)
c:SetSPSummonOnce(id)
--Special Summon
local e1 = Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetDescription(aux.Stringid(id, 0))
e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_PHASE + PHASE_END)
e1:SetRange(LOCATION_HAND + LOCATION_GRAVE)
e1:SetCountLimit(1)
e1:SetCondition(s.spcon)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
Duel.AddCustomActivityCounter(id, ACTIVITY_SUMMON, s.counterfilter)
Duel.AddCustomActivityCounter(id, ACTIVITY_SPSUMMON, s.counterfilter)
--Redirect
local e2 = Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCondition(s.recon)
e2:SetValue(LOCATION_HAND)
c:RegisterEffect(e2)
end
function s.counterfilter(c)
return c:IsSetCard(0x144e)
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
return Duel.GetCustomActivityCount(id, tp, ACTIVITY_SUMMON) + Duel.GetCustomActivityCount(id, tp, ACTIVITY_SPSUMMON) ==
0
end
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, 0, 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.recon(e, tp, eg, ep, ev, re, r, rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SPECIAL)
end
--Sepialife - Voiceless Fugue
--Scripted by AlphaKretin
--For Nemoma
local s = c33701011
local id = 33701011
function s.initial_effect(c)
c:SetSPSummonOnce(id)
--Special Summon
local e1 = Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetDescription(aux.Stringid(id, 0))
e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_PHASE + PHASE_END)
e1:SetRange(LOCATION_HAND + LOCATION_GRAVE)
e1:SetCountLimit(1)
e1:SetCondition(s.spcon)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
Duel.AddCustomActivityCounter(id, ACTIVITY_CHAIN, s.counterfilter)
--Special Summon other
local e2 = Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id, 0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP + EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetTarget(s.sptg2)
e2:SetOperation(s.spop2)
c:RegisterEffect(e2)
end
function s.counterfilter(re, tp, cid)
return re:GetHandler():IsSetCard(0x144e)
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
return Duel.GetCustomActivityCount(id, tp, ACTIVITY_CHAIN) == 0
end
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, 0, 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.spfilter(c, e, tp)
return c:IsSetCard(0x144e) and c:IsCanBeSpecialSummoned(e, 0, tp, false, false)
end
function s.sptg2(e, tp, eg, ep, ev, re, r, rp, chk)
if chk == 0 then
return Duel.GetLocationCount(tp, LOCATION_MZONE) > 0 and
Duel.IsExistingMatchingCard(s.spfilter, tp, LOCATION_HAND + LOCATION_GRAVE, 0, 1, nil, e, tp)
end
Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, nil, 1, tp, LOCATION_HAND + LOCATION_GRAVE)
end
function s.spop2(e, tp, eg, ep, ev, re, r, rp)
if Duel.GetLocationCount(tp, LOCATION_MZONE) <= 0 then
return
end
Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_SPSUMMON)
local g =
Duel.SelectMatchingCard(
tp,
aux.NecroValleyFilter(s.spfilter),
tp,
LOCATION_HAND + LOCATION_GRAVE,
0,
1,
1,
nil,
e,
tp
)
if #g > 0 then
Duel.SpecialSummon(g, 0, tp, tp, false, false, POS_FACEUP)
end
end
--Sepialife - Lonely Suite
--Scripted by AlphaKretin
--For Nemoma
local s = c33701012
local id = 33701012
function s.initial_effect(c)
c:SetSPSummonOnce(id)
--special summon
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:SetCondition(s.spcon)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
--damage
local e2 = Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_DAMAGE)
e2:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_PHASE + PHASE_END)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCountLimit(1, id)
e2:SetCondition(s.damcon)
e2:SetTarget(s.damtg)
e2:SetOperation(s.damop)
c:RegisterEffect(e2)
end
function s.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x144e)
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
return Duel.IsExistingMatchingCard(s.cfilter, tp, LOCATION_MZONE, 0, 1, nil)
end
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, 0, 0)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c, 0, tp, tp, false, false, POS_FACEUP) ~= 0 then
--Cannot be destroyed
local e1 = Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetTargetRange(LOCATION_MZONE, 0)
e1:SetTarget(s.indtg)
e1:SetValue(s.indval)
e1:SetReset(RESET_PHASE + PHASE_STANDBY + RESET_SELF_TURN)
Duel.RegisterEffect(e1, tp)
--No damage
local e2 = Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1, 0)
e2:SetValue(1)
e2:SetReset(RESET_PHASE + PHASE_STANDBY + RESET_SELF_TURN)
Duel.RegisterEffect(e2, tp)
end
end
function s.indtg(e, c)
return c:IsFaceup() and c:IsSetCard(0x144e)
end
function s.indval(e, re, rp)
return rp ~= e:GetHandlerPlayer()
end
function s.damcon(e, tp, eg, ep, ev, re, r, rp)
return Duel.GetTurnPlayer() == tp and Duel.GetActivityCount(tp, ACTIVITY_BATTLE_PHASE) == 0
end
function s.damtg(e, tp, eg, ep, ev, re, r, rp, chk)
if chk == 0 then
return true
end
Duel.SetTargetPlayer(1 - tp)
Duel.SetTargetParam(1700)
Duel.SetOperationInfo(0, CATEGORY_DAMAGE, nil, 0, 1 - tp, 1700)
end
function s.damop(e, tp, eg, ep, ev, re, r, rp)
local p, d = Duel.GetChainInfo(0, CHAININFO_TARGET_PLAYER, CHAININFO_TARGET_PARAM)
Duel.Damage(p, d, REASON_EFFECT)
end
--Sepialife - Dimmed Concerto
--Scripted by AlphaKretin
--For Nemoma
local s = c33701013
local id = 33701013
function s.initial_effect(c)
c:SetSPSummonOnce(id)
--special summon
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:SetCondition(s.spcon)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
--Change ATK
local e2 = Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_ATKCHANGE)
e2:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_PHASE + PHASE_END)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCountLimit(1)
e2:SetCondition(s.atkcon)
e2:SetTarget(s.atktg)
e2:SetOperation(s.atkop)
c:RegisterEffect(e2)
end
function s.cfilter(c)
return c:IsFaceup() and c:IsSetCard(0x144e)
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
return Duel.IsExistingMatchingCard(s.cfilter, tp, LOCATION_MZONE, 0, 1, nil)
end
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, 0, 0)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c, 0, tp, tp, false, false, POS_FACEUP) ~= 0 then
--Cannot be destroyed
local e1 = Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetTargetRange(LOCATION_MZONE, 0)
e1:SetTarget(s.indtg)
e1:SetValue(1)
e1:SetReset(RESET_PHASE + PHASE_STANDBY + RESET_SELF_TURN)
Duel.RegisterEffect(e1, tp)
--No damage
local e2 = Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetTargetRange(0, LOCATION_MZONE)
e2:SetValue(-1500)
e2:SetReset(RESET_PHASE + PHASE_STANDBY + RESET_SELF_TURN)
Duel.RegisterEffect(e2, tp)
local e3 = e2:Clone()
e3:SetCode(EFFECT_UPDATE_DEFENSE)
Duel.RegisterEffect(e3, tp)
end
end
function s.indtg(e, c)
return c:IsFaceup() and c:IsSetCard(0x144e)
end
function s.atkcon(e, tp, eg, ep, ev, re, r, rp)
return Duel.GetTurnPlayer() == tp and Duel.GetActivityCount(tp, ACTIVITY_BATTLE_PHASE) == 0
end
function s.atktg(e, tp, eg, ep, ev, re, r, rp, chk)
if chk == 0 then
return Duel.IsExistingMatchingCard(Card.IsFaceup, tp, 0, LOCATION_MZONE, 1, nil)
end
end
function s.atkop(e, tp, eg, ep, ev, re, r, rp)
local g = Duel.GetMatchingGroup(Card.IsFaceup, tp, 0, LOCATION_MZONE, nil)
for tc in aux.Next(g) do
local e1 = Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(0)
e1:SetReset(RESET_EVENT + RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2 = e1:Clone()
e2:SetCode(EFFECT_SET_DEFENSE_FINAL)
tc:RegisterEffect(e2)
end
end
--Sepialife - Dazed Impromptu
--Scripted by AlphaKretin
--For Nemoma
local s = c33701014
local id = 33701014
function s.initial_effect(c)
c:SetSPSummonOnce(id)
--Special Summon
local e1 = Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id, 0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON + CATEGORY_TOHAND + CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_DESTROYED)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP + EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(s.spcon)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
--atk up
local e2 = Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id, 1))
e2:SetType(EFFECT_TYPE_TRIGGER_F + EFFECT_TYPE_FIELD)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_PHASE + PHASE_STANDBY)
e2:SetCountLimit(1)
e2:SetCondition(s.atkcon)
e2:SetOperation(s.atkop)
c:RegisterEffect(e2)
end
function s.spcfilter(c, tp)
return c:IsReason(REASON_BATTLE + REASON_EFFECT) and c:GetPreviousControler() == tp and
c:IsPreviousLocation(LOCATION_ONFIELD) and
c:IsType(TYPE_MONSTER) and
c:IsSetCard(0x144e)
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
return eg:IsExists(s.spcfilter, 1, nil, tp)
end
function s.thfilter(c)
return c:IsType(TYPE_SPELL + TYPE_TRAP) and c:IsAbleToHand()
end
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
local sg = Duel.GetMatchingGroup(s.thfilter, tp, 0, LOCATION_ONFIELD, nil)
Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, c, 1, 0, 0)
Duel.SetOperationInfo(0, CATEGORY_TOHAND, sg, #sg, 0, 0)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c, 0, tp, tp, false, false, POS_FACEUP_ATTACK) ~= 0 then
local mg = Duel.GetMatchingGroup(Card.IsFaceup, tp, 0, LOCATION_MZONE, nil)
for tc in aux.Next(mg) do
local e1 = Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(tc:GetAttack() // 2)
e1:SetReset(RESET_EVENT + RESETS_STANDARD)
tc:RegisterEffect(e1)
local e2 = e1:Clone()
e2:SetCode(EFFECT_SET_DEFENSE_FINAL)
e2:SetValue(tc:GetDefense() // 2)
tc:RegisterEffect(e2)
end
local sg = Duel.GetMatchingGroup(s.thfilter, tp, 0, LOCATION_ONFIELD, nil)
if #sg > 0 then
Duel.SendtoHand(sg, nil, REASON_EFFECT)
end
end
end
function s.atkcon(e, tp, eg, ep, ev, re, r, rp)
return Duel.GetTurnPlayer() == tp
end
function s.atkop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then
local e1 = Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(1000)
e1:SetReset(RESET_EVENT + RESETS_STANDARD + RESET_DISABLE)
c:RegisterEffect(e1)
local e2 = e1:Clone()
e2:SetCode(EFFECT_UPDATE_DEFENSE)
c:RegisterEffect(e2)
end
end
--Sepialife - Blank Scherzo
--Scripted by AlphaKretin
--For Nemoma
local s = c33701015
local id = 33701015
function s.initial_effect(c)
c:SetSPSummonOnce(id)
--Special Summon
local e1 = Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetDescription(aux.Stringid(id, 0))
e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_PHASE + PHASE_END)
e1:SetRange(LOCATION_HAND + LOCATION_GRAVE)
e1:SetCountLimit(1)
e1:SetCondition(s.spcon)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
--Draw
local e2 = Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_LEAVE_FIELD)
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_CANNOT_NEGATE)
e2:SetOperation(s.regop)
c:RegisterEffect(e2)
if not s.global_flag then
s.global_flag = true
s[0] = 0
s[1] = 0
local ge1 = Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_TO_HAND)
ge1:SetOperation(s.ctop)
Duel.RegisterEffect(ge1, 0)
local ge2 = Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_PHASE + PHASE_DRAW)
ge2:SetCountLimit(1)
ge2:SetCondition(s.resetop)
Duel.RegisterEffect(ge2, 0)
end
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
return s[tp] == 0
end
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) and
Duel.IsPlayerCanDraw(tp, 2)
end
Duel.SetOperationInfo(0, CATEGORY_SPECIAL_SUMMON, c, 1, 0, 0)
Duel.SetOperationInfo(0, CATEGORY_DRAW, nil, 2, 0, 0)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c, 0, tp, tp, false, false, POS_FACEUP_ATTACK) ~= 0 then
Duel.Draw(tp, 2, REASON_EFFECT)
end
end
function s.ctfilter(c)
return not (c:IsReason(REASON_DRAW) or c:IsSetCard(0x144e))
end
function s.ctop(e, tp, eg, ep, ev, re, r, rp)
s[tp] = s[tp] + eg:FilterCount(s.ctfilter, nil)
end
function s.resetop(e, tp, eg, ep, ev, re, r, rp)
s[0] = 0
s[1] = 0
return false
end
function s.regop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
if c:IsFacedown() or not c:IsSummonType(SUMMON_TYPE_SPECIAL) or Duel.GetTurnPlayer() == effp then
return
end
local effp = c:GetControler()
local e1 = Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAINING)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetOperation(s.chainreg)
e1:SetReset(RESET_PHASE + PHASE_END)
Duel.RegisterEffect(e1, effp)
local e2 = Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVED)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(s.drcon)
e2:SetOperation(s.drop)
e2:SetReset(RESET_PHASE + PHASE_END)
Duel.RegisterEffect(e2, effp)
end
function s.chainreg(e, tp, eg, ep, ev, re, r, rp)
e:GetHandler():RegisterFlagEffect(id, RESET_EVENT + 0x1fc0000 + RESET_CHAIN, 0, 1)
end
function s.drcon(e, tp, eg, ep, ev, re, r, rp)
return ep ~= tp and e:GetHandler():GetFlagEffect(id) ~= 0
end
function s.drop(e, tp, eg, ep, ev, re, r, rp)
Duel.Hint(HINT_CARD, 0, id)
Duel.Draw(tp, 1, REASON_EFFECT)
end
--Sepialife - Peerless March
--Scripted by AlphaKretin
--For Nemoma
local s = c33701016
local id = 33701016
function s.initial_effect(c)
c:SetSPSummonOnce(id)
--Special Summon
local e1 = Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetDescription(aux.Stringid(id, 0))
e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_PHASE + PHASE_END)
e1:SetRange(LOCATION_HAND + LOCATION_GRAVE)
e1:SetCountLimit(1)
e1:SetCondition(s.spcon)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
end
function s.cfilter(c)
return c:IsFacedown() or not c:IsSetCard(0x144e)
end
function s.spcon(e, tp, eg, ep, ev, re, r, rp)
return not Duel.IsExistingMatchingCard(s.cfilter, tp, LOCATION_MZONE, 0, 1, nil)
end
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, 0, 0)
end
function s.spop(e, tp, eg, ep, ev, re, r, rp)
local c = e:GetHandler()
if
c:IsRelateToEffect(e) and Duel.SpecialSummon(c, 0, tp, tp, false, false, POS_FACEUP) ~= 0 and
Duel.SelectYesNo(tp, aux.Stringid(id, 1))
then
local e1 = Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DRAW_COUNT)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1, 0)
e1:SetValue(3) --1 normal draw + 2 "additional" cards
e1:SetReset(EVENT_PHASE + PHASE_STANDBY + RESET_SELF_TURN)
Duel.RegisterEffect(e1, tp)
end
end
function s.recon(e, tp, eg, ep, ev, re, r, rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SPECIAL)
end
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment