Commit bfef0fc7 authored by 聖園ミカ's avatar 聖園ミカ 🐟

byd

parent 9672da17
......@@ -46,10 +46,10 @@ function s.tksop(e,tp,eg,ep,ev,re,r,rp)
end
end
function s.tksop2(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_SZONE)<=0 then return end
if Duel.GetLocationCount(1-tp,LOCATION_SZONE)<=0 then return end
local tc=Duel.CreateToken(tp,31300021)
if tc then
Duel.MoveToField(tc,tp,tp,LOCATION_SZONE,POS_FACEUP,true)
Duel.MoveToField(tc,tp,1-tp,LOCATION_SZONE,POS_FACEUP,true)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetType(EFFECT_TYPE_SINGLE)
......
......@@ -25,11 +25,10 @@ function s.fusioneff(c)
local e3=Effect.CreateEffect(c)
e3:SetDescription(1169)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON+CATEGORY_TOGRAVE)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetCountLimit(1,id+114)
e3:SetHintTiming(0,TIMINGS_CHECK_MONSTER+TIMING_END_PHASE)
e3:SetCost(s.cost)
e3:SetTarget(s.target)
......
-- 魔人 Bijou
--魔人 Bijou
local s,id,o=GetID()
function s.initial_effect(c)
s.specialsum(c)
......@@ -7,7 +7,7 @@ end
function s.searchcard(c)
-- to hand
--to hand
local e1=Effect.CreateEffect(c)
e1:SetDescription(1109)
e1:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
......@@ -42,7 +42,7 @@ end
function s.specialsum(c)
-- special summon
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(1109)
e1:SetCategory(CATEGORY_DESTROY+CATEGORY_SPECIAL_SUMMON)
......@@ -56,7 +56,7 @@ function s.specialsum(c)
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD+LOCATION_HAND,0,nil)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD+LOCATION_HAND,0,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_GRAVE+LOCATION_HAND)
end
......@@ -69,7 +69,7 @@ function s.fselect(g,e,tp)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD+LOCATION_HAND,0,nil)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD+LOCATION_HAND,0,c)
if not g:CheckSubGroup(s.fselect,1,1,e,tp) then return end
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,0,1)
Duel.RegisterFlagEffect(1-tp,id,RESET_PHASE+PHASE_END,0,1)
......@@ -79,13 +79,13 @@ function s.thop(e,tp,eg,ep,ev,re,r,rp)
if g:GetCount()>0 and Duel.Destroy(dg,REASON_EFFECT)~=0 and #sg>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sc=sg:Select(tp,1,1,nil):GetFirst()
if sc and Duel.SpecialSummon(sc,0,tp,1-tp,false,false,POS_FACEUP)~=0 then
if sc and Duel.SpecialSummon(sc,0,tp,tp,false,false,POS_FACEUP)~=0 then
--
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
-- e2:SetCountLimit(1)
--e2:SetCountLimit(1)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
e2:SetTarget(s.target)
e2:SetOperation(s.operation)
......
......@@ -70,7 +70,7 @@ function s.operation(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetFieldGroup(tp,LOCATION_HAND,0)
if g:GetCount()==0 then return end
local ct=Duel.SendtoDeck(g,nil,SEQ_DECKSHUFFLE,REASON_EFFECT)
if Duel.Draw(p,ct,REASON_EFFECT) and Duel.IsExistingMatchingCard(s.filter,tp,0,LOCATION_DECK,1,nil)
if Duel.Draw(tp,ct,REASON_EFFECT)~=0 and Duel.IsExistingMatchingCard(s.filter,tp,0,LOCATION_DECK,1,nil)
and Duel.SelectYesNo(1-tp,1109) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_ATOHAND)
......
--魔人 Bijou
local s,id,o=GetID()
function s.initial_effect(c)
if not s.global_check then
s.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_SPSUMMON_SUCCESS)
ge1:SetOperation(s.chk)
Duel.RegisterEffect(ge1,0)
end
s.specialsum(c)
s.fusion(c)
end
function s.chk(e,tp,eg,ep,ev,re,r,rp)
for tc in aux.Next(eg) do
local p=tc:GetSummonPlayer()
if tc:IsSummonType(SUMMON_TYPE_FUSION) and Duel.GetFlagEffect(p,id)==0 then
Duel.RegisterFlagEffect(p,id,RESET_PHASE+PHASE_END,0,0)
end
end
end
function s.fusion(c)
local e1=Effect.CreateEffect(c)
e1:SetDescription(1056)
......@@ -29,7 +44,7 @@ function s.filter1(c,e)
return c:IsFaceup() and c:IsCanBeFusionMaterial() and not c:IsImmuneToEffect(e)
end
function s.filter2(c,e,tp,m,f,chkf)
return c:IsType(TYPE_FUSION) and (not f or f(c))
return c:IsType(TYPE_FUSION) and (not f or f(c)) and c:IsRace(RACE_ROCK)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_FUSION,tp,false,false) and c:CheckFusionMaterial(m,nil,chkf)
end
function s.filter3(c,e)
......
......@@ -35,8 +35,8 @@ 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(600)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,600)
Duel.SetTargetParam(1600)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,1600)
end
function s.damop(e,tp,eg,ep,ev,re,r,rp)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
......
......@@ -155,7 +155,7 @@ function s.GetSynMaterials(tp,syncard)
return Group.__add(g,mg)
end
function s.IsCanBeSynchroMaterial(c,syncard)
if not s.NecroceanSyn(syncard) then return false end
if not (c:IsCanBeSynchroMaterial(syncard) or c:IsLevel(0)) then return false end
if c:IsStatus(STATUS_FORBIDDEN) then return false end
if c:IsHasEffect(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL) then return false end
local tp=syncard:GetControler()
......@@ -165,6 +165,7 @@ function s.IsCanBeSynchroMaterial(c,syncard)
if Duel.IsExistingMatchingCard(function(c)return c:IsType(TYPE_MONSTER) and not c:IsType(TYPE_TUNER)end,tp,LOCATION_GRAVE,0,1,nil) then return false end
if not (c:IsAbleToRemove(tp,POS_FACEUP,REASON_MATERIAL+REASON_SYNCHRO) or res) then return false end
elseif c:IsLocation(LOCATION_ONFIELD) then
if c:GetControler()==tp and c:IsFacedown() then return false end
if c:GetControler()~=tp and not res then return false end
else return false end
return true
......@@ -215,6 +216,14 @@ function s.lvplus(group,sc)
calculateRecursive(cards, 1, 0)
return results
end
function s.IsTuner(c,sc)
local p,sp=c:GetControler(),sc:GetControler()
return c:IsTuner(sc) and (c:IsFaceup() or p==sp or not c:IsOnField())
end
function s.IsNotTuner(c,sc)
local p,sp=c:GetControler(),sc:GetControler()
return c:IsNotTuner(sc) or (c:IsFacedown() and p~=sp and c:IsOnField())
end
function s.slfilter(c,tc,sc)
local lv1_1,lv1_2=s.lvs(c,sc)
local lv2_1,lv2_2=s.lvs(tc,sc)
......@@ -223,12 +232,12 @@ function s.slfilter(c,tc,sc)
if lv1_2 and lv2_2 then res1=(((lv1_1==lv2_1) and (lv1_2==lv2_2)) or ((lv1_1==lv2_2) and (lv1_2==lv2_1))) end
if not res1 then return false end
local function botht(card,syncard)
return card:IsTuner(syncard) and card:IsNotTuner(syncard)
return s.IsTuner(card,syncard) and s.IsNotTuner(card,syncard)
end
if botht(c,sc) and botht(tc,sc) then return true
elseif botht(c,sc) and not botht(tc,sc) then return false
elseif not botht(c,sc) and botht(tc,sc) then return false else
if (c:IsTuner(sc) and tc:IsTuner(sc)) or (c:IsNotTuner(sc) and tc:IsNotTuner(sc)) then return true end
if (s.IsTuner(c,sc) and s.IsTuner(tc,sc)) or (s.IsNotTuner(c,sc) and s.IsNotTuner(tc,sc)) then return true end
end
return false
end
......@@ -274,7 +283,7 @@ function s.SynMixCondition(e,c,smat,mg1,min,max)
return res and mg:IsExists(s.ntfilter,1,nil,c,mg) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function s.ntfilter(c,sc,mg)
return c:IsTuner(sc) and mg:IsExists(Card.IsNotTuner,1,c,sc)
return s.IsTuner(c,sc) and mg:IsExists(s.IsNotTuner,1,c,sc)
end
function s.syngoal(g,sc,smat,tp,mgchk)
if not g:IsExists(s.ntfilter,1,nil,sc,g) then return false end
......
......@@ -25,7 +25,7 @@ function cm.activate(e,tp,eg,ep,ev,re,r,rp)
if res1 then
Duel.SpecialSummon(tc,0,1-tp,1-tp,false,false,POS_FACEDOWN_DEFENSE)
Duel.ConfirmCards(tp,tc)
else Duel.SSet(1-tp,tc) end
else Duel.SSet(1-tp,tc,1-tp,true) end
end
Duel.ShuffleHand(1-tp)
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