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

byd

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