diff --git a/script/c17285476.lua b/script/c17285476.lua new file mode 100644 index 00000000..65d84d42 --- /dev/null +++ b/script/c17285476.lua @@ -0,0 +1,38 @@ +--ナチュル・モスキート +function c17285476.initial_effect(c) + --special summon + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) + e1:SetRange(LOCATION_MZONE) + e1:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET) + e1:SetCondition(c17285476.atcon) + e1:SetValue(aux.imval1) + c:RegisterEffect(e1) + --reflect + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e2:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e2:SetRange(LOCATION_MZONE) + e2:SetCondition(c17285476.refcon) + e2:SetOperation(c17285476.refop) + c:RegisterEffect(e2) +end +function c17285476.cfilter(c) + return c:IsFaceup() and c:IsSetCard(0x2a) +end +function c17285476.atcon(e) + return Duel.IsExistingMatchingCard(c17285476.cfilter,e:GetOwnerPlayer(),LOCATION_MZONE,0,1,e:GetHandler()) +end +function c17285476.reftg(e,c) + return c~=e:GetHandler() and c:IsFaceup() and c:IsSetCard(0x2a) +end +function c17285476.refcon(e,tp,eg,ep,ev,re,r,rp) + local c=eg:GetFirst():GetBattleTarget() + return ep==tp and c:IsRelateToBattle() and c17285476.reftg(e,c) +end +function c17285476.refop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end diff --git a/script/c24874630.lua b/script/c24874630.lua new file mode 100644 index 00000000..ed3eed30 --- /dev/null +++ b/script/c24874630.lua @@ -0,0 +1,66 @@ +--デビルズ・サンクチュアリ +function c24874630.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:SetTarget(c24874630.target) + e1:SetOperation(c24874630.activate) + c:RegisterEffect(e1) +end +function c24874630.target(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 + and Duel.IsPlayerCanSpecialSummonMonster(tp,24874631,0,0x4011,0,0,1,RACE_FIEND,ATTRIBUTE_DARK) end + Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0) + Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0) +end +function c24874630.activate(e,tp,eg,ep,ev,re,r,rp) + if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 + or not Duel.IsPlayerCanSpecialSummonMonster(tp,24874631,0,0x4011,0,0,1,RACE_FIEND,ATTRIBUTE_DARK) then return end + local token=Duel.CreateToken(tp,24874631) + Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP) + local e1=Effect.CreateEffect(e:GetHandler()) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetCode(EFFECT_CANNOT_ATTACK) + e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) + e1:SetReset(RESET_EVENT+0x1fe0000) + token:RegisterEffect(e1,true) + local e2=Effect.CreateEffect(e:GetHandler()) + e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e2:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) + e2:SetCondition(c24874630.damcon) + e2:SetOperation(c24874630.damop) + e2:SetReset(RESET_EVENT+0x1fe0000) + token:RegisterEffect(e2,true) + local e3=Effect.CreateEffect(e:GetHandler()) + e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) + e3:SetRange(LOCATION_MZONE) + e3:SetCode(EVENT_PHASE+PHASE_STANDBY) + e3:SetCountLimit(1) + e3:SetCondition(c24874630.descon) + e3:SetOperation(c24874630.desop) + e3:SetReset(RESET_EVENT+0x1fe0000) + token:RegisterEffect(e3,true) +end +function c24874630.descon(e,tp,eg,ep,ev,re,r,rp) + return Duel.GetTurnPlayer()==tp +end +function c24874630.desop(e,tp,eg,ep,ev,re,r,rp) + if Duel.CheckLPCost(tp,1000) and Duel.SelectYesNo(tp,aux.Stringid(24874630,0)) then + Duel.PayLPCost(tp,1000) + else + Duel.Destroy(e:GetHandler(),REASON_COST) + end +end +function c24874630.damcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() and eg:GetFirst()==c:GetBattleTarget() +end +function c24874630.damop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end diff --git a/script/c29552709.lua b/script/c29552709.lua new file mode 100644 index 00000000..d635ee4b --- /dev/null +++ b/script/c29552709.lua @@ -0,0 +1,62 @@ +--ダイガスタ・スフィアード +function c29552709.initial_effect(c) + --synchro summon + aux.AddSynchroProcedure(c,nil,aux.NonTuner(Card.IsSetCard,0x10),1) + c:EnableReviveLimit() + --to hand + local e1=Effect.CreateEffect(c) + e1:SetDescription(aux.Stringid(29552709,0)) + e1:SetCategory(CATEGORY_TOHAND) + e1:SetProperty(EFFECT_FLAG_CARD_TARGET) + e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) + e1:SetCode(EVENT_SPSUMMON_SUCCESS) + e1:SetCondition(c29552709.condition) + e1:SetTarget(c29552709.target) + e1:SetOperation(c29552709.operation) + c:RegisterEffect(e1) + --reflect + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e2:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e2:SetRange(LOCATION_MZONE) + e2:SetCondition(c29552709.refcon) + e2:SetOperation(c29552709.refop) + c:RegisterEffect(e2) + --indes + local e3=Effect.CreateEffect(c) + e3:SetType(EFFECT_TYPE_SINGLE) + e3:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) + e3:SetValue(1) + c:RegisterEffect(e3) +end +function c29552709.reftg(e,c) + return c:IsSetCard(0x10) +end +function c29552709.refcon(e,tp,eg,ep,ev,re,r,rp) + local c=eg:GetFirst():GetBattleTarget() + return ep==tp and c:IsRelateToBattle() and c29552709.reftg(e,c) +end +function c29552709.refop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end +function c29552709.condition(e,tp,eg,ep,ev,re,r,rp) + return e:GetHandler():GetSummonType()==SUMMON_TYPE_SYNCHRO +end +function c29552709.filter(c) + return c:IsSetCard(0x10) and c:IsAbleToHand() +end +function c29552709.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) + if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c29552709.filter(chkc) end + if chk==0 then return Duel.IsExistingTarget(c29552709.filter,tp,LOCATION_GRAVE,0,1,nil) end + Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) + local g=Duel.SelectTarget(tp,c29552709.filter,tp,LOCATION_GRAVE,0,1,1,nil) + Duel.SetOperationInfo(0,CATEGORY_TOHAND,g,1,0,0) +end +function c29552709.operation(e,tp,eg,ep,ev,re,r,rp) + local tc=Duel.GetFirstTarget() + if tc:IsRelateToEffect(e) then + Duel.SendtoHand(tc,nil,REASON_EFFECT) + end +end diff --git a/script/c35494087.lua b/script/c35494087.lua new file mode 100644 index 00000000..eebed74a --- /dev/null +++ b/script/c35494087.lua @@ -0,0 +1,73 @@ +--SRビードロ・ドクロ +--Speedroid Vidroskull +--Script by nekrozar +function c35494087.initial_effect(c) + --special summon + local e1=Effect.CreateEffect(c) + e1:SetDescription(aux.Stringid(35494087,0)) + e1:SetCategory(CATEGORY_SPECIAL_SUMMON) + e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) + e1:SetCode(EVENT_PHASE+PHASE_STANDBY) + e1:SetRange(LOCATION_HAND) + e1:SetCountLimit(1) + e1:SetCondition(c35494087.spcon) + e1:SetTarget(c35494087.sptg) + e1:SetOperation(c35494087.spop) + c:RegisterEffect(e1) + --indes + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_SINGLE) + e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) + e2:SetValue(c35494087.indval) + c:RegisterEffect(e2) + --battle damage + local e3=Effect.CreateEffect(c) + e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e3:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e3:SetRange(LOCATION_MZONE) + e3:SetCondition(c35494087.damcon) + e3:SetOperation(c35494087.damop) + c:RegisterEffect(e3) + --self destroy + local e4=Effect.CreateEffect(c) + e4:SetType(EFFECT_TYPE_SINGLE) + e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE) + e4:SetCode(EFFECT_SELF_DESTROY) + e4:SetRange(LOCATION_MZONE) + e4:SetCondition(c35494087.sdcon) + c:RegisterEffect(e4) +end +function c35494087.spcon(e,tp,eg,ep,ev,re,r,rp) + return Duel.IsExistingMatchingCard(aux.FilterEqualFunction(Card.GetSummonLocation,LOCATION_EXTRA),tp,0,LOCATION_MZONE,1,nil) +end +function c35494087.sptg(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 + and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end + Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) +end +function c35494087.spop(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + if not c:IsRelateToEffect(e) then return end + if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)==0 and Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 + and c:IsCanBeSpecialSummoned(e,0,tp,false,false) then + Duel.SendtoGrave(c,REASON_RULE) + end +end +function c35494087.indval(e,c) + return bit.band(c:GetSummonType(),SUMMON_TYPE_NORMAL)~=0 +end +function c35494087.sdfilter(c) + return c:IsFaceup() and not c:IsSetCard(0x2016) +end +function c35494087.sdcon(e) + return Duel.IsExistingMatchingCard(c35494087.sdfilter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil) +end +function c35494087.damcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() and eg:GetFirst()==c:GetBattleTarget() +end +function c35494087.damop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end diff --git a/script/c3918345.lua b/script/c3918345.lua new file mode 100644 index 00000000..f80317fb --- /dev/null +++ b/script/c3918345.lua @@ -0,0 +1,21 @@ +--マジック・スライム +function c3918345.initial_effect(c) + aux.EnableDualAttribute(c) + --reflect battle dam + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e1:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e1:SetRange(LOCATION_MZONE) + e1:SetCondition(c3918345.damcon) + e1:SetOperation(c3918345.damop) + c:RegisterEffect(e1) +end +function c3918345.damcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() and eg:GetFirst()==c:GetBattleTarget() and aux.IsDualState(e) +end +function c3918345.damop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end diff --git a/script/c49551909.lua b/script/c49551909.lua new file mode 100644 index 00000000..bc56f7c6 --- /dev/null +++ b/script/c49551909.lua @@ -0,0 +1,86 @@ +--ヒロイック・リベンジ・ソード +function c49551909.initial_effect(c) + --Activate + local e1=Effect.CreateEffect(c) + e1:SetCategory(CATEGORY_EQUIP) + e1:SetType(EFFECT_TYPE_ACTIVATE) + e1:SetCode(EVENT_FREE_CHAIN) + e1:SetHintTiming(TIMING_BATTLE_PHASE) + e1:SetProperty(EFFECT_FLAG_CARD_TARGET) + e1:SetTarget(c49551909.target) + e1:SetOperation(c49551909.operation) + c:RegisterEffect(e1) +end +function c49551909.filter(c) + return c:IsFaceup() and c:IsSetCard(0x6f) +end +function c49551909.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) + if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and c49551909.filter(chkc) end + if chk==0 then return Duel.IsExistingTarget(c49551909.filter,tp,LOCATION_MZONE,0,1,nil) end + Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_EQUIP) + local g=Duel.SelectTarget(tp,c49551909.filter,tp,LOCATION_MZONE,0,1,1,nil) + Duel.SetOperationInfo(0,CATEGORY_EQUIP,e:GetHandler(),1,0,0) +end +function c49551909.operation(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + if not c:IsLocation(LOCATION_SZONE) then return end + local tc=Duel.GetFirstTarget() + if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) and tc:IsFaceup() then + Duel.Equip(tp,c,tc) + c:CancelToGrave() + --destroy + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F) + e1:SetCategory(CATEGORY_DESTROY) + e1:SetDescription(aux.Stringid(49551909,0)) + e1:SetCode(EVENT_BATTLED) + e1:SetRange(LOCATION_SZONE) + e1:SetCondition(c49551909.descon) + e1:SetTarget(c49551909.destg) + e1:SetOperation(c49551909.desop) + e1:SetReset(RESET_EVENT+0x1fe0000) + c:RegisterEffect(e1) + --damage + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e2:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e2:SetRange(LOCATION_SZONE) + e2:SetCondition(c49551909.damcon) + e2:SetOperation(c49551909.damop) + e2:SetReset(RESET_EVENT+0x1fe0000) + c:RegisterEffect(e2) + --Equip limit + local e3=Effect.CreateEffect(c) + e3:SetType(EFFECT_TYPE_SINGLE) + e3:SetCode(EFFECT_EQUIP_LIMIT) + e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) + e3:SetValue(c49551909.eqlimit) + e3:SetReset(RESET_EVENT+0x1fe0000) + c:RegisterEffect(e3) + end +end +function c49551909.eqlimit(e,c) + return c:GetControler()==e:GetOwnerPlayer() and c:IsSetCard(0x6f) +end +function c49551909.descon(e,tp,eg,ep,ev,re,r,rp) + local ec=e:GetHandler():GetEquipTarget() + return Duel.GetAttackTarget()==ec or (Duel.GetAttacker()==ec and Duel.GetAttackTarget()) +end +function c49551909.destg(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return true end + Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler():GetEquipTarget():GetBattleTarget(),1,0,0) +end +function c49551909.desop(e,tp,eg,ep,ev,re,r,rp) + if not e:GetHandler():IsRelateToEffect(e) then return end + local bc=e:GetHandler():GetEquipTarget():GetBattleTarget() + if bc:IsRelateToBattle() then + Duel.Destroy(bc,REASON_EFFECT) + end +end +function c49551909.damcon(e,tp,eg,ep,ev,re,r,rp) + local ec=e:GetHandler():GetEquipTarget() + return ec and ep==tp and (Duel.GetAttacker()==ec or Duel.GetAttackTarget()==ec) +end +function c49551909.damop(e,tp,eg,ep,ev,re,r,rp) + Duel.ChangeBattleDamage(1-tp,Duel.GetBattleDamage(tp),false) +end diff --git a/script/c54366836.lua b/script/c54366836.lua new file mode 100644 index 00000000..c06519db --- /dev/null +++ b/script/c54366836.lua @@ -0,0 +1,80 @@ +--No.54 反骨の闘士ライオンハート +function c54366836.initial_effect(c) + --xyz summon + aux.AddXyzProcedure(c,nil,1,3) + c:EnableReviveLimit() + --ind + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) + e1:SetRange(LOCATION_MZONE) + e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) + e1:SetCondition(c54366836.indcon) + e1:SetValue(1) + c:RegisterEffect(e1) + local e2=Effect.CreateEffect(c) + e2:SetDescription(aux.Stringid(54366836,0)) + e2:SetCategory(CATEGORY_DAMAGE) + e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F) + e2:SetCode(EVENT_BATTLE_DAMAGE) + e2:SetRange(LOCATION_MZONE) + e2:SetCondition(c54366836.damcon) + e2:SetTarget(c54366836.damtg) + e2:SetOperation(c54366836.damop) + c:RegisterEffect(e2) + --damage + local e3=Effect.CreateEffect(c) + e3:SetDescription(aux.Stringid(54366836,1)) + e3:SetProperty(EFFECT_FLAG2_XMDETACH) + e3:SetType(EFFECT_TYPE_QUICK_O) + e3:SetCode(EVENT_PRE_DAMAGE_CALCULATE) + e3:SetRange(LOCATION_MZONE) + e3:SetCondition(c54366836.damcon2) + e3:SetCost(c54366836.damcost2) + e3:SetOperation(c54366836.damop2) + c:RegisterEffect(e3) +end +c54366836.xyz_number=54 +function c54366836.damcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() +end +function c54366836.damtg(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return true end + Duel.SetTargetPlayer(1-tp) + Duel.SetTargetParam(ev) + Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,ev) +end +function c54366836.damop(e,tp,eg,ep,ev,re,r,rp) + local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM) + Duel.Damage(p,d,REASON_EFFECT) +end +function c54366836.damcon2(e,tp,eg,ep,ev,re,r,rp) + return e:GetHandler():GetBattleTarget()~=nil +end +function c54366836.damcost2(e,tp,eg,ep,ev,re,r,rp,chk) + local c=e:GetHandler() + if chk==0 then return c:GetFlagEffect(54366836)==0 and c:CheckRemoveOverlayCard(tp,1,REASON_COST) end + c:RemoveOverlayCard(tp,1,1,REASON_COST) + c:RegisterFlagEffect(54366836,RESET_CHAIN,0,1) +end +function c54366836.damop2(e,tp,eg,ep,ev,re,r,rp) + local e1=Effect.CreateEffect(e:GetHandler()) + e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e1:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e1:SetCondition(c54366836.refcon) + e1:SetOperation(c54366836.refop) + e1:SetReset(RESET_PHASE+PHASE_DAMAGE_CAL) + Duel.RegisterEffect(e1,tp) +end +function c54366836.refcon(e,tp,eg,ep,ev,re,r,rp) + return ep==tp +end +function c54366836.refop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end +function c54366836.indcon(e) + return e:GetHandler():IsPosition(POS_FACEUP_ATTACK) +end diff --git a/script/c69058960.lua b/script/c69058960.lua new file mode 100644 index 00000000..779c294b --- /dev/null +++ b/script/c69058960.lua @@ -0,0 +1,89 @@ +--No.13 ケインズ・デビル +function c69058960.initial_effect(c) + --xyz summon + aux.AddXyzProcedure(c,nil,1,2) + c:EnableReviveLimit() + --pos + local e1=Effect.CreateEffect(c) + e1:SetDescription(aux.Stringid(69058960,0)) + e1:SetCategory(CATEGORY_POSITION) + e1:SetProperty(EFFECT_FLAG2_XMDETACH) + e1:SetType(EFFECT_TYPE_QUICK_O) + e1:SetCode(EVENT_FREE_CHAIN) + e1:SetCountLimit(1) + e1:SetRange(LOCATION_MZONE) + e1:SetCost(c69058960.cost) + e1:SetTarget(c69058960.target) + e1:SetOperation(c69058960.operation) + c:RegisterEffect(e1) + -- + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_SINGLE) + e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) + e2:SetRange(LOCATION_MZONE) + e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) + e2:SetCondition(c69058960.indcon) + e2:SetValue(1) + c:RegisterEffect(e2) + local e3=e2:Clone() + e3:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) + c:RegisterEffect(e3) + --reflect + local e4=Effect.CreateEffect(c) + e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e4:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e4:SetRange(LOCATION_MZONE) + e4:SetCondition(c69058960.damcon) + e4:SetOperation(c69058960.damop) + c:RegisterEffect(e4) +end +c69058960.xyz_number=13 +function c69058960.cost(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end + e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) +end +function c69058960.target(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)>0 end +end +function c69058960.operation(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE) + if g:GetCount()>0 then + Duel.ChangePosition(g,POS_FACEUP_ATTACK) + local tc=g:GetFirst() + while tc do + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetCode(EFFECT_MUST_ATTACK) + e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END) + tc:RegisterEffect(e1) + local e2=e1:Clone() + e2:SetCode(EFFECT_MUST_ATTACK_MONSTER) + tc:RegisterEffect(e2) + tc=g:GetNext() + end + local e3=Effect.CreateEffect(c) + e3:SetType(EFFECT_TYPE_SINGLE) + e3:SetCode(EFFECT_MUST_BE_ATTACKED) + e3:SetValue(1) + e3:SetReset(RESET_EVENT+0x1fc0000+RESET_PHASE+PHASE_END) + c:RegisterEffect(e3) + end +end +function c69058960.filter(c) + return c:IsFaceup() and c:IsCode(95442074) +end +function c69058960.indcon(e) + return Duel.IsExistingMatchingCard(c69058960.filter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil) + and e:GetHandler():GetOverlayCount()~=0 +end +function c69058960.damcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() and eg:GetFirst()==c:GetBattleTarget() and Duel.IsExistingMatchingCard(c69058960.filter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil) + and Duel.GetAttackTarget()==e:GetHandler() +end +function c69058960.damop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end diff --git a/script/c77205367.lua b/script/c77205367.lua new file mode 100644 index 00000000..f1546bf1 --- /dev/null +++ b/script/c77205367.lua @@ -0,0 +1,80 @@ +--CNo.96 ブラック・ストーム +function c77205367.initial_effect(c) + --xyz summon + aux.AddXyzProcedure(c,aux.FilterBoolFunction(Card.IsAttribute,ATTRIBUTE_DARK),3,4) + c:EnableReviveLimit() + --addown + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE) + e1:SetRange(LOCATION_MZONE) + e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) + e1:SetValue(1) + c:RegisterEffect(e1) + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e2:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e2:SetRange(LOCATION_MZONE) + e2:SetCondition(c77205367.damcon) + e2:SetOperation(c77205367.damop) + c:RegisterEffect(e2) + --atk + local e3=Effect.CreateEffect(c) + e3:SetDescription(aux.Stringid(77205367,0)) + e3:SetCategory(CATEGORY_ATKCHANGE) + e3:SetType(EFFECT_TYPE_QUICK_O) + e3:SetProperty(EFFECT_FLAG2_XMDETACH) + e3:SetCode(EVENT_ATTACK_ANNOUNCE) + e3:SetRange(LOCATION_MZONE) + e3:SetCondition(c77205367.atkcon) + e3:SetCost(c77205367.atkcost) + e3:SetTarget(c77205367.atktg) + e3:SetOperation(c77205367.atkop) + c:RegisterEffect(e3) +end +c77205367.xyz_number=96 +function c77205367.damcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() and eg:GetFirst()==c:GetBattleTarget() +end +function c77205367.damop(e,tp,eg,ep,ev,re,r,rp) + Duel.ChangeBattleDamage(1-tp,Duel.GetBattleDamage(tp),false) +end +function c77205367.atkcon(e,tp,eg,ep,ev,re,r,rp) + return e:GetHandler():GetOverlayGroup():IsExists(Card.IsCode,1,nil,55727845) +end +function c77205367.atkcost(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end + e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) +end +function c77205367.atktg(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then + local c=e:GetHandler() + local a=Duel.GetAttacker() + local at=Duel.GetAttackTarget() + return ((a==c and at and at:IsFaceup() and at:GetAttack()>0) or (at==c and a:GetAttack()>0)) + and not e:GetHandler():IsStatus(STATUS_CHAINING) + end + Duel.SetTargetCard(e:GetHandler():GetBattleTarget()) +end +function c77205367.atkop(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + local tc=Duel.GetFirstTarget() + if c:IsRelateToEffect(e) and c:IsFaceup() and tc:IsRelateToEffect(e) and tc:IsFaceup() and tc:GetAttack()>0 then + local atk=tc:GetBaseAttack() + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetCode(EFFECT_SET_ATTACK_FINAL) + e1:SetValue(0) + e1:SetReset(RESET_EVENT+0x1fe0000) + tc:RegisterEffect(e1) + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_SINGLE) + e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE+EFFECT_FLAG_CANNOT_DISABLE) + e2:SetRange(LOCATION_MZONE) + e2:SetCode(EFFECT_UPDATE_ATTACK) + e2:SetValue(atk) + e2:SetReset(RESET_EVENT+0x1fe0000) + c:RegisterEffect(e2) + end +end diff --git a/script/c8491961.lua b/script/c8491961.lua new file mode 100644 index 00000000..15da14d1 --- /dev/null +++ b/script/c8491961.lua @@ -0,0 +1,89 @@ +--LL-リサイト・スターリング +function c8491961.initial_effect(c) + c:EnableReviveLimit() + aux.AddXyzProcedure(c,nil,1,2,nil,nil,5) + --ATK Up + local e1=Effect.CreateEffect(c) + e1:SetDescription(aux.Stringid(8491961,0)) + e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE) + e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) + e1:SetCode(EVENT_SPSUMMON_SUCCESS) + e1:SetProperty(EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET) + e1:SetCondition(c8491961.atkcon) + e1:SetTarget(c8491961.atktg) + e1:SetOperation(c8491961.atkop) + c:RegisterEffect(e1) + --damage + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e2:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e2:SetRange(LOCATION_MZONE) + e2:SetCondition(c8491961.damcon) + e2:SetOperation(c8491961.damop) + c:RegisterEffect(e2) + --search + local e3=Effect.CreateEffect(c) + e3:SetDescription(aux.Stringid(8491961,1)) + e3:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) + e3:SetProperty(EFFECT_FLAG2_XMDETACH) + e3:SetType(EFFECT_TYPE_IGNITION) + e3:SetRange(LOCATION_MZONE) + e3:SetCountLimit(1) + e3:SetCost(c8491961.thcost) + e3:SetTarget(c8491961.thtg) + e3:SetOperation(c8491961.thop) + c:RegisterEffect(e3) +end +function c8491961.atkcon(e,tp,eg,ep,ev,re,r,rp) + return bit.band(e:GetHandler():GetSummonType(),SUMMON_TYPE_XYZ)==SUMMON_TYPE_XYZ + and e:GetHandler():GetOverlayCount()>0 +end +function c8491961.atktg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) + if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsFaceup() end + if chk==0 then return Duel.IsExistingTarget(Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) end + Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) + Duel.SelectTarget(tp,Card.IsFaceup,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil) +end +function c8491961.atkop(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + local oc=c:GetOverlayCount() + local tc=Duel.GetFirstTarget() + if tc:IsFaceup() and tc:IsRelateToEffect(e) and oc>0 then + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetCode(EFFECT_UPDATE_ATTACK) + e1:SetValue(300*oc) + e1:SetReset(RESET_EVENT+0x1fe0000) + tc:RegisterEffect(e1) + local e2=e1:Clone() + e2:SetCode(EFFECT_UPDATE_DEFENSE) + tc:RegisterEffect(e2) + end +end +function c8491961.damcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() and eg:GetFirst()==c:GetBattleTarget() + and bit.band(c:GetSummonType(),SUMMON_TYPE_XYZ)==SUMMON_TYPE_XYZ +end +function c8491961.damop(e,tp,eg,ep,ev,re,r,rp) + Duel.ChangeBattleDamage(1-tp,Duel.GetBattleDamage(tp),false) +end +function c8491961.thcost(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end + e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) +end +function c8491961.thfilter(c) + return c:GetLevel()==1 and c:IsRace(RACE_WINDBEAST) and c:IsAbleToHand() +end +function c8491961.thtg(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.IsExistingMatchingCard(c8491961.thfilter,tp,LOCATION_DECK,0,1,nil) end + Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) +end +function c8491961.thop(e,tp,eg,ep,ev,re,r,rp) + Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND) + local g=Duel.SelectMatchingCard(tp,c8491961.thfilter,tp,LOCATION_DECK,0,1,1,nil) + if g:GetCount()>0 then + Duel.SendtoHand(g,nil,REASON_EFFECT) + Duel.ConfirmCards(1-tp,g) + end +end diff --git a/script/c93730230.lua b/script/c93730230.lua new file mode 100644 index 00000000..f9d48d33 --- /dev/null +++ b/script/c93730230.lua @@ -0,0 +1,54 @@ +--先史遺産クリスタル・エイリアン +function c93730230.initial_effect(c) + --xyz summon + aux.AddXyzProcedure(c,nil,3,2) + c:EnableReviveLimit() + -- + local e1=Effect.CreateEffect(c) + e1:SetDescription(aux.Stringid(93730230,0)) + e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) + e1:SetCode(EVENT_BE_BATTLE_TARGET) + e1:SetProperty(EFFECT_FLAG2_XMDETACH) + e1:SetRange(LOCATION_MZONE) + e1:SetCountLimit(1) + e1:SetCost(c93730230.cost) + e1:SetOperation(c93730230.operation) + c:RegisterEffect(e1) +end +function c93730230.cost(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end + e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) +end +function c93730230.operation(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:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) + e1:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) + e1:SetValue(1) + e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END) + c:RegisterEffect(e1) + local e2=e1:Clone() + e2:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) + c:RegisterEffect(e2) + local e3=Effect.CreateEffect(c) + e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) + e3:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e3:SetRange(LOCATION_MZONE) + e3:SetCondition(c93730230.damcon) + e3:SetOperation(c93730230.damop) + e3:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END) + c:RegisterEffect(e3) + end +end +function c93730230.damcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() and eg:GetFirst()==c:GetBattleTarget() +end +function c93730230.damop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end diff --git a/script/c94004268.lua b/script/c94004268.lua new file mode 100644 index 00000000..07d8297c --- /dev/null +++ b/script/c94004268.lua @@ -0,0 +1,20 @@ +--アマゾネスの剣士 +function c94004268.initial_effect(c) + --reflect battle dam + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e1:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e1:SetRange(LOCATION_MZONE) + e1:SetCondition(c94004268.damcon) + e1:SetOperation(c94004268.damop) + c:RegisterEffect(e1) +end +function c94004268.damcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() and eg:GetFirst()==c:GetBattleTarget() +end +function c94004268.damop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end diff --git a/script/c95442074.lua b/script/c95442074.lua new file mode 100644 index 00000000..aef50407 --- /dev/null +++ b/script/c95442074.lua @@ -0,0 +1,89 @@ +--No.31 アベルズ・デビル +function c95442074.initial_effect(c) + --xyz summon + aux.AddXyzProcedure(c,nil,1,2) + c:EnableReviveLimit() + --pos + local e1=Effect.CreateEffect(c) + e1:SetDescription(aux.Stringid(95442074,0)) + e1:SetCategory(CATEGORY_POSITION) + e1:SetProperty(EFFECT_FLAG2_XMDETACH) + e1:SetType(EFFECT_TYPE_QUICK_O) + e1:SetCode(EVENT_FREE_CHAIN) + e1:SetCountLimit(1) + e1:SetRange(LOCATION_MZONE) + e1:SetCost(c95442074.cost) + e1:SetTarget(c95442074.target) + e1:SetOperation(c95442074.operation) + c:RegisterEffect(e1) + -- + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_SINGLE) + e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) + e2:SetRange(LOCATION_MZONE) + e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) + e2:SetCondition(c95442074.indcon) + e2:SetValue(1) + c:RegisterEffect(e2) + local e3=e2:Clone() + e3:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) + c:RegisterEffect(e3) + --reflect + local e4=Effect.CreateEffect(c) + e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e4:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e4:SetRange(LOCATION_MZONE) + e4:SetCondition(c95442074.damcon) + e4:SetOperation(c95442074.damop) + c:RegisterEffect(e4) +end +c95442074.xyz_number=31 +function c95442074.cost(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end + e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) +end +function c95442074.target(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)>0 end +end +function c95442074.operation(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE) + if g:GetCount()>0 then + Duel.ChangePosition(g,POS_FACEUP_ATTACK) + local tc=g:GetFirst() + while tc do + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetCode(EFFECT_MUST_ATTACK) + e1:SetReset(RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END) + tc:RegisterEffect(e1) + local e2=e1:Clone() + e2:SetCode(EFFECT_MUST_ATTACK_MONSTER) + tc:RegisterEffect(e2) + tc=g:GetNext() + end + local e3=Effect.CreateEffect(c) + e3:SetType(EFFECT_TYPE_SINGLE) + e3:SetCode(EFFECT_MUST_BE_ATTACKED) + e3:SetValue(1) + e3:SetReset(RESET_EVENT+0x1fc0000+RESET_PHASE+PHASE_END) + c:RegisterEffect(e3) + end +end +function c95442074.filter(c) + return c:IsFaceup() and c:IsCode(69058960) +end +function c95442074.indcon(e) + return Duel.IsExistingMatchingCard(c95442074.filter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil) + and e:GetHandler():GetOverlayCount()~=0 +end +function c95442074.damcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() and eg:GetFirst()==c:GetBattleTarget() and Duel.IsExistingMatchingCard(c95442074.filter,e:GetHandlerPlayer(),LOCATION_MZONE,0,1,nil) + and Duel.GetAttackTarget()==e:GetHandler() +end +function c95442074.damop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end diff --git a/script/c97403510.lua b/script/c97403510.lua new file mode 100644 index 00000000..f80e6bbe --- /dev/null +++ b/script/c97403510.lua @@ -0,0 +1,128 @@ +--No.92 偽骸神龍 Heart-eartH Dragon +function c97403510.initial_effect(c) + --xyz summon + aux.AddXyzProcedure(c,nil,9,3) + c:EnableReviveLimit() + --battle + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + e1:SetCode(EVENT_PRE_BATTLE_DAMAGE) + e1:SetRange(LOCATION_MZONE) + e1:SetCondition(c97403510.refcon) + e1:SetOperation(c97403510.refop) + c:RegisterEffect(e1) + local e2=Effect.CreateEffect(c) + e2:SetType(EFFECT_TYPE_SINGLE) + e2:SetCode(EFFECT_INDESTRUCTABLE_BATTLE) + e2:SetValue(1) + c:RegisterEffect(e2) + --remove + local e3=Effect.CreateEffect(c) + e3:SetDescription(aux.Stringid(97403510,0)) + e3:SetCategory(CATEGORY_REMOVE) + e3:SetProperty(EFFECT_FLAG2_XMDETACH) + e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) + e3:SetCode(EVENT_PHASE+PHASE_END) + e3:SetRange(LOCATION_MZONE) + e3:SetCountLimit(1) + e3:SetCondition(c97403510.rmcon) + e3:SetCost(c97403510.rmcost) + e3:SetTarget(c97403510.rmtg) + e3:SetOperation(c97403510.rmop) + c:RegisterEffect(e3) + --spsummon + local e4=Effect.CreateEffect(c) + e4:SetDescription(aux.Stringid(97403510,1)) + e4:SetCategory(CATEGORY_SPECIAL_SUMMON) + e4:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) + e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) + e4:SetCode(EVENT_TO_GRAVE) + e4:SetCondition(c97403510.spcon) + e4:SetTarget(c97403510.sptg) + e4:SetOperation(c97403510.spop) + c:RegisterEffect(e4) + --atkup + local e5=Effect.CreateEffect(c) + e5:SetDescription(aux.Stringid(97403510,2)) + e5:SetCategory(CATEGORY_ATKCHANGE) + e5:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) + e5:SetCode(EVENT_SPSUMMON_SUCCESS) + e5:SetCondition(c97403510.atkcon) + e5:SetOperation(c97403510.atkop) + c:RegisterEffect(e5) + if not c97403510.global_check then + c97403510.global_check=true + local ge1=Effect.CreateEffect(c) + ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) + ge1:SetCode(EVENT_SSET) + ge1:SetOperation(c97403510.checkop) + Duel.RegisterEffect(ge1,0) + end +end +c97403510.xyz_number=92 +function c97403510.refcon(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + return ep==tp and c:IsRelateToBattle() and eg:GetFirst()==c:GetBattleTarget() +end +function c97403510.refop(e,tp,eg,ep,ev,re,r,rp) + local dam=Duel.GetBattleDamage(tp) + Duel.ChangeBattleDamage(1-tp,dam,false) + Duel.ChangeBattleDamage(tp,0) +end +function c97403510.checkop(e,tp,eg,ep,ev,re,r,rp) + local tc=eg:GetFirst() + while tc do + tc:RegisterFlagEffect(97403510,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) + tc=eg:GetNext() + end +end +function c97403510.rmcon(e,tp,eg,ep,ev,re,r,rp) + return Duel.GetTurnPlayer()~=tp +end +function c97403510.rmcost(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end + e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST) +end +function c97403510.filter(c,turn) + return (c:IsLocation(LOCATION_MZONE) or c:GetFlagEffect(97403510)~=0) and c:GetTurnID()==turn and c:IsAbleToRemove() +end +function c97403510.rmtg(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.IsExistingMatchingCard(c97403510.filter,tp,0,LOCATION_ONFIELD,1,nil,Duel.GetTurnCount()) end + local g=Duel.GetMatchingGroup(c97403510.filter,tp,0,LOCATION_ONFIELD,nil,Duel.GetTurnCount()) + Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,g:GetCount(),0,0) +end +function c97403510.rmop(e,tp,eg,ep,ev,re,r,rp) + local g=Duel.GetMatchingGroup(c97403510.filter,tp,0,LOCATION_ONFIELD,nil,Duel.GetTurnCount()) + if g:GetCount()>0 then + Duel.Remove(g,POS_FACEUP,REASON_EFFECT) + end +end +function c97403510.spcon(e,tp,eg,ep,ev,re,r,rp) + return e:GetHandler():IsReason(REASON_DESTROY) and e:GetHandler():GetOverlayCount()>0 +end +function c97403510.sptg(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return e:GetHandler():IsRelateToEffect(e) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 + and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end + Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0) +end +function c97403510.spop(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + if c:IsRelateToEffect(e) then + Duel.SpecialSummon(c,1,tp,tp,false,false,POS_FACEUP) + end +end +function c97403510.atkcon(e,tp,eg,ep,ev,re,r,rp) + return e:GetHandler():GetSummonType()==SUMMON_TYPE_SPECIAL+1 +end +function c97403510.atkop(e,tp,eg,ep,ev,re,r,rp) + local c=e:GetHandler() + local atk=Duel.GetFieldGroupCount(tp,LOCATION_REMOVED,LOCATION_REMOVED)*1000 + if atk>0 and c:IsFaceup() and c:IsRelateToEffect(e) then + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetCode(EFFECT_UPDATE_ATTACK) + e1:SetValue(atk) + e1:SetReset(RESET_EVENT+0x1ff0000) + c:RegisterEffect(e1) + end +end