Commit 4946107b authored by argon.sun's avatar argon.sun

ABYR

parent cf9be67e
......@@ -180,6 +180,9 @@ int32 effect::is_activateable(uint8 playerid, tevent& e, int32 neglect_cond, int
if((handler == owner) && !(flag & EFFECT_FLAG_CANNOT_DISABLE) && handler->is_status(STATUS_DISABLED))
return FALSE;
}
} else {
if((get_owner_player() != playerid) && !(flag & EFFECT_FLAG_BOTH_SIDE))
return FALSE;
}
pduel->game_field->save_lp_cost();
effect* oreason = pduel->game_field->core.reason_effect;
......
--7つの武器を持つハンター
function c1525329.initial_effect(c)
--arm
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(1525329,0))
e1:SetCategory(CATEGORY_EQUIP)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE)
e1:SetTarget(c1525329.armtg)
e1:SetOperation(c1525329.armop)
c:RegisterEffect(e1)
end
function c1525329.armtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,563)
local rc=Duel.AnnounceRace(tp,1,0xffffff)
e:SetLabel(rc)
end
function c1525329.armop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then
local rc=e:GetLabel()
e:GetHandler():SetHint(CHINT_RACE,rc)
--atk up
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(1525329,1))
e1:SetCategory(CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_PRE_DAMAGE_CALCULATE)
e1:SetCondition(c1525329.upcon)
e1:SetOperation(c1525329.upop)
e1:SetLabel(rc)
e1:SetReset(RESET_EVENT+0x1fe0000)
c:RegisterEffect(e1)
end
end
function c1525329.upcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local bc=c:GetBattleTarget()
return bc and bc:IsRace(e:GetLabel())
end
function c1525329.upop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) and c:IsFaceup() then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetReset(RESET_PHASE+RESET_DAMAGE_CAL)
e1:SetValue(1000)
c:RegisterEffect(e1)
end
end
......@@ -11,8 +11,8 @@ function c15800838.initial_effect(c)
c:RegisterEffect(e1)
end
function c15800838.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)>0
and Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>0 end
if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>0
and Duel.IsExistingMatchingCard(nil,tp,LOCATION_HAND,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,564)
local ac=Duel.AnnounceCard(tp)
e:SetLabel(ac)
......
......@@ -9,6 +9,8 @@ function c16197610.initial_effect(c)
--selfdes
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_SELF_DESTROY)
e2:SetCondition(c16197610.sdcon)
c:RegisterEffect(e2)
......
......@@ -9,6 +9,8 @@ function c17810268.initial_effect(c)
--selfdes
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_SELF_DESTROY)
e2:SetCondition(c17810268.sdcon)
c:RegisterEffect(e2)
......
......@@ -9,6 +9,8 @@ function c20003527.initial_effect(c)
--selfdes
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_SELF_DESTROY)
e2:SetCondition(c20003527.sdcon)
c:RegisterEffect(e2)
......
--ヒロイック・アドバンス
function c21924381.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_BE_BATTLE_TARGET)
e1:SetCondition(c21924381.condition)
e1:SetTarget(c21924381.target)
e1:SetOperation(c21924381.activate)
c:RegisterEffect(e1)
end
function c21924381.condition(e,tp,eg,ep,ev,re,r,rp)
local d=Duel.GetAttackTarget()
return d:IsFaceup() and d:IsControler(tp) and d:IsSetCard(0x6f)
end
function c21924381.filter(c)
return c:IsFaceup() and c:IsLevelBelow(4) and c:IsSetCard(0x6f)
end
function c21924381.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(tp) and c21924381.filter(chkc) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingTarget(c21924381.filter,tp,LOCATION_MZONE,0,1,Duel.GetAttackTarget()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
Duel.SelectTarget(tp,c21924381.filter,tp,LOCATION_MZONE,0,1,1,Duel.GetAttackTarget())
Duel.GetAttacker():CreateEffectRelation(e)
end
function c21924381.activate(e,tp,eg,ep,ev,re,r,rp)
local a=Duel.GetAttacker()
local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) and a:IsRelateToEffect(e) and a:IsFaceup() then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetValue(tc:GetAttack()*2)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_BATTLE)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e2:SetValue(1)
e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_DAMAGE)
tc:RegisterEffect(e2)
local e3=e2:Clone()
a:RegisterEffect(e3)
Duel.CalculateDamage(a,tc)
end
end
--しっぺ返し
function c22747316.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY+CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING)
e1:SetCondition(c22747316.condition)
e1:SetTarget(c22747316.target)
e1:SetOperation(c22747316.activate)
c:RegisterEffect(e1)
end
function c22747316.condition(e,tp,eg,ep,ev,re,r,rp)
return rp~=tp and re:IsHasType(EFFECT_TYPE_ACTIVATE) and Duel.IsChainNegatable(ev)
and Duel.IsExistingMatchingCard(Card.IsCode,tp,LOCATION_GRAVE,0,1,nil,re:GetHandler():GetCode())
end
function c22747316.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
end
function c22747316.filter(c,code)
return c:IsCode(code) and c:IsAbleToHand() and not c:IsHasEffect(EFFECT_NECRO_VALLEY)
end
function c22747316.activate(e,tp,eg,ep,ev,re,r,rp)
local code=re:GetHandler():GetCode()
Duel.NegateActivation(ev)
if re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
end
local g=Duel.GetMatchingGroup(c22747316.filter,tp,LOCATION_GRAVE,0,nil,code)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(22747316,0)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
end
end
--魔力誘爆
function c22869904.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetCondition(c22869904.condition)
e1:SetTarget(c22869904.target)
e1:SetOperation(c22869904.activate)
c:RegisterEffect(e1)
end
function c22869904.cfilter(c,tp)
return c:IsType(TYPE_SPELL) and c:IsPreviousLocation(LOCATION_SZONE)
and c:GetPreviousControler()==1-tp and c:GetPreviousSequence()~=5
end
function c22869904.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c22869904.cfilter,1,nil,tp)
end
function c22869904.filter(c)
return c:IsFaceup() and c:IsDestructable()
end
function c22869904.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c22869904.filter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c22869904.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectTarget(tp,c22869904.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function c22869904.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) then
Duel.Destroy(tc,REASON_EFFECT)
end
end
--マドルチェ・ハッピーフェスタ
function c23681456.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c23681456.target)
e1:SetOperation(c23681456.operation)
c:RegisterEffect(e1)
end
function c23681456.filter(c,e,tp)
return c:IsSetCard(0x71) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c23681456.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c23681456.filter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function c23681456.operation(e,tp,eg,ep,ev,re,r,rp)
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
if ft<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c23681456.filter,tp,LOCATION_HAND,0,1,ft,nil,e,tp)
if g:GetCount()>0 then
local tc=g:GetFirst()
while tc do
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP)
tc:RegisterFlagEffect(23681456,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc=g:GetNext()
end
Duel.SpecialSummonComplete()
g:KeepAlive()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabelObject(g)
e1:SetOperation(c23681456.retop)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
end
end
function c23681456.retfilter(c)
return c:GetFlagEffect(23681456)>0
end
function c23681456.retop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c23681456.retfilter,nil)
g:DeleteGroup()
Duel.SendtoDeck(tg,nil,2,REASON_EFFECT)
end
--ロケット戦士
function c30860696.initial_effect(c)
--invincible
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE)
e1:SetCondition(c30860696.ivcon)
e1:SetValue(1)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_AVOID_BATTLE_DAMAGE)
e2:SetCondition(c30860696.ivcon)
e2:SetValue(1)
c:RegisterEffect(e2)
--reduce atk
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(30860696,0))
e3:SetCategory(CATEGORY_ATKCHANGE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_BATTLE_END)
e3:SetCondition(c30860696.racon)
e3:SetOperation(c30860696.raop)
c:RegisterEffect(e3)
end
function c30860696.ivcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()==e:GetHandlerPlayer()
end
function c30860696.racon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler()==Duel.GetAttacker() and Duel.GetAttackTarget()
end
function c30860696.raop(e,tp,eg,ep,ev,re,r,rp)
local d=Duel.GetAttackTarget()
if not d:IsRelateToBattle() or d:IsFacedown() then return end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(-500)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
d:RegisterEffect(e1)
end
\ No newline at end of file
......@@ -10,9 +10,9 @@ function c33423043.initial_effect(c)
c:RegisterEffect(e1)
end
function c33423043.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)>0
and Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>0 end
Duel.Hint(HINT_SELECTMSG,tp,0)
if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_HAND)>0
and Duel.IsExistingMatchingCard(nil,tp,LOCATION_HAND,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,564)
local ac=Duel.AnnounceCard(tp)
e:SetLabel(ac)
e:GetHandler():SetHint(CHINT_CARD,ac)
......
--アビスコール
function c34707034.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c34707034.target)
e1:SetOperation(c34707034.operation)
c:RegisterEffect(e1)
end
function c34707034.filter(c,e,tp)
return c:IsSetCard(0x74) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c34707034.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler() and c34707034.filter(chkc,e,tp) end
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>2
and Duel.IsExistingTarget(c34707034.filter,tp,LOCATION_GRAVE,0,3,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,c34707034.filter,tp,LOCATION_GRAVE,0,3,3,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,3,0,0)
end
function c34707034.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<3 then return end
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
if g:GetCount()<3 then return end
local c=e:GetHandler()
local tc=g:GetFirst()
while tc do
Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP_DEFENCE)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_ATTACK_ANNOUNCE)
e1:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE)
e2:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE_EFFECT)
e3:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e3)
tc:RegisterFlagEffect(34707034,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
tc=g:GetNext()
end
Duel.SpecialSummonComplete()
g:KeepAlive()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetCountLimit(1)
e1:SetLabelObject(g)
e1:SetOperation(c34707034.desop)
Duel.RegisterEffect(e1,tp)
end
function c34707034.desfilter(c)
return c:GetFlagEffect(34707034)>0
end
function c34707034.desop(e,tp,eg,ep,ev,re,r,rp)
local g=e:GetLabelObject()
local tg=g:Filter(c34707034.desfilter,nil)
g:DeleteGroup()
Duel.Destroy(tg,REASON_EFFECT)
end
--漆黒の豹戦士パンサーウォリアー
function c42035044.initial_effect(c)
--attack cost
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_ATTACK_COST)
e1:SetCost(c42035044.atcost)
e1:SetOperation(c42035044.atop)
c:RegisterEffect(e1)
end
function c42035044.atcost(e,c,tp)
return Duel.CheckReleaseGroup(tp,nil,1,e:GetHandler())
end
function c42035044.atop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectReleaseGroup(tp,nil,1,1,e:GetHandler())
Duel.Release(g,REASON_COST)
end
--漆黒の豹戦士パンサーウォリアー
function c42035045.initial_effect(c)
--attack cost
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_ATTACK_COST)
e1:SetCost(c42035045.atcost)
e1:SetOperation(c42035045.atop)
c:RegisterEffect(e1)
end
function c42035045.atcost(e,c,tp)
return Duel.CheckReleaseGroup(tp,nil,1,e:GetHandler())
end
function c42035045.atop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectReleaseGroup(tp,nil,1,1,e:GetHandler())
Duel.Release(g,REASON_COST)
end
......@@ -9,6 +9,8 @@ function c43318266.initial_effect(c)
--selfdes
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_SELF_DESTROY)
e2:SetCondition(c43318266.sdcon)
c:RegisterEffect(e2)
......
--右手に盾を左手に剣を
function c52097679.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetTarget(c52097679.target)
e1:SetOperation(c52097679.activate)
c:RegisterEffect(e1)
end
function c52097679.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end
end
function c52097679.activate(e,tp,eg,ep,ev,re,r,rp)
local sg=Duel.GetMatchingGroup(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,nil)
local c=e:GetHandler()
local tc=sg:GetFirst()
while tc do
local atk=tc:GetBaseAttack()
local def=tc:GetBaseDefence()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK_FINAL)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
e1:SetValue(def)
tc:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_SET_DEFENCE_FINAL)
e2:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
e2:SetValue(atk)
tc:RegisterEffect(e2)
tc=sg:GetNext()
end
end
--X·E·N·O
function c5257687.initial_effect(c)
--flip
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(5257687,0))
e1:SetCategory(CATEGORY_CONTROL)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_FLIP)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(c5257687.target)
e1:SetOperation(c5257687.operation)
c:RegisterEffect(e1)
end
function c5257687.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and chkc:IsControlerCanBeChanged() end
if chk==0 then return true end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectTarget(tp,Card.IsControlerCanBeChanged,tp,0,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end
function c5257687.operation(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) then
if Duel.GetControl(tc,tp,PHASE_END,1) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_DIRECT_ATTACK)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END)
tc:RegisterEffect(e1)
elseif not tc:IsImmuneToEffect(e) and tc:IsAbleToChangeControler() then
Duel.Destroy(tc,REASON_EFFECT)
end
end
end
......@@ -14,14 +14,6 @@ function c53334471.initial_effect(c)
e2:SetRange(LOCATION_SZONE)
e2:SetOperation(c53334471.adjustop)
c:RegisterEffect(e2)
--adjust
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetRange(LOCATION_SZONE)
e3:SetOperation(c53334471.adjustop2)
c:RegisterEffect(e3)
--cannot summon,spsummon,flipsummon
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
......@@ -77,17 +69,19 @@ function c53334471.adjustop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if g1:GetCount()==0 then c53334471[tp]=0
else
if c53334471[tp]==0 then
c53334471[tp]=c53334471.getattribute(g1)
if bit.band(c53334471[tp],c53334471[tp]-1)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(53334471,0))
c53334471[tp]=Duel.AnnounceAttribute(tp,1,c53334471.getattribute(g1))
c53334471[tp]=Duel.AnnounceAttribute(tp,1,c53334471[tp])
end
g1:Remove(c53334471.rmfilter,nil,c53334471[tp])
end
if g2:GetCount()==0 then c53334471[1-tp]=0
else
if c53334471[1-tp]==0 then
c53334471[1-tp]=c53334471.getattribute(g2)
if bit.band(c53334471[1-tp],c53334471[1-tp]-1)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(53334471,0))
c53334471[1-tp]=Duel.AnnounceAttribute(1-tp,1,c53334471.getattribute(g2))
c53334471[1-tp]=Duel.AnnounceAttribute(1-tp,1,c53334471[1-tp])
end
g2:Remove(c53334471.rmfilter,nil,c53334471[1-tp])
end
......@@ -97,10 +91,3 @@ function c53334471.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.Readjust()
end
end
function c53334471.op2filter(c)
return c:IsFaceup() and c:GetAttribute()>0
end
function c53334471.adjustop2(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsExistingMatchingCard(c53334471.op2filter,tp,LOCATION_MZONE,0,1,nil) then c53334471[tp]=0 end
if not Duel.IsExistingMatchingCard(c53334471.op2filter,tp,0,LOCATION_MZONE,1,nil) then c53334471[1-tp]=0 end
end
--軍隊竜
function c55013285.initial_effect(c)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(55013285,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_BATTLE_DESTROYED)
e1:SetCondition(c55013285.condition)
e1:SetTarget(c55013285.target)
e1:SetOperation(c55013285.operation)
c:RegisterEffect(e1)
end
function c55013285.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_GRAVE) and e:GetHandler():IsReason(REASON_BATTLE)
end
function c55013285.filter(c,e,tp)
return c:IsCode(55013285) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEDOWN_DEFENCE)
end
function c55013285.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c55013285.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function c55013285.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)
local g=Duel.SelectMatchingCard(tp,c55013285.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
......@@ -9,6 +9,8 @@ function c57610714.initial_effect(c)
--selfdes
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_SELF_DESTROY)
e2:SetCondition(c57610714.sdcon)
c:RegisterEffect(e2)
......
--キャッシュバック
function c59957503.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_NEGATE+CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_CHAINING)
e1:SetCondition(c59957503.condition)
e1:SetTarget(c59957503.target)
e1:SetOperation(c59957503.activate)
c:RegisterEffect(e1)
if not c59957503.global_check then
c59957503.global_check=true
c59957503[0]=nil
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_PAY_LPCOST)
ge1:SetOperation(c59957503.checkop)
Duel.RegisterEffect(ge1,0)
end
end
function c59957503.checkop(e,tp,eg,ep,ev,re,r,rp)
c59957503[0]=re
end
function c59957503.condition(e,tp,eg,ep,ev,re,r,rp)
local acte=c59957503[0]
c59957503[0]=nil
return re==acte and rp~=tp and (re:IsActiveType(TYPE_MONSTER) or re:IsHasType(EFFECT_TYPE_ACTIVATE)) and Duel.IsChainNegatable(ev)
end
function c59957503.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_TODECK,eg,1,0,0)
end
end
function c59957503.activate(e,tp,eg,ep,ev,re,r,rp)
local ec=re:GetHandler()
Duel.NegateActivation(ev)
if re:GetHandler():IsRelateToEffect(re) then
ec:CancelToGrave()
Duel.SendtoDeck(ec,nil,2,REASON_EFFECT)
end
end
--好敵手の記憶
function c60080151.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DAMAGE+CATEGORY_REMOVE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetCondition(c60080151.condition)
e1:SetTarget(c60080151.target)
e1:SetOperation(c60080151.activate)
c:RegisterEffect(e1)
end
function c60080151.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer()
end
function c60080151.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local tg=Duel.GetAttacker()
if chkc then return chkc==tg end
if chk==0 then return tg:IsOnField() and tg:IsCanBeEffectTarget(e) and tg:IsAbleToRemove() end
Duel.SetTargetCard(tg)
local dam=tg:GetAttack()
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,dam)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,tg,1,0,0)
end
function c60080151.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() then
local dam=tc:GetAttack()
Duel.Damage(tp,dam,REASON_EFFECT)
if Duel.Remove(tc,POS_FACEUP,REASON_EFFECT)>0 then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetDescription(aux.Stringid(60080151,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetCondition(c60080151.spcon)
e1:SetTarget(c60080151.sptg)
e1:SetOperation(c60080151.spop)
e1:SetLabelObject(tc)
e1:SetLabel(Duel.GetTurnCount())
e1:SetReset(RESET_PHASE+PHASE_END+RESET_OPPO_TURN,2)
Duel.RegisterEffect(e1,tp)
tc:RegisterFlagEffect(60080151,RESET_EVENT+0x1fe0000,0,0)
end
end
end
function c60080151.spcon(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetLabelObject()
return Duel.GetTurnCount()~=e:GetLabel() and Duel.GetTurnPlayer()~=tp
and tc:GetFlagEffect(60080151)~=0 and tc:GetReasonEffect():GetHandler()==e:GetHandler()
end
function c60080151.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetCard(e:GetLabelObject())
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetLabelObject(),1,0,0)
end
function c60080151.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
end
end
--アビスフィアー
function c60202749.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(0,TIMING_END_PHASE)
e1:SetTarget(c60202749.target)
e1:SetOperation(c60202749.operation)
c:RegisterEffect(e1)
--act limit
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetCode(EFFECT_CANNOT_ACTIVATE)
e2:SetRange(LOCATION_SZONE)
e2:SetTargetRange(1,0)
e2:SetValue(c60202749.aclimit)
c:RegisterEffect(e2)
--destroy
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetOperation(c60202749.desop)
c:RegisterEffect(e3)
end
function c60202749.filter(c,e,tp)
return c:IsSetCard(0x74) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c60202749.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c60202749.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1)
e1:SetCondition(c60202749.sdescon)
e1:SetOperation(c60202749.sdesop)
if Duel.GetCurrentPhase()==PHASE_END and Duel.GetTurnPlayer()~=tp then
e1:SetLabel(1)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_OPPO_TURN,2)
else
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_OPPO_TURN)
end
e:GetHandler():RegisterEffect(e1)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end
function c60202749.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) or Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c60202749.filter,tp,LOCATION_DECK,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
c:SetCardTarget(tc)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_OWNER_RELATE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EFFECT_DISABLE)
e1:SetReset(RESET_EVENT+0x1fe0000)
e1:SetCondition(c60202749.rcon)
tc:RegisterEffect(e1,true)
end
end
function c60202749.rcon(e)
return e:GetOwner():IsHasCardTarget(e:GetHandler())
end
function c60202749.sdescon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
end
function c60202749.sdesop(e,tp,eg,ep,ev,re,r,rp)
if e:GetLabel()==0 then
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
else
e:SetLabel(0)
end
end
function c60202749.aclimit(e,re,tp)
return re:IsHasType(EFFECT_TYPE_ACTIVATE) and re:IsActiveType(TYPE_SPELL)
end
function c60202749.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetFirstCardTarget()
if tc and tc:IsLocation(LOCATION_MZONE) then
Duel.Destroy(tc,REASON_EFFECT)
end
end
......@@ -9,6 +9,8 @@ function c79703905.initial_effect(c)
--selfdes
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCode(EFFECT_SELF_DESTROY)
e2:SetCondition(c79703905.sdcon)
c:RegisterEffect(e2)
......
......@@ -14,14 +14,6 @@ function c90846359.initial_effect(c)
e2:SetRange(LOCATION_SZONE)
e2:SetOperation(c90846359.adjustop)
c:RegisterEffect(e2)
--adjust
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetRange(LOCATION_SZONE)
e3:SetOperation(c90846359.adjustop2)
c:RegisterEffect(e3)
--cannot summon,spsummon,flipsummon
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD)
......@@ -77,17 +69,19 @@ function c90846359.adjustop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if g1:GetCount()==0 then c90846359[tp]=0
else
if c90846359[tp]==0 then
c90846359[tp]=c90846359.getrace(g1)
if bit.band(c90846359[tp],c90846359[tp]-1)~=0 then
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(90846359,0))
c90846359[tp]=Duel.AnnounceRace(tp,1,c90846359.getrace(g1))
c90846359[tp]=Duel.AnnounceRace(tp,1,c90846359[tp])
end
g1:Remove(c90846359.rmfilter,nil,c90846359[tp])
end
if g2:GetCount()==0 then c90846359[1-tp]=0
else
if c90846359[1-tp]==0 then
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(90846359,0))
c90846359[1-tp]=Duel.AnnounceRace(1-tp,1,c90846359.getrace(g2))
c90846359[1-tp]=c90846359.getrace(g2)
if bit.band(c90846359[1-tp],c90846359[1-tp]-1)~=0 then
Duel.Hint(HINT_SELECTMSG,1-tp,aux.Stringid(90846359,0))
c90846359[1-tp]=Duel.AnnounceRace(1-tp,1,c90846359[1-tp])
end
g2:Remove(c90846359.rmfilter,nil,c90846359[1-tp])
end
......@@ -97,10 +91,3 @@ function c90846359.adjustop(e,tp,eg,ep,ev,re,r,rp)
Duel.Readjust()
end
end
function c90846359.op2filter(c)
return c:IsFaceup() and c:GetRace()>0
end
function c90846359.adjustop2(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsExistingMatchingCard(c90846359.op2filter,tp,LOCATION_MZONE,0,1,nil) then c90846359[tp]=0 end
if not Duel.IsExistingMatchingCard(c90846359.op2filter,tp,0,LOCATION_MZONE,1,nil) then c90846359[1-tp]=0 end
end
--天下統一
function c95352218.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_STANDBY_PHASE)
c:RegisterEffect(e1)
--adjust
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(95352218,0))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e2:SetCode(EVENT_PHASE+PHASE_STANDBY)
e2:SetRange(LOCATION_SZONE)
e2:SetCountLimit(1)
e2:SetOperation(c95352218.adjustop)
c:RegisterEffect(e2)
end
function c95352218.checklv(g)
local tc=g:GetFirst()
local lv=tc:GetLevel()
tc=g:GetNext()
while tc do
if tc:GetLevel()~=lv then return false end
tc=g:GetNext()
end
return true
end
function c95352218.filter1(c)
return c:IsFaceup() and c:IsLevelAbove(1)
end
function c95352218.filter2(c,lv)
return c:IsFaceup() and c:GetLevel()~=lv
end
function c95352218.adjustop(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local turnp=Duel.GetTurnPlayer()
local g=Duel.GetMatchingGroup(c95352218.filter1,turnp,LOCATION_MZONE,0,nil)
if g:GetCount()<2 then return end
if c95352218.checklv(g) then return end
Duel.Hint(HINT_SELECTMSG,turnp,aux.Stringid(95352218,1))
local clv=g:Select(turnp,1,1,nil):GetFirst():GetLevel()
local dg=g:Filter(c95352218.filter2,nil,clv)
Duel.SendtoGrave(dg,REASON_EFFECT)
end
--ヒロイック・ギフト
function c95920682.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(c95920682.condition)
e1:SetCost(c95920682.cost)
e1:SetTarget(c95920682.target)
e1:SetOperation(c95920682.activate)
c:RegisterEffect(e1)
end
function c95920682.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetLP(1-tp)<=2000
end
function c95920682.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,95920682)==0 end
Duel.RegisterFlagEffect(tp,95920682,RESET_PHASE+PHASE_END,EFFECT_FLAG_OATH,1)
end
function c95920682.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,2)
end
function c95920682.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.SetLP(1-tp,8000)
Duel.Draw(tp,2,REASON_EFFECT)
end
--マジックアーム·シールド
function c96008713.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_CONTROL)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_ATTACK_ANNOUNCE)
e1:SetCondition(c96008713.condition)
e1:SetTarget(c96008713.target)
e1:SetOperation(c96008713.activate)
c:RegisterEffect(e1)
end
function c96008713.condition(e,tp,eg,ep,ev,re,r,rp)
return tp~=Duel.GetTurnPlayer() and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)>0
end
function c96008713.filter(c,e,tp)
return c:IsFaceup() and c:IsControlerCanBeChanged()
end
function c96008713.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local atr=Duel.GetAttacker()
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and c96008713.filter(chkc,e,tp) end
if chk==0 then return Duel.IsExistingTarget(c96008713.filter,tp,0,LOCATION_MZONE,1,atr) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g=Duel.SelectTarget(tp,c96008713.filter,tp,0,LOCATION_MZONE,1,1,atr)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end
function c96008713.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and tc:IsFaceup() and not Duel.GetControl(tc,tp,PHASE_BATTLE,1) then
if not tc:IsImmuneToEffect(e) and tc:IsAbleToChangeControler() then
Duel.Destroy(tc,REASON_EFFECT)
end
else Duel.ChangeAttackTarget(tc)
end
end
--マジック・ディフレクター
function c96474800.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(c96474800.activate)
c:RegisterEffect(e1)
end
function c96474800.activate(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--disable
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_DISABLE)
e1:SetTargetRange(LOCATION_SZONE,LOCATION_SZONE)
e1:SetTarget(c96474800.distg)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
--disable effect
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetOperation(c96474800.disop)
e2:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e2,tp)
end
function c96474800.distg(e,c)
local tpe=c:GetType()
return bit.band(tpe,TYPE_SPELL)~=0 and bit.band(tpe,TYPE_EQUIP+TYPE_FIELD+TYPE_CONTINUOUS+TYPE_QUICKPLAY)~=0
end
function c96474800.disop(e,tp,eg,ep,ev,re,r,rp)
local tl=Duel.GetChainInfo(ev,CHAININFO_TRIGGERING_LOCATION)
local tpe=re:GetActiveType()
if tl==LOCATION_SZONE and bit.band(tpe,TYPE_SPELL)~=0 and bit.band(tpe,TYPE_EQUIP+TYPE_FIELD+TYPE_CONTINUOUS+TYPE_QUICKPLAY)~=0 then
Duel.NegateEffect(ev)
end
end
--アビストローム
function c97697447.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(c97697447.cost)
e1:SetTarget(c97697447.target)
e1:SetOperation(c97697447.activate)
c:RegisterEffect(e1)
end
function c97697447.cfilter(c)
return c:IsFaceup() and c:IsCode(22702055)
end
function c97697447.cost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(1)
local g=Duel.GetMatchingGroup(c97697447.cfilter,tp,LOCATION_ONFIELD,0,nil)
if chk==0 then return g:GetCount()>0 and g:FilterCount(Card.IsAbleToGraveAsCost,nil)==g:GetCount() end
Duel.SendtoGrave(g,REASON_COST)
end
function c97697447.filter(c,tp)
return (c:IsFacedown() or c:IsControler(1-tp) or c:GetCode()~=22702055) and c:IsType(TYPE_SPELL+TYPE_TRAP)
end
function c97697447.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
if e:GetLabel()==0 then
Duel.IsExistingMatchingCard(Card.IsType,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,e:GetHandler(),TYPE_SPELL+TYPE_TRAP)
end
e:SetLabel(0)
return Duel.IsExistingMatchingCard(c97697447.filter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,e:GetHandler(),tp)
end
e:SetLabel(0)
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,e:GetHandler(),TYPE_SPELL+TYPE_TRAP)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,g:GetCount(),0,0)
end
function c97697447.activate(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,e:GetHandler(),TYPE_SPELL+TYPE_TRAP)
Duel.SendtoGrave(g,REASON_EFFECT)
end
#config file
#nickname & gamename should be less than 20 characters
use_d3d = 0
use_d3d = 1
antialias = 2
errorlog = 1
nickname = Player
......@@ -9,5 +9,5 @@ lastdeck = sample
textfont = c:/windows/fonts/simsun.ttc 14
numfont = c:/windows/fonts/arialbd.ttf
serverport = 7911
lastip = 119.140.142.231
lastip = 127.0.0.1
lastport = 7911
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