From f9351d45c844460ce2787a45fb1cccfda055670e Mon Sep 17 00:00:00 2001 From: Playmaker1210 Date: Wed, 15 Dec 2021 19:05:48 +0100 Subject: [PATCH] Added Universe Protection lua and fixed Union Dragon --- lua/c561586060.lua | 8 ++++---- lua/c561586065.lua | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 lua/c561586065.lua diff --git a/lua/c561586060.lua b/lua/c561586060.lua index 52d3847..78686cf 100644 --- a/lua/c561586060.lua +++ b/lua/c561586060.lua @@ -6,11 +6,11 @@ function s.initial_effect(c) --fusion summon c:EnableReviveLimit() Fusion.AddProcMixN(c,true,true,aux.FilterBoolFunctionEx(Card.IsSetCard,0x25E),2) - --tohand from Benghalances of the Samsaric Cycle + --tohand local e1=Effect.CreateEffect(c) e1:SetDescription(aux.Stringid(id,0)) e1:SetCategory(CATEGORY_DAMAGE) - e1:SetType(EFFECT_TYPE_QUICK_O) --EFFECT_TYPE_QUICK_O EFFECT_TYPE_FIELD + e1:SetType(EFFECT_TYPE_IGNITION) e1:SetCode(EVENT_FREE_CHAIN) e1:SetRange(LOCATION_MZONE) e1:SetCountLimit(1,id) @@ -29,11 +29,11 @@ function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk,chkc) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY) local g=Duel.SelectTarget(tp,s.thfilter,tp,0,LOCATION_MZONE,1,1,nil) local d=g:GetFirst():GetAttack() - Duel.SetTargetPlayer(1-tp) --tp changed to 1-tp cuz of line 27 + Duel.SetTargetPlayer(1-tp) Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,d) end function s.thop(e,tp,eg,ep,ev,re,r,rp) - local tc=Duel.GetFirstTarget() --target card? + local tc=Duel.GetFirstTarget() local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER) if tc and tc:IsRelateToEffect(e) and Duel.Damage(p,tc:GetAttack(),REASON_EFFECT) then Duel.Destroy(tc, REASON_DESTROY) diff --git a/lua/c561586065.lua b/lua/c561586065.lua new file mode 100644 index 0000000..325c680 --- /dev/null +++ b/lua/c561586065.lua @@ -0,0 +1,47 @@ +--Universe Protection +local s,id=GetID() +function s.initial_effect(c) + local e1=Effect.CreateEffect(c) + e1:SetType(EFFECT_TYPE_ACTIVATE) + e1:SetCode(EVENT_FREE_CHAIN) + e1:SetProperty(EFFECT_FLAG_CARD_TARGET) + e1:SetCountLimit(1,id,EFFECT_COUNT_CODE_OATH) + e1:SetTarget(s.target) + e1:SetOperation(s.operation) + e1:SetHintTiming(0,TIMING_END_PHASE) + c:RegisterEffect(e1) +end + +function s.filter(c,e,tp) --filter for target + return c:IsFaceup() and c:IsSetCard(0x25e) +end + +function s.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) + if chkc then return chkc:IsControler(tp) and chkc:IsLocation(LOCATION_MZONE) and s.filter(chkc,e,tp) end + if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 + and Duel.IsExistingTarget(s.filter,tp,LOCATION_MZONE,0,1,nil,e,tp) end + Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET) + local g=Duel.SelectTarget(tp,s.filter,tp,LOCATION_MZONE,0,1,1,nil,e,tp) +end + +function s.operation(e,tp,eg,ep,ev,re,r,rp) + if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end + local tc=Duel.GetFirstTarget() + local g=Duel.SelectMatchingCard(tp,s.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,tp,tc:GetCode()) + --Cannot be destroyed by battle or card effect + local e1=Effect.CreateEffect(e:GetHandler()) + e1:SetDescription(3008) + e1:SetProperty(EFFECT_FLAG_CLIENT_HINT) + e1:SetType(EFFECT_TYPE_SINGLE) + e1:SetCode(EFFECT_INDESTRUCTABLE_EFFECT) + e1:SetValue(1) + e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,2) + g:GetFirst():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+RESETS_STANDARD+RESET_PHASE+PHASE_END,2) + g:GetFirst():RegisterEffect(e2) + g:GetFirst():RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END,EFFECT_FLAG_CLIENT_HINT,2,0,aux.Stringid(id,0)) +end \ No newline at end of file