Commit b3867105 authored by Nemo Ma's avatar Nemo Ma Committed by GitHub

Merge pull request #2 from Sonic714/master

resolve conflicts #1
parents 1f024f1c 72933236
No preview for this file type
......@@ -55,6 +55,7 @@ end
end
--global part
table=require("table")
yume.RustFlag=false
function yume.AddYumeSummonLimit(c,ssm)
--1=special summon monster, 0=non special summon monster
ssm=ssm or 0
......@@ -80,16 +81,17 @@ function yume.GetValueType(v)
local t=type(v)
if t=="userdata" then
local mt=getmetatable(v)
if mt==Group then return "Group"
elseif mt==Effect then return "Effect"
else return "Card" end
if mt==Group then return "G"
elseif mt==Effect then return "E"
else return "C" end
else return t end
end
function yume.YumeCheckFilter(c)
return c:IsFaceup() and c:IsSetCard(0x3714)
end
function yume.IsYumeFieldOnField(tp)
return Duel.IsExistingMatchingCard(yume.YumeCheckFilter,tp,LOCATION_FZONE,0,1,nil)
local fc=Duel.GetFieldCard(tp,LOCATION_FZONE,0)
return fc and yume.YumeCheckFilter(fc)
end
--[[
Yume SpSummon Check
......@@ -98,9 +100,9 @@ v in card = material filter gen(return true = can summon)
--]]
function yume.YumeCheck(v,se,sp)
local t=yume.GetValueType(v)
if t=="Effect" then
if t=="E" then
return yume.IsYumeFieldOnField(sp)
elseif t=="Card" then
elseif t=="C" then
return function(c) return yume.IsYumeFieldOnField(v:GetControler()) end
end
end
......@@ -138,7 +140,7 @@ function yume.AddYumeFieldGlobal(c,id,ft)
eac:SetCode(EVENT_FREE_CHAIN)
eac:SetCountLimit(1,id+EFFECT_COUNT_CODE_OATH)
c:RegisterEffect(eac)
--self limitation
--[[--old self limitation
local esl=Effect.CreateEffect(c)
esl:SetDescription(aux.Stringid(71400001,1))
esl:SetType(EFFECT_TYPE_QUICK_F)
......@@ -147,6 +149,21 @@ function yume.AddYumeFieldGlobal(c,id,ft)
esl:SetCondition(yume.YumeFieldLimitCon)
esl:SetOperation(yume.YumeFieldLimitOp)
c:RegisterEffect(esl)
--]]
--self to deck
local esd1=Effect.CreateEffect(c)
esd1:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
esd1:SetCode(EVENT_CHAINING)
esd1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
esd1:SetRange(LOCATION_FZONE)
esd1:SetOperation(aux.chainreg)
c:RegisterEffect(esd1)
local esd2=Effect.CreateEffect(c)
esd2:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
esd2:SetCode(EVENT_CHAIN_SOLVED)
esd2:SetRange(LOCATION_FZONE)
esd2:SetOperation(yume.SelfToDeckOp)
c:RegisterEffect(esd2)
--field activation
local efa=Effect.CreateEffect(c)
efa:SetDescription(aux.Stringid(71400001,2))
......@@ -159,7 +176,7 @@ function yume.AddYumeFieldGlobal(c,id,ft)
efa:SetOperation(yume.FieldActivationOp)
c:RegisterEffect(efa)
end
--Against Yume
--[[--old Against Yume
function yume.YumeFieldLimitCon(e,tp,eg,ep,ev,re,r,rp)
local ec=re:GetHandler()
local loc=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)
......@@ -203,7 +220,15 @@ function yume.YumeFieldLimitOp(e,tp,eg,ep,ev,re,r,rp)
end
function yume.YumeFieldActivationLimit(e,re,tp)
local c=re:GetHandler()
return c:IsSetCard(0x714) and not c:IsImmuneToEffect(e)
return c:IsSetCard(0x714)
end
--]]
--Self To Deck
function yume.SelfToDeckOp(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not re:GetHandler():IsSetCard(0x714) and c:GetFlagEffect(1)>0 then
Duel.SendtoDeck(c,nil,2,REASON_EFFECT)
end
end
--Field Activation
function yume.YumeFieldCheck(tp,num,ft,loc)
......
--冰雪中的梦之旅者
--异梦旅者-冰冻子
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400002.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
......@@ -16,6 +17,7 @@ function c71400002.initial_effect(c)
e2:SetTargetRange(LOCATION_GRAVE+LOCATION_MZONE,0)
e2:SetCode(EFFECT_CHANGE_ATTRIBUTE)
e2:SetValue(ATTRIBUTE_WATER)
e2:SetCondition(yume.YumeCon)
c:RegisterEffect(e2)
--to deck
local e3=Effect.CreateEffect(c)
......
--梦医院的梦之患者
--异梦医院的病人-青汁君
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400006.initial_effect(c)
--summon limit
......
--梦之镇的路标
--异梦胡同的路标
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400007.initial_effect(c)
--summon limit
yume.AddYumeSummonLimit(c)
--summon success
--draw
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetDescription(aux.Stringid(71400007,0))
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DELAY)
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_BE_MATERIAL)
e1:SetCountLimit(1,71400007)
e1:SetCondition(c71400007.con1)
e1:SetTarget(c71400007.tg1)
e1:SetOperation(c71400007.op1)
c:RegisterEffect(e1)
local e1a=e1:Clone()
e1a:SetCode(EVENT_SPSUMMON_SUCCESS)
c:RegisterEffect(e1a)
--gy banish
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
......@@ -30,21 +28,19 @@ function c71400007.initial_effect(c)
e2:SetOperation(c71400007.operation)
c:RegisterEffect(e2)
end
function c71400007.tg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and Card.IsLinkState(chkc) and chkc~=c end
if chk==0 then return Duel.IsExistingTarget(Card.IsLinkState,tp,LOCATION_MZONE,0,1,c) and Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_CONTROL)>0 end
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(71400007,2))
Duel.SelectTarget(tp,Card.IsLinkState,tp,LOCATION_MZONE,0,1,1,c)
function c71400007.con1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_GRAVE) and r==REASON_LINK
end
function c71400007.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,1) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(1)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function c71400007.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) or tc:IsImmuneToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOZONE)
local s=Duel.SelectDisableField(tp,1,LOCATION_MZONE,0,0)
local nseq=math.log(s,2)
Duel.MoveSequence(tc,nseq)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
Duel.Draw(p,d,REASON_EFFECT)
end
function c71400007.filter(c,e,tp,zone)
return c:IsSetCard(0x714) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,tp,zone)
......
--梦之书中的三足怪物
--异梦书中的三足怪物
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400008.initial_effect(c)
--xyz summon
......@@ -20,7 +20,7 @@ function c71400008.initial_effect(c)
c:RegisterEffect(e1)
end
function c71400008.condition(e,tp,eg,ep,ev,re,r,rp)
return rp~=tp
return rp~=tp and Duel.GetFieldGroupCount(c:GetControler(),0,LOCATION_ONFIELD,nil)>2
end
function c71400008.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
......
--梦之书中的公式证明图表
--异梦书中的公式证明图表
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400009.initial_effect(c)
--xyz summon
......@@ -8,39 +8,38 @@ function c71400009.initial_effect(c)
yume.AddYumeSummonLimit(c,1)
--destroy
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_REMOVE)
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_LEAVE_FIELD)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetDescription(aux.Stringid(71400009,0))
e1:SetCondition(c71400009.condition)
e1:SetTarget(c71400009.target)
e1:SetOperation(c71400009.operation)
e1:SetCountLimit(1,71400009)
e1:SetTarget(c71400009.tg1)
e1:SetOperation(c71400009.op1)
c:RegisterEffect(e1)
--multi attack
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_EXTRA_ATTACK)
e2:SetValue(c71400009.raval)
c:RegisterEffect(e2)
end
function c71400009.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ct=c:GetOverlayCount()
e:SetLabel(ct)
return c:IsPreviousPosition(POS_FACEUP) and not c:IsLocation(LOCATION_DECK)
end
function c71400009.target(e,tp,eg,ep,ev,re,r,rp,chk)
function c71400009.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,0,1-tp,LOCATION_ONFIELD+LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,0,0,0)
end
function c71400009.operation(e,tp,eg,ep,ev,re,r,rp)
function c71400009.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local mcount=c:GetOverlayCount()
if mcount<=0 or not Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,mcount,nil) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,aux.TRUE,tp,LOCATION_HAND,0,1,1,nil)
if g:GetCount()==0 then return end
if Duel.Destroy(g,REASON_EFFECT)~=0 then
local mcount=e:GetLabel()
if not mcount or mcount<=0 or not Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,mcount,nil) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local sg=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_ONFIELD,mcount,mcount,nil)
local sg=Duel.SelectMatchingCard(tp,aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,mcount,nil)
Duel.HintSelection(sg)
if Duel.Destroy(sg,REASON_EFFECT)>0 then
Duel.BreakEffect()
Duel.SetLP(tp,Duel.GetLP(tp)-1000)
end
end
end
function c71400009.raval(e,c)
local oc=e:GetHandler():GetOverlayCount()
return math.max(0,oc-1)
end
\ No newline at end of file
--梦之书中的脑女
--异梦书中的脑女
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400010.initial_effect(c)
--xyz summon
......@@ -85,7 +85,6 @@ function c71400010.operation1(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e2,true)
tc=og:GetNext()
end
Duel.BreakEffect()
Duel.SetLP(tp,Duel.GetLP(tp)-atk/2)
end
function c71400010.condition2(e,tp,eg,ep,ev,re,r,rp)
......
--梦之书的管理员
--异梦书使-馆长女儿
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400011.initial_effect(c)
--xyz summon
......@@ -6,86 +6,122 @@ function c71400011.initial_effect(c)
c:EnableReviveLimit()
--summon limit
yume.AddYumeSummonLimit(c,1)
--special summon
--to hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(71400011,0))
e1:SetCountLimit(1,71400011)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCost(c71400011.cost)
e1:SetTarget(c71400011.target1)
e1:SetOperation(c71400011.operation1)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCountLimit(1,71400011+EFFECT_COUNT_CODE_DUEL)
e1:SetCondition(c71400011.con1)
e1:SetTarget(c71400011.tg1)
e1:SetOperation(c71400011.op1)
c:RegisterEffect(e1)
--fly away
local e2a=Effect.CreateEffect(c)
e2a:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2a:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2a:SetCode(EVENT_CHAINING)
e2a:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e2a:SetOperation(aux.chainreg)
c:RegisterEffect(e2a)
--special summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(71400011,1))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_CHAIN_SOLVED)
e2:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e2:SetCondition(c71400011.condition2)
e2:SetTarget(c71400011.target2)
e2:SetOperation(c71400011.operation2)
e2:SetCountLimit(1,71500011)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetCost(c71400011.cost)
e2:SetTarget(c71400011.tg2)
e2:SetOperation(c71400011.op2)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
c:RegisterEffect(e2)
--fly away
local e3a=Effect.CreateEffect(c)
e3a:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3a:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3a:SetCode(EVENT_CHAINING)
e3a:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e3a:SetOperation(aux.chainreg)
c:RegisterEffect(e3a)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(71400011,2))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_CHAIN_SOLVED)
e3:SetRange(LOCATION_MZONE+LOCATION_GRAVE)
e3:SetCondition(c71400011.con3)
e3:SetTarget(c71400011.tg3)
e3:SetOperation(c71400011.op3)
c:RegisterEffect(e3)
end
function c71400011.con1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_XYZ)
end
function c71400011.filter1(c)
return c:IsSetCard(0xe714) and c:IsAbleToHand()
end
function c71400011.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71400011.filter1,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function c71400011.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c71400011.filter1,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
function c71400011.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function c71400011.filter1(c)
return c:IsSetCard(0x714)
function c71400011.filter2(c)
return c:IsSetCard(0x714) and c:IsType(TYPE_MONSTER)
end
function c71400011.xyzfilter(c,e,tp)
return c:IsSetCard(0x3715) and c:IsType(TYPE_XYZ) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function c71400011.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingTarget(c71400011.filter1,tp,LOCATION_GRAVE,0,1,nil) and Duel.IsExistingMatchingCard(c71400011.xyzfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
function c71400011.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71400011.filter2,tp,LOCATION_GRAVE,0,1,nil) and Duel.IsExistingMatchingCard(c71400011.xyzfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local g1=Duel.SelectTarget(tp,c71400011.filter1,tp,LOCATION_GRAVE,0,1,2,nil)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g1,g1:GetCount(),tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,nil,0,tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function c71400011.operation1(e,tp,eg,ep,ev,re,r,rp)
function c71400011.op2(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c71400011.xyzfilter,tp,LOCATION_EXTRA,0,nil,e,tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
local sc=sg:GetFirst()
if sc then
Duel.SpecialSummon(sc,0,tp,tp,false,false,POS_FACEUP)
local mg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if sc and Duel.SpecialSummonStep(sc,0,tp,tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_REDIRECT)
e1:SetValue(LOCATION_DECK)
sc:RegisterEffect(e1)
Duel.SpecialSummonComplete()
local mg=Duel.GetMatchingGroup(c71400011.filter2,tp,LOCATION_GRAVE,0,nil)
if mg:GetCount()>0 then
Duel.Overlay(sc,mg)
local smg=mg:Select(tp,1,3,nil)
Duel.Overlay(sc,smg)
end
end
end
function c71400011.filter2(c)
function c71400011.filter3(c)
return c:IsSetCard(0xb714) and c:IsType(TYPE_FIELD) and c:IsAbleToHand()
end
function c71400011.condition2(e,tp,eg,ep,ev,re,r,rp)
function c71400011.con3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=re:GetHandler()
return rc:IsCode(71400026) and c:GetFlagEffect(1)>0 and re:IsHasType(EFFECT_TYPE_ACTIVATE)
return rc:IsCode(71400026) and c:GetFlagEffect(1)>0
end
function c71400011.target2(e,tp,eg,ep,ev,re,r,rp,chk)
function c71400011.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c71400011.operation2(e,tp,eg,ep,ev,re,r,rp)
function c71400011.op3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and bit.band(c:GetOriginalType(),0x802040)~=0 and Duel.SendtoDeck(c,nil,0,REASON_EFFECT)~=0 and c:IsLocation(LOCATION_EXTRA) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c71400011.filter2,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,c71400011.filter3,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
......
--梦之迷宫的剧面人
--异梦迷宫的狐面武士-师傅
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400012.initial_effect(c)
--synchro summon
......@@ -6,35 +6,74 @@ function c71400012.initial_effect(c)
c:EnableReviveLimit()
--summon limit
yume.AddYumeSummonLimit(c,1)
--cannot be target
--immune
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(aux.tgoval)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetValue(c71400012.filter1)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
--banish
local e2a=Effect.CreateEffect(c)
e2a:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)
e2a:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2a:SetCode(EVENT_CHAINING)
e2a:SetRange(LOCATION_MZONE)
e2a:SetOperation(aux.chainreg)
c:RegisterEffect(e2a)
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(71400012,0))
e2:SetCategory(CATEGORY_REMOVE+CATEGORY_DAMAGE)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_BATTLE_START)
e2:SetTarget(c71400012.target)
e2:SetOperation(c71400012.operation)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetOperation(c71400012.op2)
c:RegisterEffect(e2)
--banish
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(71400012,0))
e3:SetCategory(CATEGORY_REMOVE+CATEGORY_DAMAGE+CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_BATTLE_START)
e3:SetTarget(c71400012.tg3)
e3:SetOperation(c71400012.op3)
c:RegisterEffect(e3)
end
function c71400012.filter1(e,te)
local c=e:GetHandler()
local ec=te:GetHandler()
if ec:IsHasCardTarget(c) then return true end
return te:IsHasType(EFFECT_TYPE_ACTIONS) and te:IsHasProperty(EFFECT_FLAG_CARD_TARGET) and c:IsRelateToEffect(te)
end
function c71400012.op2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:GetFlagEffect(1)==0 then return end
if not re:IsActiveType(TYPE_EFFECT) or not re:IsHasProperty(EFFECT_FLAG_CARD_TARGET) then return end
local g=Duel.GetChainInfo(ev,CHAININFO_TARGET_CARDS)
if g and g:IsContains(c) then
local rp=re:GetHandler()
local mg=Duel.GetMatchingGroup(Card.IsAbleToRemove,rp,LOCATION_MZONE,0,c,tp)
if mg:GetCount()==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local sg=mg:Select(tp,1,1,nil)
if Duel.Destroy(tc,REASON_EFFECT,LOCATION_REMOVED)>0 then
Duel.Damage(rp,2000,REASON_EFFECT)
end
end
end
function c71400012.target(e,tp,eg,ep,ev,re,r,rp,chk)
function c71400012.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
local tc=e:GetHandler():GetBattleTarget()
if chk==0 then return tc and tc:IsControler(1-tp) and tc:IsAbleToRemove() and not tc:IsType(TYPE_TOKEN) end
if chk==0 then return tc and tc:IsAbleToRemove() end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,tc,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,2000)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,tc,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tc:GetControler(),2000)
end
function c71400012.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.Damage(1-tp,2000,REASON_EFFECT)~=0 then
function c71400012.op3(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetBattleTarget()
if tc:IsRelateToBattle() then
Duel.Remove(tc,POS_FACEDOWN,REASON_EFFECT)
if tc then
local bp=tc:GetControler()
if tc:IsRelateToBattle() and Duel.Destroy(tc,REASON_EFFECT,LOCATION_REMOVED)>0 then
Duel.Damage(bp,2000,REASON_EFFECT)
end
end
end
\ No newline at end of file
--妄想梦境-梦幻图书馆
--幻异梦境-梦幻图书馆
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400014.initial_effect(c)
--Activate
......
--妄想梦境-梦湖回廊
--幻异梦境-梦湖回廊
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400015.initial_effect(c)
--Activate
--See AddYumeFieldGlobal
--spsummon
--to hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(71400015,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetCategory(CATEGORY_TOHAND)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_FZONE)
e1:SetCountLimit(1)
e1:SetCost(c71400015.cost)
e1:SetTarget(c71400015.target1)
e1:SetOperation(c71400015.operation1)
c:RegisterEffect(e1)
......@@ -28,33 +27,21 @@ function c71400015.initial_effect(c)
--self limitation & field activation
yume.AddYumeFieldGlobal(c,71400015,1)
end
function c71400015.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsDiscardable,tp,LOCATION_HAND,0,1,nil) end
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_DISCARD+REASON_COST,nil)
end
function c71400015.filter1(c,e,tp)
return c:IsSetCard(0x714) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
function c71400015.filter1(c)
return c:IsSetCard(0xe714) and c:IsAbleToHand()
end
function c71400015.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c71400015.filter1(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c71400015.filter1,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c71400015.filter1(chkc) end
if chk==0 then Duel.IsExistingTarget(c71400015.filter1,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectTarget(tp,c71400015.filter1,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,tp,LOCATION_GRAVE)
end
function c71400015.operation1(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
if Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
Duel.SpecialSummonComplete()
end
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
function c71400015.target2(e,tp,eg,ep,ev,re,r,rp,chk)
......
--妄想梦境-空中庭园
--幻异梦境-空中庭园
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400016.initial_effect(c)
--Activate
......
--妄想梦境-门的世界
--幻异梦境-门扉房间
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400017.initial_effect(c)
--Activate
......
--妄想梦物-电锯
--幻异梦物-电锯
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400018.initial_effect(c)
--Activate
......
--妄想梦物-魔女
--幻异梦物-魔女
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400019.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetDescription(aux.Stringid(71400019,0))
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,71400019+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(c71400019.target)
e1:SetCondition(c71400019.condition)
e1:SetCondition(yume.YumeCon)
e1:SetOperation(c71400019.operation)
c:RegisterEffect(e1)
--draw
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(71400019,1))
e2:SetCategory(CATEGORY_DRAW+CATEGORY_DAMAGE)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EFFECT_TYPE_IGNITION)
e1:SetCountLimit(1,71500019)
e2:SetRange(LOCATION_GRAVE)
e2:SetCost(c71400019.cost2)
e2:SetTarget(c71400019.tg2)
e2:SetOperation(c71400019.op2)
c:RegisterEffect(e2)
end
function c71400019.filter(c,e,tp)
return c:IsSetCard(0x714) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
......@@ -19,10 +33,6 @@ function c71400019.target(e,tp,eg,ep,ev,re,r,rp,chk)
and Duel.IsExistingMatchingCard(c71400019.filter,tp,LOCATION_DECK+LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_HAND)
end
function c71400019.condition(e,tp,eg,ep,ev,re,r,rp)
tc=Duel.GetFieldCard(tp,LOCATION_SZONE,5)
return tc and tc:IsFaceup() and tc:IsSetCard(0x3714)
end
function c71400019.operation(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)
......@@ -31,3 +41,22 @@ function c71400019.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
function c71400019.filter2(c)
return c:IsSetCard(0xb714) and c:IsFaceup() and c:IsAbleToDeckAsCost()
end
function c71400019.cost2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToDeckAsCost() and Duel.IsExistingMatchingCard(c71400019.filter2,tp,LOCATION_FZONE,0,1,nil) end
local g=Duel.GetMatchingGroup(c71400019.filter2,tp,LOCATION_FZONE,0,nil)
g:AddCard(e:GetHandler())
Duel.SendtoDeck(g,nil,2,REASON_COST)
end
function c71400019.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,50)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
end
function c71400019.op2(e,tp,eg,ep,ev,re,r,rp)
if Duel.Damage(tp,50,REASON_EFFECT)>0 then
Duel.Draw(tp,2,REASON_EFFECT)
end
end
\ No newline at end of file
--妄想梦物-菜刀
--幻异梦物-菜刀
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400021.initial_effect(c)
--Activate
......
--异梦书中的人偶
function c71400024.initial_effect(c)
--xyz summon
aux.AddXyzProcedure(c,yume.YumeCheck(c),4,2)
c:EnableReviveLimit()
--summon limit
yume.AddYumeSummonLimit(c,1)
--inactivatable
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_INACTIVATE)
e1:SetRange(LOCATION_MZONE)
e1:SetValue(c71400024.filter1)
c:RegisterEffect(e1)
local e1a=Effect.CreateEffect(c)
e1a:SetType(EFFECT_TYPE_FIELD)
e1a:SetCode(EFFECT_CANNOT_DISEFFECT)
e1a:SetRange(LOCATION_MZONE)
e1a:SetValue(c71400024.filter1)
c:RegisterEffect(e1a)
--pos
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(71400024,0))
e2:SetCategory(CATEGORY_POSITION)
e2:SetCountLimit(1)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetHintTiming(0,TIMINGS_CHECK_MONSTER)
e2:SetCost(c71400024.cost2)
e2:SetRange(LOCATION_MZONE)
e2:SetTarget(c71400024.tg2)
e2:SetOperation(c71400024.op2)
c:RegisterEffect(e2)
end
function c71400024.filter1(e,ct)
local p=e:GetHandler():GetControler()
local te,tp=Duel.GetChainInfo(ct,CHAININFO_TRIGGERING_EFFECT,CHAININFO_TRIGGERING_PLAYER)
return p==tp and te:GetHandler():IsSetCard(0x715)
end
function c71400024.cost2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function c71400024.filter2(c)
return c:IsPosition(POS_FACEUP_ATTACK) and c:IsCanChangePosition()
end
function c71400024.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71400024.filter2,tp,LOCATION_MZONE,LOCATION_MZONE,1,e:GetHandler()) end
local g=Duel.GetMatchingGroup(c71400024.filter2,tp,LOCATION_MZONE,LOCATION_MZONE,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_POSITION,g,g:GetCount(),0,0)
end
function c71400024.op2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(c71400024.filter2,tp,LOCATION_MZONE,LOCATION_MZONE,c)
Duel.ChangePosition(g,POS_FACEUP_DEFENSE,0,POS_FACEUP_DEFENSE,0)
local tc=g:GetFirst()
while tc do
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_BASE_DEFENSE)
e1:SetValue(0)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CANNOT_CHANGE_POSITION)
e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e2)
tc=g:GetNext()
end
end
\ No newline at end of file
--妄想梦物-黑电话
--幻异梦物-黑电话
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400026.initial_effect(c)
--Activate
......
......@@ -73,6 +73,7 @@ function c71400027.op1(e,tp,eg,ep,ev,re,r,rp)
e2:SetValue(0)
e2:SetReset(RESET_EVENT+0x1fe0000)
sc:RegisterEffect(e2,true)
Duel.SpecialSummonComplete()
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if g:GetCount()==2 then
local tc=g:GetFirst()
......@@ -85,8 +86,8 @@ function c71400027.op1(e,tp,eg,ep,ev,re,r,rp)
end
Duel.Overlay(sc,g)
end
Duel.SpecialSummonComplete()
end
if not e:IsHasType(EFFECT_TYPE_ACTIVATE) then return end
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
......
--锈蚀的梦之怪物
--锈蚀的异梦怪物
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400028.initial_effect(c)
--link summon
......
--梦之方块间的围巾少女
--异梦方块的女-围巾子
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400029.initial_effect(c)
--summon limit
......
--腐坏的梦之怪物
--腐坏的异梦怪物
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400030.initial_effect(c)
--link summon
......
--蚀异梦境-幻想植物回路
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400032.initial_effect(c)
--Activate
--See AddYumeFieldGlobal
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(71400032,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_MAIN_END)
e1:SetCountLimit(1)
e1:SetCondition(c71400032.con1)
e1:SetRange(LOCATION_FZONE)
e1:SetTarget(c71400032.tg1)
e1:SetOperation(c71400032.op1)
c:RegisterEffect(e1)
--tograve
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(71400032,1))
e2:SetCategory(CATEGORY_TOGRAVE+CATEGORY_SEARCH+CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetRange(LOCATION_FZONE)
e2:SetCountLimit(1)
e2:SetCondition(c71400032.con2)
e2:SetTarget(c71400032.tg2)
e2:SetOperation(c71400032.op2)
c:RegisterEffect(e2)
--self limitation & field activation
yume.AddYumeFieldGlobal(c,71400032,2)
end
function c71400032.op1(e,tp,eg,ep,ev,re,r,rp)
local cnt=Duel.GetLocationCount(tp,LOCATION_MZONE)
if cnt<=0 or not e:GetHandler():IsRelateToEffect(e) then return end
if Duel.IsPlayerAffectedByEffect(tp,59822133) then cnt=1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c71400032.filter1,tp,LOCATION_HAND,0,1,cnt,nil,e,tp)
if g:GetCount()==0 then return end
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
local lnkg=Duel.GetMatchingGroup(c71400032.lnkfilter,tp,LOCATION_EXTRA,0,nil)
if lnkg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(71400032,2)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local lnk=lnkg:Select(tp,1,1,nil):GetFirst()
Duel.SpecialSummonRule(tp,lnk,SUMMON_TYPE_LINK)
end
end
function c71400032.filter1(c,e,tp)
return c:IsSetCard(0x714) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c71400032.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c71400032.filter1,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,0)
end
function c71400032.con1(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return ph==PHASE_MAIN1 or ph==PHASE_MAIN2
end
--Select Link Monsters
function c71400032.lnkfilter(c)
return c:IsSetCard(0x716) and c:IsSpecialSummonable(SUMMON_TYPE_LINK)
end
function c71400032.con2(e,tp,eg,ep,ev,re,r,rp)
local ec=eg:GetFirst()
return eg:GetCount()==1 and ec:IsSetCard(0x714) and ec:IsSummonType(SUMMON_TYPE_LINK)
end
function c71400032.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,1,tp,LOCATION_HAND+LOCATION_MZONE)
end
function c71400032.op2(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c71400032.filter2,tp,LOCATION_HAND+LOCATION_MZONE,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoGrave(g,REASON_EFFECT)==1 then
local g2=Duel.SelectMatchingCard(tp,c71400032.filter2a,tp,LOCATION_DECK,0,1,1,nil)
if g2:GetCount()>0 then
Duel.SendtoHand(g2,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g2)
Duel.BreakEffect()
Duel.SetLP(tp,Duel.GetLP(tp)-500)
end
end
end
function c71400032.filter2(c)
return c:IsSetCard(0x714) and c:IsType(TYPE_MONSTER) and c:IsAbleToGrave()
end
function c71400032.filter2a(c)
return c:IsSetCard(0xd714) and c:IsAbleToHand()
end
\ No newline at end of file
......@@ -14,6 +14,18 @@ function c71400036.initial_effect(c)
e1:SetTarget(c71400036.tg1)
e1:SetOperation(c71400036.op1)
c:RegisterEffect(e1)
--to hand
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(71400036,1))
e2:SetCountLimit(1,71500036)
e2:SetCategory(CATEGORY_TOHAND)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_TO_GRAVE)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e2:SetCondition(c71400036.con2)
e2:SetTarget(c71400036.tg2)
e2:SetOperation(c71400036.op2)
c:RegisterEffect(e2)
end
function c71400036.tg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
......@@ -29,3 +41,23 @@ function c71400036.op1(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
function c71400036.con2(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:IsReason(REASON_COST) and re:IsActivated() and re:IsActiveType(TYPE_XYZ) and c:IsPreviousLocation(LOCATION_OVERLAY) and re:GetHandler():IsSetCard(0x714)
end
function c71400036.filter2(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToHand()
end
function c71400036.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return c71400036.filter2(chkc) and chkc:IsOnField() end
if chk==0 then return Duel.IsExistingTarget(c71400036.filter2,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,CATEGORY_TOHAND)
local g=Duel.SelectTarget(tp,c71400036.filter2,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0)
end
function c71400036.op2(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
end
end
\ No newline at end of file
......@@ -5,24 +5,24 @@ function c71400037.initial_effect(c)
--See AddYumeFieldGlobal
--self limitation & field activation
yume.AddYumeFieldGlobal(c,71400037,1)
--immune
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_IMMUNE_EFFECT)
e1:SetRange(LOCATION_FZONE)
e1:SetTargetRange(LOCATION_MZONE,0)
e1:SetTarget(c71400037.tg1)
e1:SetValue(c71400037.filter1)
c:RegisterEffect(e1)
--cannot be target
local e1a=Effect.CreateEffect(c)
e1a:SetType(EFFECT_TYPE_FIELD)
e1a:SetCode(EFFECT_IGNORE_BATTLE_TARGET)
e1a:SetRange(LOCATION_FZONE)
e1a:SetTargetRange(LOCATION_MZONE,0)
e1a:SetValue(aux.imval1)
c:RegisterEffect(e1a)
local e1b=Effect.CreateEffect(c)
e1b:SetType(EFFECT_TYPE_FIELD)
e1b:SetCode(EFFECT_CANNOT_BE_EFFECT_TARGET)
e1b:SetRange(LOCATION_FZONE)
e1b:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1b:SetTargetRange(LOCATION_MZONE,0)
e1b:SetTarget(c71400037.tg1)
e1b:SetValue(1)
c:RegisterEffect(e1b)
end
function c71400037.tg1(e,c)
return c:IsSetCard(0x714)
end
\ No newline at end of file
function c71400037.filter1(e,te,c)
local tc=te:GetHandler()
local tseq=tc:GetSequence()
if tc:GetControler()~=c:GetControler() then tseq=tseq+16 end
if tc:IsLocation(LOCATION_SZONE) then tseq=tseq+8 end
local zone=c:GetColumnZone(LOCATION_ONFIELD)
return zone and bit.extract(zone,tseq)~=0
end
\ No newline at end of file
......@@ -61,6 +61,7 @@ function c71400038.activate(e,tp,eg,ep,ev,re,r,rp)
local e4a=e1:Clone()
e4a:SetCode(EFFECT_CANNOT_DISEFFECT)
Duel.RegisterEffect(e4a,tp)
yume.RustFlag=true;
end
function c71400038.con1(e,tp,eg,ep,ev,re,r,rp)
return ep==tp
......
......@@ -37,17 +37,18 @@ function c71400039.filter1(c,tp)
end
function c71400039.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,true,true) and eg:IsExists(c71400039.filter1,1,nil) end
local g=eg:Filter(c71400039.filter1,nil,tp)
Duel.SetTargetCard(eg)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)Duel.SetOperationInfo(0,CATEGORY_REMOVE,eg,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,1,0,0)
end
function c71400039.filter1a(c,e)
function c71400039.filter2a(c,e,tp)
return c:IsRelateToEffect(e) and c:IsLocation(LOCATION_MZONE)
end
function c71400039.op1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,true,true,POS_FACEUP)~=0 then
if c:IsRelateToEffect(e) and yume.IsYumeFieldOnField(tp) and Duel.SpecialSummon(c,0,tp,tp,true,true,POS_FACEUP)~=0 then
c:CompleteProcedure()
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local g=eg:Filter(c71400039.filter2a,nil,e,tp)
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end
end
\ No newline at end of file
......@@ -28,7 +28,8 @@ function c71400041.filter1c(c)
return c:IsSetCard(0x714) and c:IsType(TYPE_LINK) and c:IsLinkState() and c:IsAbleToRemoveAsCost()
end
function c71400041.cost1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71400041.filter1c,tp,LOCATION_MZONE,0,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(c71400041.filter1c,tp,LOCATION_MZONE,0,1,nil) and Duel.CheckLPCost(tp,500) end
Duel.PayLPCost(tp,500)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tc=Duel.SelectMatchingCard(tp,c71400041.filter1c,tp,LOCATION_MZONE,0,1,1,nil):GetFirst()
if Duel.Remove(tc,POS_FACEUP,REASON_COST+REASON_TEMPORARY)~=0 then
......
--异梦之书的小管理员
--小异梦书使-馆长女儿
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400042.initial_effect(c)
--summon limit
......@@ -29,9 +29,9 @@ function c71400042.initial_effect(c)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetCost(c71400042.cost3)
e3:SetTarget(c71400042.tg3)
e3:SetOperation(c71400042.op3)
e3:SetCondition(c71400042.con3)
e3:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
c:RegisterEffect(e3)
--transform
......@@ -80,13 +80,11 @@ end
function c71400042.xyzfilter(c,e,tp)
return c:IsSetCard(0x3715) and c:IsType(TYPE_XYZ) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function c71400042.cost3(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.IsExistingMatchingCard(c71400042.filter3,tp,LOCATION_HAND+LOCATION_GRAVE,0,2,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c71400042.filter3,tp,LOCATION_HAND+LOCATION_GRAVE,0,2,2,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
e:SetTargetCard(g)
function c71400042.linkfilter(c)
return c:IsFaceup() and c:IsType(TYPE_LINK)
end
function c71400042.con3(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsExistingMatchingCard(c71400042.linkfilter,tp,LOCATION_MZONE,0,1,nil)
end
function c71400042.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71400042.xyzfilter,tp,LOCATION_EXTRA,0,1,nil,e,tp) end
......@@ -97,12 +95,15 @@ function c71400042.op3(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
local sc=sg:GetFirst()
if sc then
Duel.SpecialSummon(sc,0,tp,tp,false,false,POS_FACEUP)
local mg=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if mg:GetCount()>0 then
Duel.Overlay(sc,mg)
end
if sc and Duel.SpecialSummonStep(sc,0,tp,tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_REDIRECT)
e1:SetValue(LOCATION_DECK)
sc:RegisterEffect(e1)
Duel.SpecialSummonComplete()
end
end
function c71400042.filter4(c,e,tp)
......@@ -111,7 +112,7 @@ end
function c71400042.con4(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local rc=re:GetHandler()
return rc:IsCode(71400026) and c:GetFlagEffect(1)>0 and re:IsHasType(EFFECT_TYPE_ACTIVATE)
return rc:IsCode(71400026) and c:GetFlagEffect(1)>0
end
function c71400042.tg4(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......
--异梦之海的潜水员
--异梦海底的潜水员-橘黄子
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400043.initial_effect(c)
c:SetSPSummonOnce(71400043)
......@@ -28,7 +28,21 @@ function c71400043.initial_effect(c)
e2:SetCountLimit(1)
e2:SetCondition(c71400043.con2)
e2:SetOperation(c71400043.op2)
e2:SetTarget(c71400043.tg2)
c:RegisterEffect(e2)
--banish
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(71400043,2))
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetCondition(c71400043.con3)
e3:SetOperation(c71400043.op3)
e3:SetCost(c71400043.cost3)
e3:SetTarget(c71400043.tg3)
c:RegisterEffect(e3)
--[[
--tohand
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(71400043,2))
......@@ -39,6 +53,7 @@ function c71400043.initial_effect(c)
e3:SetTarget(c71400043.tg3)
e3:SetOperation(c71400043.op3)
c:RegisterEffect(e3)
--]]
end
function c71400043.matfilter(c)
return c:IsLinkType(TYPE_EFFECT) and not c:IsLinkType(TYPE_LINK)
......@@ -47,7 +62,7 @@ function c71400043.con1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK)
end
function c71400043.filter1(c)
return c:IsSetCard(0x5714) and c:IsAbleToHand()
return c:IsSetCard(0xd714) and c:IsAbleToHand()
end
function c71400043.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71400043.thfilter,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil) end
......@@ -61,19 +76,43 @@ function c71400043.op1(e,tp,eg,ep,ev,re,r,rp)
Duel.ConfirmCards(1-tp,g)
end
end
function c71400043.filter2(c)
return c:GetSummonLocation()==LOCATION_EXTRA
end
function c71400043.filter2a(c)
return c:IsFaceup() and c:IsType(TYPE_LINK)
end
function c71400043.con2(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c71400043.filter2,tp,LOCATION_MZONE,0,nil)
return Duel.GetTurnPlayer()~=tp and g:GetCount()>0 and g:FilterCount(c71400043.filter2a,nil)==g:GetCount()
return not (yume.RustFlag or e:GetHandler():IsStatus(STATUS_SPSUMMON_TURN))
end
function c71400043.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local fc=Duel.GetFieldCard(tp,LOCATION_FZONE,0)
local num=0
if fc and fc:IsFaceup() then num=fc:GetCode() end
return yume.YumeFieldCheck(tp,num,2,LOCATION_GRAVE+LOCATION_DECK)
end
end
function c71400043.op2(e,tp,eg,ep,ev,re,r,rp)
yume.FieldActivation(tp,nil,2)
local fc=Duel.GetFieldCard(tp,LOCATION_FZONE,0)
local num=0
if fc and fc:IsFaceup() then num=fc:GetCode() end
yume.FieldActivation(tp,num,2,LOCATION_GRAVE+LOCATION_DECK)
end
function c71400043.con3(e,tp,eg,ep,ev,re,r,rp)
return yume.RustFlag
end
function c71400043.filter3(c,tp)
return c:IsAbleToRemove(tp,POS_FACEDOWN) and not(c:IsLocation(LOCATION_FZONE) and c:IsType(TYPE_FIELD) and c:IsSetCard(0x3714) and c:IsFaceup() and c:IsControler(tp))
end
function c71400043.cost3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToRemoveAsCost(POS_FACEDOWN) end
Duel.Remove(e:GetHandler(),POS_FACEDOWN,REASON_COST)
end
function c71400043.tg3(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c71400043.filter3,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil,tp) end
local g=Duel.GetMatchingGroup(c71400043.filter3,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,g:GetCount(),0,0)
end
function c71400043.op3(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c71400043.filter3,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil,tp)
Duel.Remove(g,POS_FACEDOWN,REASON_EFFECT)
end
--[[
function c71400043.filter3a(c)
return c:IsSetCard(0x5714) and c:IsAbleToDeck() and not c:IsPublic()
end
......@@ -102,3 +141,4 @@ function c71400043.op3(e,tp,eg,ep,ev,re,r,rp)
end
end
end
--]]
\ No newline at end of file
......@@ -9,10 +9,19 @@ function c71400044.initial_effect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetTarget(c71400044.tg1)
e1:SetOperation(c71400044.op1)
c:RegisterEffect(e1)
--double attack
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
e2:SetDescription(aux.Stringid(71400044,1))
e2:SetCode(EVENT_TO_GRAVE)
e2:SetCountLimit(1,71400044)
e2:SetTarget(c71400044.tg2)
e2:SetOperation(c71400044.op2)
c:RegisterEffect(e2)
end
function c71400044.filter1(c)
return c:IsSetCard(0x714) and c:IsType(TYPE_MONSTER) and not c:IsCode(71400044) and c:IsAbleToHand()
......@@ -27,33 +36,27 @@ function c71400044.op1(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
local c=e:GetHandler()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_DAMAGE)
e1:SetOperation(c71400044.regop)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetLabel(0)
Duel.RegisterEffect(e1,tp)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCountLimit(1)
e2:SetCondition(c71400044.damcon)
e2:SetOperation(c71400044.damop)
e2:SetReset(RESET_PHASE+PHASE_END)
e2:SetLabelObject(e1)
Duel.RegisterEffect(e2,tp)
end
end
function c71400044.regop(e,tp,eg,ep,ev,re,r,rp)
if e:GetLabel()~=1 and ep~=tp and (eg and eg:GetFirst():IsControler(tp) or re and re:GetHandlerPlayer()==tp) then
e:SetLabel(1)
end
function c71400044.filter2(c)
return c:IsFaceup() and c:IsSetCard(0x714)
end
function c71400044.damcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetLabelObject():GetLabel()==0
function c71400044.tg2(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c71400044.filter2(chkc) end
if chk==0 then return Duel.IsExistingTarget(c71400044.filter2,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c71400044.filter2,tp,LOCATION_MZONE,0,1,1,nil)
end
function c71400044.damop(e,tp,eg,ep,ev,re,r,rp)
Duel.SetLP(tp,Duel.GetLP(tp)-1000)
function c71400044.op2(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then
local atk=tc:GetAttack()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END)
e1:SetValue(atk*2)
tc:RegisterEffect(e1)
end
end
\ No newline at end of file
--黑白的异梦少女 Monoko
--黑白异梦少女-黑白子
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400045.initial_effect(c)
--synchro summon
......@@ -6,49 +6,94 @@ function c71400045.initial_effect(c)
c:EnableReviveLimit()
--summon limit
yume.AddYumeSummonLimit(c,1)
--act limit
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_ACTIVATE)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(0,1)
e1:SetValue(c71400045.aclimit)
e1:SetDescription(aux.Stringid(71400045,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCountLimit(1,71400045)
e1:SetCondition(c71400045.con1)
e1:SetTarget(c71400045.tg1)
e1:SetOperation(c71400045.op1)
c:RegisterEffect(e1)
--multi attack
--atkup
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_EXTRA_ATTACK)
e2:SetValue(4)
e2:SetCondition(c71400045.con2)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(c71400045.val)
c:RegisterEffect(e2)
--multi attack
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_EXTRA_ATTACK)
e3:SetValue(4)
e3:SetCondition(c71400045.con3)
c:RegisterEffect(e3)
Duel.AddCustomActivityCounter(71400045,ACTIVITY_CHAIN,c71400045.chainfilter)
--pos
local e2a=Effect.CreateEffect(c)
e2a:SetDescription(aux.Stringid(71400045,0))
e2a:SetCategory(CATEGORY_POSITION)
e2a:SetType(EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_FIELD)
e2a:SetCode(EVENT_PHASE+PHASE_BATTLE)
e2a:SetRange(LOCATION_MZONE)
e2a:SetCountLimit(1)
e2a:SetCondition(c71400045.con2a)
e2a:SetOperation(c71400045.op2a)
c:RegisterEffect(e2a)
local e3a=Effect.CreateEffect(c)
e3a:SetDescription(aux.Stringid(71400045,1))
e3a:SetCategory(CATEGORY_POSITION)
e3a:SetType(EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_FIELD)
e3a:SetCode(EVENT_PHASE+PHASE_BATTLE)
e3a:SetRange(LOCATION_MZONE)
e3a:SetCountLimit(1)
e3a:SetCondition(c71400045.con3a)
e3a:SetOperation(c71400045.op3a)
c:RegisterEffect(e3a)
end
function c71400045.con1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function c71400045.filter1(c,e,tp)
return c:IsSetCard(0x714) and c:IsType(TYPE_TUNER) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP)
end
function c71400045.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c71400045.filter1,tp,LOCATION_DECK+LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK+LOCATION_GRAVE)
end
function c71400045.op1(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c71400045.filter1),tp,LOCATION_DECK+LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(1,0)
e1:SetTarget(c71400045.splimit)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
function c71400045.splimit(e,c)
return c:IsLocation(LOCATION_EXTRA) and not (c:IsType(TYPE_SYNCHRO) and c:IsSetCard(0x714))
end
function c71400045.val(e,c)
return Duel.GetMatchingGroupCount(c71400045.filter2,c:GetControler(),LOCATION_GRAVE+LOCATION_MZONE,0,nil)*300
end
function c71400045.filter2(c)
return c:IsSetCard(0x717) and (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup())
end
function c71400045.chainfilter(re,tp,cid)
return not (re:GetHandler():IsCode(71400047) and re:IsHasType(EFFECT_TYPE_ACTIVATE))
end
function c71400045.aclimit(e,re,tp)
return not re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:IsActiveType(TYPE_SPELL+TYPE_TRAP) and not re:GetHandler():IsImmuneToEffect(e)
end
function c71400045.con2(e)
function c71400045.con3(e)
return Duel.GetCustomActivityCount(71400045,e:GetHandlerPlayer(),ACTIVITY_CHAIN)>0
end
function c71400045.con2a(e,tp,eg,ep,ev,re,r,rp)
function c71400045.con3a(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c71400045.con2(e) and c:IsAttackPos() and c:GetBattledGroupCount()>0
end
function c71400045.op2a(e,tp,eg,ep,ev,re,r,rp)
function c71400045.op3a(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsAttackPos() then
Duel.ChangePosition(c,POS_FACEUP_DEFENSE)
......
--黑白的异梦少女 Monoe
--黑白异梦少女-黑白江
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400046.initial_effect(c)
--synchro summon
......@@ -6,58 +6,77 @@ function c71400046.initial_effect(c)
c:EnableReviveLimit()
--summon limit
yume.AddYumeSummonLimit(c,1)
--destroy
--to deck
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(71400046,0))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
e1:SetCountLimit(1,71400046)
e1:SetCategory(CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c71400046.con1)
e1:SetTarget(c71400046.tg1)
e1:SetOperation(c71400046.op1)
c:RegisterEffect(e1)
--self banish
local e1a=e1:Clone()
e1a:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e1a)
--atkup
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(71400046,1))
e2:SetCategory(CATEGORY_REMOVE)
e2:SetType(EFFECT_TYPE_QUICK_F)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EVENT_BECOME_TARGET)
e2:SetCondition(c71400046.con2)
e2:SetTarget(c71400046.tg2)
e2:SetOperation(c71400046.op2)
e2:SetValue(c71400046.val)
c:RegisterEffect(e2)
local e2a=e2:Clone()
e2a:SetDescription(aux.Stringid(71400046,1))
e2a:SetCode(EVENT_BE_BATTLE_TARGET)
c:RegisterEffect(e2a)
--self banish
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(71400046,1))
e3:SetCategory(CATEGORY_REMOVE)
e3:SetType(EFFECT_TYPE_QUICK_F)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EVENT_BECOME_TARGET)
e3:SetCondition(c71400046.con3)
e3:SetTarget(c71400046.tg3)
e3:SetOperation(c71400046.op3)
c:RegisterEffect(e3)
local e3a=e3:Clone()
e3a:SetCode(EVENT_BE_BATTLE_TARGET)
c:RegisterEffect(e3a)
end
function c71400046.filter1(c,tp)
return c:IsSummonPlayer(1-tp) and c:IsAbleToDeck() and c:IsLocation(LOCATION_MZONE)
end
function c71400046.con1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function c71400046.tg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc~=c end
if chk==0 then return Duel.IsExistingTarget(aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,c) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,c)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,g:GetCount(),0,0)
function c71400046.tg1(e,tp,eg,ep,ev,re,r,rp,chk)
local g=eg:Filter(c71400046.filter1,nil,tp)
local ct=g:GetCount()
if chk==0 then return ct>0 end
Duel.SetTargetCard(eg)
Duel.SetOperationInfo(0,CATEGORY_TODECK,g,ct,0,0)
end
function c71400046.op1(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.Destroy(tc,REASON_EFFECT)
local g=eg:Filter(c71400046.filter1,nil,tp):Filter(Card.IsRelateToEffect,nil,e)
if g:GetCount()>0 then
Duel.SendtoDeck(g,nil,2,REASON_EFFECT)
end
end
function c71400046.con2(e,tp,eg,ep,ev,re,r,rp)
function c71400046.val(e,c)
return Duel.GetMatchingGroupCount(c71400046.filter2,c:GetControler(),LOCATION_GRAVE+LOCATION_MZONE,0,nil)*300
end
function c71400046.filter2(c)
return c:IsSetCard(0x717) and (c:IsLocation(LOCATION_GRAVE) or c:IsFaceup())
end
function c71400046.con3(e,tp,eg,ep,ev,re,r,rp)
return eg:IsContains(e:GetHandler())
end
function c71400046.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
function c71400046.tg3(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 c71400046.op2(e,tp,eg,ep,ev,re,r,rp)
function c71400046.op3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and Duel.Remove(c,0,REASON_EFFECT+REASON_TEMPORARY)~=0 then
local e1=Effect.CreateEffect(c)
......
......@@ -68,16 +68,15 @@ function c71400049.synfilter2(c)
end
function c71400049.con2(e,tp,eg,ep,ev,re,r,rp)
local ct=eg:FilterCount(c71400049.synfilter2,nil)
if ct>0 then e:SetLabel(ct) end
return ct>0
end
function c71400049.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,LOCATION_GRAVE)
end
function c71400049.op2(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local ct=e:GetLabel() or 0
local ct=eg:FilterCount(c71400049.synfilter2,nil)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local g=Duel.GetMatchingGroup(c71400049.filter1,tp,LOCATION_GRAVE,0,nil,e,tp)
ct=math.min(ct,ft,g:GetCount())
......
--黑白的异梦引导
--黑白异梦的邂逅
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400050.initial_effect(c)
--Activate
......
--黑白的异梦协奏
--黑白异梦的协奏
xpcall(function() require("expansions/script/c71400001") end,function() require("script/c71400001") end)
function c71400051.initial_effect(c)
--Activate
......@@ -12,10 +12,10 @@ function c71400051.initial_effect(c)
e1:SetDescription(aux.Stringid(71400051,0))
e1:SetCountLimit(1,71400051)
c:RegisterEffect(e1)
--destroy
--to grave
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(71400051,1))
e2:SetCategory(CATEGORY_DESTROY)
e2:SetCategory(CATEGORY_TOGRAVE)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_CHAIN_NEGATED)
......@@ -83,16 +83,18 @@ function c71400051.con2(e,tp,eg,ep,ev,re,r,rp)
return yume.YumeCon(e,tp) and de and dp~=tp and re:GetHandler():IsSetCard(0x714) and rp==tp
end
function c71400051.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_GRAVE,0,1,e:GetHandler(),0x717) and Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_DESTROY,nil,1,1-tp,LOCATION_ONFIELD)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsSetCard,tp,LOCATION_GRAVE+LOCATION_ONFIELD,0,1,e:GetHandler(),0x717) and Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,0,LOCATION_ONFIELD+LOCATION_HAND,1,nil) end
local g=Duel.GetMatchingGroup(Card.IsAbleToGrave,tp,0,LOCATION_ONFIELD+LOCATION_HAND,nil)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,1,1-tp,LOCATION_ONFIELD+LOCATION_HAND)
end
function c71400051.op2(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(Card.IsSetCard,tp,LOCATION_GRAVE,0,1,nil,0x717)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil)
if not yume.IsYumeFieldOnField(tp) then return end
local ct=Duel.GetMatchingGroupCount(Card.IsSetCard,tp,LOCATION_GRAVE+LOCATION_ONFIELD,0,1,nil,0x717)
local g=Duel.GetMatchingGroup(Card.IsAbleToGrave,tp,0,LOCATION_ONFIELD+LOCATION_HAND,nil)
if ct>0 and g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local dg=g:Select(tp,1,ct,nil)
Duel.HintSelection(dg)
Duel.Destroy(dg,REASON_EFFECT)
Duel.SendtoGrave(dg,REASON_EFFECT)
end
end
\ No newline at end of file
......@@ -40,10 +40,10 @@
!setname 0xe714 幻异梦物
!setname 0x7714 蚀异梦境
!setname 0xd714 蚀异梦物
!setname 0x715 异梦之书
!setname 0x3715 异梦之书中
!setname 0x715 异梦
!setname 0x3715 异梦书中
!setname 0x716 异梦怪物
!setname 0x717 黑白的异梦
!setname 0x717 黑白异梦
#Viola 011 0xe10-0xe1f
......
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