Commit 006f3319 authored by salix5's avatar salix5
parent 86fc498e
...@@ -19,27 +19,37 @@ function c57728570.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -19,27 +19,37 @@ function c57728570.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local g=Duel.SelectReleaseGroup(tp,c57728570.costfilter,1,1,nil) local g=Duel.SelectReleaseGroup(tp,c57728570.costfilter,1,1,nil)
Duel.Release(g,REASON_COST) Duel.Release(g,REASON_COST)
end end
function c57728570.filter(c)
return c:IsType(TYPE_MONSTER) and c:IsAttackAbove(1500) and c:IsDestructable()
end
function c57728570.hgfilter(c)
return not c:IsPublic() or c57728570.filter(c)
end
function c57728570.fgfilter(c)
return not c:IsFaceup() or c57728570.filter(c)
end
function c57728570.tgfilter(c) function c57728570.tgfilter(c)
return c:IsFaceup() and c:GetAttack()>=1500 and c:IsDestructable() return ((c:IsLocation(LOCATION_HAND) and c:IsPublic()) or (c:IsLocation(LOCATION_HAND) and c:IsFaceup())) and c57728570.filter(c)
end end
function c57728570.target(e,tp,eg,ep,ev,re,r,rp,chk) function c57728570.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end local ct1=Duel.GetFieldGroup(tp,0,LOCATION_HAND):FilterCount(c57728570.hgfilter,nil)
local g=Duel.GetMatchingGroup(c57728570.tgfilter,tp,0,LOCATION_MZONE,nil) local ct2=Duel.GetFieldGroup(tp,0,LOCATION_MZONE):FilterCount(c57728570.fgfilter,nil)
if chk==0 then return ct1+ct2>0 end
local g=Duel.GetMatchingGroup(c57728570.tgfilter,tp,0,LOCATION_MZONE+LOCATION_HAND,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end end
function c57728570.filter(c)
return c:IsType(TYPE_MONSTER) and c:IsAttackAbove(1500) and c:IsDestructable()
end
function c57728570.activate(e,tp,eg,ep,ev,re,r,rp) function c57728570.activate(e,tp,eg,ep,ev,re,r,rp)
local conf=Duel.GetFieldGroup(tp,0,LOCATION_MZONE+LOCATION_HAND) local conf=Duel.GetFieldGroup(tp,0,LOCATION_MZONE+LOCATION_HAND)
local ct=0
if conf:GetCount()>0 then if conf:GetCount()>0 then
Duel.ConfirmCards(tp,conf) Duel.ConfirmCards(tp,conf)
local dg=conf:Filter(c57728570.filter,nil) local dg=conf:Filter(c57728570.filter,nil)
Duel.Destroy(dg,REASON_EFFECT) ct=Duel.Destroy(dg,REASON_EFFECT)
Duel.ShuffleHand(1-tp) Duel.ShuffleHand(1-tp)
end end
local g=Duel.GetMatchingGroup(c57728570.filter,1-tp,LOCATION_DECK,0,nil) local g=Duel.GetMatchingGroup(c57728570.filter,1-tp,LOCATION_DECK,0,nil)
if g:GetCount()>0 and Duel.SelectYesNo(1-tp,aux.Stringid(57728570,0)) then if ct>0 and g:GetCount()>0 and Duel.SelectYesNo(1-tp,aux.Stringid(57728570,0)) then
Duel.BreakEffect() Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_DESTROY) Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_DESTROY)
local dg=g:Select(1-tp,1,3,nil) local dg=g:Select(1-tp,1,3,nil)
......
...@@ -14,12 +14,6 @@ function c67556500.initial_effect(c) ...@@ -14,12 +14,6 @@ function c67556500.initial_effect(c)
e1:SetTarget(c67556500.lvtg) e1:SetTarget(c67556500.lvtg)
e1:SetOperation(c67556500.lvop) e1:SetOperation(c67556500.lvop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetOperation(c67556500.regop)
c:RegisterEffect(e2)
end end
function c67556500.lvcon(e,tp,eg,ep,ev,re,r,rp) function c67556500.lvcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetSummonType()==SUMMON_TYPE_SYNCHRO return e:GetHandler():GetSummonType()==SUMMON_TYPE_SYNCHRO
...@@ -63,16 +57,3 @@ end ...@@ -63,16 +57,3 @@ end
function c67556500.splimit(e,c,sump,sumtype,sumpos,targetp,se) function c67556500.splimit(e,c,sump,sumtype,sumpos,targetp,se)
return sumtype~=SUMMON_TYPE_SYNCHRO or e:GetOwner():GetRealFieldID()~=e:GetLabel() or e:GetOwner():IsFacedown() return sumtype~=SUMMON_TYPE_SYNCHRO or e:GetOwner():GetRealFieldID()~=e:GetLabel() or e:GetOwner():IsFacedown()
end end
function c67556500.regop(e,tp,eg,ep,ev,re,r,rp)
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:SetReset(RESET_PHASE+PHASE_END)
e1:SetTarget(c67556500.splimit2)
Duel.RegisterEffect(e1,tp)
end
function c67556500.splimit2(e,c,sump,sumtype,sumpos,targetp,se)
return c:IsCode(67556500)
end
...@@ -19,6 +19,7 @@ function c8809344.initial_effect(c) ...@@ -19,6 +19,7 @@ function c8809344.initial_effect(c)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET) e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetRange(LOCATION_MZONE) e2:SetRange(LOCATION_MZONE)
e2:SetCondition(c8809344.condition)
e2:SetTarget(c8809344.target) e2:SetTarget(c8809344.target)
e2:SetOperation(c8809344.operation) e2:SetOperation(c8809344.operation)
c:RegisterEffect(e2) c:RegisterEffect(e2)
...@@ -42,9 +43,13 @@ function c8809344.rkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -42,9 +43,13 @@ function c8809344.rkop(e,tp,eg,ep,ev,re,r,rp)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
end end
function c8809344.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsType(TYPE_XYZ) and e:GetOverlayGroup():GetCount()>0
end
function c8809344.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c8809344.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local c=e:GetHandler()
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and chkc:IsType(TYPE_MONSTER) end if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and chkc:IsType(TYPE_MONSTER) end
if chk==0 then return e:GetHandler():IsType(TYPE_XYZ) and Duel.IsExistingTarget(Card.IsType,tp,LOCATION_GRAVE,0,1,nil,TYPE_MONSTER) end if chk==0 then return Duel.IsExistingTarget(Card.IsType,tp,LOCATION_GRAVE,0,1,nil,TYPE_MONSTER) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
local g=Duel.SelectTarget(tp,Card.IsType,tp,LOCATION_GRAVE,0,1,1,nil,TYPE_MONSTER) local g=Duel.SelectTarget(tp,Card.IsType,tp,LOCATION_GRAVE,0,1,1,nil,TYPE_MONSTER)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,1,0,0) Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,g,1,0,0)
......
...@@ -296,9 +296,9 @@ EFFECT_SPSUMMON_PROC =34 --特殊召唤规则 ...@@ -296,9 +296,9 @@ EFFECT_SPSUMMON_PROC =34 --特殊召唤规则
EFFECT_EXTRA_SET_COUNT =35 --增加盖放(通常召唤)次数 EFFECT_EXTRA_SET_COUNT =35 --增加盖放(通常召唤)次数
EFFECT_SET_PROC =36 --放置(通常召唤)规则 EFFECT_SET_PROC =36 --放置(通常召唤)规则
EFFECT_LIMIT_SET_PROC =37 --放置(通常召唤)规则限制 EFFECT_LIMIT_SET_PROC =37 --放置(通常召唤)规则限制
EFFECT_DEVINE_LIGHT =38 --???(神圣光辉 魔术礼帽) EFFECT_DEVINE_LIGHT =38 --神圣光辉(魔术礼帽)
EFFECT_CANNOT_DISABLE_FLIP_SUMMON =39 --翻转召唤不会无效 EFFECT_CANNOT_DISABLE_FLIP_SUMMON =39 --翻转召唤不会无效
EFFECT_INDESTRUCTABLE =40 --不会被破坏 EFFECT_INDESTRUCTABLE =40 --不能被破坏(宫廷的规矩)
EFFECT_INDESTRUCTABLE_EFFECT =41 --不会被效果破坏 EFFECT_INDESTRUCTABLE_EFFECT =41 --不会被效果破坏
EFFECT_INDESTRUCTABLE_BATTLE =42 --不会被战斗破坏 EFFECT_INDESTRUCTABLE_BATTLE =42 --不会被战斗破坏
EFFECT_UNRELEASABLE_SUM =43 --不能做上级召唤的祭品 EFFECT_UNRELEASABLE_SUM =43 --不能做上级召唤的祭品
...@@ -352,10 +352,10 @@ EFFECT_UPDATE_ATTACK =100 --改变攻击力(攻击力增加/减少) ...@@ -352,10 +352,10 @@ EFFECT_UPDATE_ATTACK =100 --改变攻击力(攻击力增加/减少)
EFFECT_SET_ATTACK =101 --设置攻击力(攻击变成) EFFECT_SET_ATTACK =101 --设置攻击力(攻击变成)
EFFECT_SET_ATTACK_FINAL =102 --设置最终攻击力(神之化身) EFFECT_SET_ATTACK_FINAL =102 --设置最终攻击力(神之化身)
EFFECT_SET_BASE_ATTACK =103 --设置原本攻击力 EFFECT_SET_BASE_ATTACK =103 --设置原本攻击力
EFFECT_UPDATE_DEFENCE =104 --改变防御力(参考攻击力,下同) EFFECT_UPDATE_DEFENCE =104 --改变防御力
EFFECT_SET_DEFENCE =105 --设置防御力 EFFECT_SET_DEFENCE =105 --设置防御力
EFFECT_SET_DEFENCE_FINAL =106 --设置最终攻击 EFFECT_SET_DEFENCE_FINAL =106 --设置最终防御
EFFECT_SET_BASE_DEFENCE =107 --设置原本攻击 EFFECT_SET_BASE_DEFENCE =107 --设置原本防御
EFFECT_REVERSE_UPDATE =108 --倒置改变攻击力、防御力(天邪鬼) EFFECT_REVERSE_UPDATE =108 --倒置改变攻击力、防御力(天邪鬼)
EFFECT_SWAP_AD =109 --交换攻防 EFFECT_SWAP_AD =109 --交换攻防
EFFECT_SWAP_BASE_AD =110 --交换原本攻防 EFFECT_SWAP_BASE_AD =110 --交换原本攻防
...@@ -456,7 +456,7 @@ EFFECT_UNIQUE_CHECK =297 -- ...@@ -456,7 +456,7 @@ EFFECT_UNIQUE_CHECK =297 --
EFFECT_MATCH_KILL =300 --胜利龙 EFFECT_MATCH_KILL =300 --胜利龙
EFFECT_SYNCHRO_CHECK =310 --基因组斗士 EFFECT_SYNCHRO_CHECK =310 --基因组斗士
EFFECT_QP_ACT_IN_NTPHAND =311 --对方回合从自己手卡发动(失乐的圣女) EFFECT_QP_ACT_IN_NTPHAND =311 --对方回合从自己手卡发动(失乐的圣女)
EFFECT_MUST_BE_SMATERIAL =312 --同调素材必须 EFFECT_MUST_BE_SMATERIAL =312 --必须作为同调素材(波动龙 声子龙)
EFFECT_TO_GRAVE_REDIRECT_CB =313 -- EFFECT_TO_GRAVE_REDIRECT_CB =313 --
EFFECT_SPSUMMON_PROC_G =320 --P召唤规则 EFFECT_SPSUMMON_PROC_G =320 --P召唤规则
EFFECT_SPSUMMON_COUNT_LIMIT =330 --特殊召唤次数限制 EFFECT_SPSUMMON_COUNT_LIMIT =330 --特殊召唤次数限制
...@@ -655,7 +655,7 @@ GLOBALFLAG_XMAT_COUNT_LIMIT =0x80 --超量素材数量限制标记(光天使 ...@@ -655,7 +655,7 @@ GLOBALFLAG_XMAT_COUNT_LIMIT =0x80 --超量素材数量限制标记(光天使
GLOBALFLAG_SELF_TOGRAVE =0x100 -- GLOBALFLAG_SELF_TOGRAVE =0x100 --
GLOBALFLAG_SPSUMMON_ONCE =0x200 -- GLOBALFLAG_SPSUMMON_ONCE =0x200 --
-- --
EFFECT_COUNT_CODE_OATH =0x10000000 --誓约使用次数 EFFECT_COUNT_CODE_OATH =0x10000000 --使用次数限制(誓约效果)
EFFECT_COUNT_CODE_DUEL =0x20000000 --决斗中使用次数 EFFECT_COUNT_CODE_DUEL =0x20000000 --决斗中使用次数
EFFECT_COUNT_CODE_SINGLE =0x1 --多个效果公共使用次数 EFFECT_COUNT_CODE_SINGLE =0x1 --多个效果公共使用次数
--特殊选项 --特殊选项
......
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