Commit 4b26c60e authored by Nemo Ma's avatar Nemo Ma

fix

parent 3db6f207
......@@ -12,21 +12,20 @@ function c10700451.initial_effect(c)
c:RegisterEffect(e1)
end
function c10700451.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c10700451.filter,tp,LOCATION_DECK,0,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(c10700451.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,0,tp,LOCATION_DECK)
end
function c10700451.mfilter(c)
return c:IsFaceup() and c:IsSetCard(0x71) and c:IsRace(RACE_FAIRY)
end
function c10700451.filter(c,e,tp,chk)
return c:IsSetCard(0x71) and c:IsType(TYPE_MONSTER)
and (c:IsAbleToHand() or chk and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP))
function c10700451.filter(c,e,tp)
return c:IsSetCard(0x71) and c:IsType(TYPE_MONSTER) and (c:IsAbleToHand() or (Duel.IsExistingMatchingCard(c10700451.mfilter,tp,LOCATION_MZONE,0,1,nil) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and Duel.GetLocationCount(tp,0x04)>0))
end
function c10700451.activate(e,tp,eg,ep,ev,re,r,rp)
local b=Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(c10700451.mfilter,tp,LOCATION_MZONE,0,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c10700451.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp,b)
local g=Duel.SelectMatchingCard(tp,c10700451.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
if b and tc:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_ATTACK)
......
......@@ -11,6 +11,8 @@ function cm.initial_effect(c)
c:RegisterEffect(e1)
if not GO_RANDOM then
GO_RANDOM=true
cm[0]=0
cm[1]=0
local _SelectMatchingCard=Duel.SelectMatchingCard
local _SelectReleaseGroup=Duel.SelectReleaseGroup
local _SelectReleaseGroupEx=Duel.SelectReleaseGroupEx
......@@ -118,8 +120,9 @@ function cm.initial_effect(c)
if aux.GetValueType(nc)=="Card" then ng:RemoveCard(nc) end
if aux.GetValueType(nc)=="Group" then ng:Sub(nc) end
Duel.Hint(HINT_CARD,0,m)
local ct=Duel.GetFlagEffectLabel(sp,m)
Duel.SetFlagEffectLabel(sp,m,ct+1)
--local ct=Duel.GetFlagEffectLabel(sp,m)
--Duel.SetFlagEffectLabel(sp,m,ct+1)
cm[sp]=cm[sp]+1
return ng:RandomSelect(sp,1)
else
return _Select(g,sp,min,max,nc)
......@@ -174,8 +177,10 @@ function cm.roll(min,max)
return cm.r
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local ct1=Duel.GetFlagEffectLabel(tp,m)
local ct2=Duel.GetFlagEffectLabel(1-tp,m)
local ct1=cm[tp]--Duel.GetFlagEffectLabel(tp,m)
local ct2=cm[1-tp]--Duel.GetFlagEffectLabel(1-tp,m)
--Duel.SetFlagEffectLabel(tp,m,0)
--Duel.SetFlagEffectLabel(1-tp,m,0)
if not ct1 or not ct2 or (ct1==0 and ct2==0) then return end
if not cm.r then
--[[local result=0
......@@ -203,11 +208,12 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local tab1={}
for i=1,ct1 do
while not ac do
local int=cm.roll(1,132000015)
local int=cm.roll(1,132000016)
--continuously updated
if int>132000000 and int<132000014 then int=int+739100000 end
if int==132000014 then int=460524290 end
if int==132000015 then int=978210027 end
if int==132000016 then int=250000000 end
if KOISHI_CHECK then
local cc,ca,ctype=Duel.ReadCard(int,CARDDATA_CODE,CARDDATA_ALIAS,CARDDATA_TYPE)
if cc then
......@@ -275,11 +281,12 @@ function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local tab2={}
for i=1,ct2 do
while not ac do
local int=cm.roll(1,132000015)
local int=cm.roll(1,132000016)
--continuously updated
if int>132000000 and int<132000014 then int=int+739100000 end
if int==132000014 then int=460524290 end
if int==132000015 then int=978210027 end
if int==132000016 then int=250000000 end
if KOISHI_CHECK then
local cc,ca,ctype=Duel.ReadCard(int,CARDDATA_CODE,CARDDATA_ALIAS,CARDDATA_TYPE)
if cc then
......
......@@ -40,7 +40,7 @@ function cm.op(e,tp,eg,ep,ev,re,r,rp)
end
end
function cm.con1(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsAttackPos()
return e:GetHandler():IsDefensePos()
end
function cm.tg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
......
......@@ -20,17 +20,17 @@ function c19198170.linkfilter(c)
return c:IsLevelBelow(4) and c:IsSetCard(0x71)
end
--summon
function c19198170.mfilter(c)
return c:IsSetCard(0x71)
function c19198170.mfilter(c,e,tp)
return c:IsSetCard(0x71) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c19198170.sumtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c19198170.mfilter,tp,LOCATION_HAND,0,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(c19198170.mfilter,tp,LOCATION_HAND,0,1,nil,e,tp) and Duel.GetLocationCount(tp,0x04)>0 end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
end
function c19198170.sumop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c19198170.mfilter,tp,LOCATION_HAND,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,c19198170.mfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
......
......@@ -3,36 +3,86 @@ local m=22348134
local cm=_G["c"..m]
function cm.initial_effect(c)
--Activate
-- local e1=Effect.CreateEffect(c)
-- e1:SetCategory(CATEGORY_TOGRAVE)
-- e1:SetType(EFFECT_TYPE_ACTIVATE)
-- e1:SetCode(EVENT_FREE_CHAIN)
-- e1:SetHintTiming(0,TIMING_DRAW_PHASE+TIMING_END_PHASE,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
-- e1:SetCost(c22348134.cost)
-- e1:SetTarget(c22348134.target)
-- e1:SetOperation(c22348134.activate)
-- c:RegisterEffect(e1)
-- local e2=e1:Clone()
-- e2:SetRange(LOCATION_DECK+LOCATION_HAND)
-- c:RegisterEffect(e2)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE)
e1:SetCategory(CATEGORY_REMOVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_DRAW_PHASE+TIMING_END_PHASE,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e1:SetCost(c22348134.cost)
e1:SetHintTiming(TIMING_DRAW_PHASE)
e1:SetTarget(c22348134.target)
e1:SetOperation(c22348134.activate)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetRange(LOCATION_DECK+LOCATION_HAND)
e2:SetRange(LOCATION_DECK)
e2:SetCost(c22348134.cost)
c:RegisterEffect(e2)
--code
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
e4:SetCode(EFFECT_ACTIVATE_COST)
e4:SetRange(LOCATION_DECK)
e4:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e4:SetTargetRange(1,0)
e4:SetTarget(cm.actarget)
e4:SetOperation(cm.costop)
c:RegisterEffect(e4)
--act in hand
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetRange(LOCATION_GRAVE)
e3:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e3:SetCode(EFFECT_CHANGE_CODE)
e3:SetValue(22348080)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_TRAP_ACT_IN_HAND)
c:RegisterEffect(e3)
--code
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD)
e5:SetRange(LOCATION_GRAVE)
e5:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e5:SetCode(EFFECT_CHANGE_CODE)
e5:SetValue(22348080)
c:RegisterEffect(e5)
--instant(chain)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(22348134,1))
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetRange(LOCATION_GRAVE)
e3:SetCode(EVENT_CHAINING)
e3:SetCost(c22348134.cgcost)
e3:SetTarget(c22348134.cgtarget)
e3:SetOperation(c22348134.cgoperation)
c:RegisterEffect(e3)
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(22348134,1))
e6:SetType(EFFECT_TYPE_QUICK_O)
e6:SetRange(LOCATION_GRAVE)
e6:SetCode(EVENT_CHAINING)
e6:SetCost(c22348134.cgcost)
e6:SetTarget(c22348134.cgtarget)
e6:SetOperation(c22348134.cgoperation)
c:RegisterEffect(e6)
end
function cm.actarget(e,te,tp)
e:SetLabelObject(te)
return te:GetHandler()==e:GetHandler()
end
function cm.costop(e,tp,eg,ep,ev,re,r,rp)
local te=e:GetLabelObject()
Duel.MoveToField(e:GetHandler(),tp,tp,LOCATION_SZONE,POS_FACEUP,false)
e:GetHandler():CreateEffectRelation(te)
local c=e:GetHandler()
local ev0=Duel.GetCurrentChain()+1
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetCountLimit(1)
e1:SetCondition(function(e,tp,eg,ep,ev,re,r,rp) return ev==ev0 end)
e1:SetOperation(cm.rsop)
e1:SetReset(RESET_CHAIN)
Duel.RegisterEffect(e1,tp)
local e2=e1:Clone()
e2:SetCode(EVENT_CHAIN_NEGATED)
Duel.RegisterEffect(e2,tp)
end
function c22348134.tgfilter(c)
return c:IsSetCard(0x703)
......@@ -41,7 +91,8 @@ function c22348134.tgcostfilter(c)
return c:IsSetCard(0x703) and c:IsAbleToGraveAsCost() and not c:IsCode(22348134)
end
function c22348134.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c22348134.tgcostfilter,tp,LOCATION_DECK,0,1,nil) end
local ft=Duel.GetLocationCount(tp,LOCATION_SZONE)
if chk==0 then return Duel.IsExistingMatchingCard(c22348134.tgcostfilter,tp,LOCATION_DECK,0,1,nil) and ft>1 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c22348134.tgcostfilter,tp,LOCATION_DECK,0,1,1,nil)
Duel.SendtoGrave(g,REASON_COST)
......
......@@ -220,7 +220,7 @@ function cm.spelltg(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
function cm.negop2(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetCurrentChain()==e:GetLabel() then Duel.NegateEffect(0) end
if Duel.GetCurrentChain()==e:GetLabel() then Duel.NegateEffect(e:GetLabel()) end
end
function cm.spellop(e,tp,eg,ep,ev,re,r,rp)
local t={e:GetLabelObject():GetActivateEffect()}
......
......@@ -301,13 +301,13 @@ function cm.xop(e)
end
local tc=Duel.GetFieldCard(rp,loc,zone)
local sg=Group.CreateGroup()
sg:AddCard(tc)
if tc then sg:AddCard(tc) end
if zone~=21 and zone~=22 then
sg=Duel.GetMatchingGroup(cm.seqfilter,rp,LOCATION_ONFIELD,0,nil,zone)
end
if loc==LOCATION_FZONE then
tc=Duel.GetFieldCard(rp,loc,0)
sg=Group.FromCards(tc)
if tc then sg:AddCard(tc) end
end
if zone==22 then
local xcg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_MZONE,LOCATION_MZONE,nil,tp)
......
......@@ -34,14 +34,16 @@ function c98920007.efilter(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer() and te:IsActiveType(TYPE_MONSTER)
end
function c98920007.filter(c)
return c:IsSetCard(0x71) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand() and
Duel.GetMatchingGroupCount(Card.IsAbleToDeck,tp,LOCATION_GRAVE,0,nil)>=c:GetLevel()
return c98920007.opfilter(c) and Duel.GetMatchingGroupCount(Card.IsAbleToDeck,tp,LOCATION_GRAVE,0,nil)>=c:GetLevel()
end
function c98920007.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c98920007.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,2,tp,LOCATION_GRAVE)
end
function c98920007.opfilter(c)
return c:IsSetCard(0x71) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
function c98920007.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(c98920007.filter,tp,LOCATION_DECK,0,nil)
if #g>0 then
......@@ -50,12 +52,13 @@ function c98920007.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local tg=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_GRAVE,0,minn,maxn,nil)
if tg:GetCount()>0 and Duel.SendtoDeck(tg,nil,nil,REASON_EFFECT) then
local ct=tg:FilterCount(Card.IsLocation,nil,LOCATION_DECK+LOCATION_HAND+LOCATION_EXTRA)
if g:IsExists(Card.IsLevel,1,nil,ct) then
local ct=tg:FilterCount(Card.IsLocation,nil,LOCATION_DECK+LOCATION_EXTRA)
local ng=Duel.GetMatchingGroup(c98920007.opfilter,tp,LOCATION_DECK,0,nil)
if ng:IsExists(Card.IsLevel,1,nil,ct) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
g=g:FilterSelect(tp,Card.IsLevel,1,1,nil,ct)
if #g>0 and Duel.SendtoHand(g,nil,2,REASON_EFFECT) then
Duel.ConfirmCards(1-tp,g)
ng=ng:FilterSelect(tp,Card.IsLevel,1,1,nil,ct)
if #ng>0 and Duel.SendtoHand(ng,nil,2,REASON_EFFECT) then
Duel.ConfirmCards(1-tp,ng)
end
end
end
......
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