Commit cfba415a authored by Fluorohydride's avatar Fluorohydride

Merge pull request #931 from salix5/patch-mid

fix: midrash (10/15)
parents 1c42c536 d3b9d355
...@@ -28,7 +28,7 @@ function c43434803.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -28,7 +28,7 @@ function c43434803.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local sc=sg:GetFirst() local sc=sg:GetFirst()
local oc=og:GetFirst() local oc=og:GetFirst()
local g=Group.FromCards(sc,oc) local g=Group.FromCards(sc,oc)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,2,0,0) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,2,PLAYER_ALL,0)
e:SetLabelObject(sc) e:SetLabelObject(sc)
end end
function c43434803.operation(e,tp,eg,ep,ev,re,r,rp) function c43434803.operation(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -36,21 +36,33 @@ function c94977269.initial_effect(c) ...@@ -36,21 +36,33 @@ function c94977269.initial_effect(c)
c:RegisterEffect(e4) c:RegisterEffect(e4)
local e5=Effect.CreateEffect(c) local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e5:SetCode(EVENT_SPSUMMON_SUCCESS) e5:SetCode(EVENT_SPSUMMON)
e5:SetRange(LOCATION_MZONE) e5:SetRange(LOCATION_MZONE)
e5:SetOperation(c94977269.checkop) e5:SetOperation(c94977269.checkop1)
c:RegisterEffect(e5) c:RegisterEffect(e5)
--tohand
local e6=Effect.CreateEffect(c) local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(94977269,0)) e6:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e6:SetCategory(CATEGORY_TOHAND) e6:SetCode(EVENT_CHAINING)
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e6:SetRange(LOCATION_MZONE)
e6:SetCode(EVENT_TO_GRAVE) e6:SetOperation(c94977269.checkop2)
e6:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e6:SetCondition(c94977269.thcon)
e6:SetTarget(c94977269.thtg)
e6:SetOperation(c94977269.thop)
c:RegisterEffect(e6) c:RegisterEffect(e6)
local e7=Effect.CreateEffect(c)
e7:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e7:SetCode(EVENT_CHAIN_SOLVING)
e7:SetRange(LOCATION_MZONE)
e7:SetOperation(c94977269.checkop3)
c:RegisterEffect(e7)
--tohand
local e8=Effect.CreateEffect(c)
e8:SetDescription(aux.Stringid(94977269,0))
e8:SetCategory(CATEGORY_TOHAND)
e8:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e8:SetCode(EVENT_TO_GRAVE)
e8:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e8:SetCondition(c94977269.thcon)
e8:SetTarget(c94977269.thtg)
e8:SetOperation(c94977269.thop)
c:RegisterEffect(e8)
end end
function c94977269.ffilter1(c) function c94977269.ffilter1(c)
return c:IsSetCard(0x9d) return c:IsSetCard(0x9d)
...@@ -166,7 +178,7 @@ end ...@@ -166,7 +178,7 @@ end
function c94977269.spval(e,se,sp) function c94977269.spval(e,se,sp)
return 1-e:GetHandler():GetFlagEffect(94977269+sp) return 1-e:GetHandler():GetFlagEffect(94977269+sp)
end end
function c94977269.checkop(e,tp,eg,ep,ev,re,r,rp) function c94977269.checkop1(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
if eg:IsContains(c) then return end if eg:IsContains(c) then return end
local p1=false local p1=false
...@@ -179,6 +191,66 @@ function c94977269.checkop(e,tp,eg,ep,ev,re,r,rp) ...@@ -179,6 +191,66 @@ function c94977269.checkop(e,tp,eg,ep,ev,re,r,rp)
if p1 then c:RegisterFlagEffect(94977269,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) end if p1 then c:RegisterFlagEffect(94977269,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) end
if p2 then c:RegisterFlagEffect(94977270,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) end if p2 then c:RegisterFlagEffect(94977270,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) end
end end
function c94977269.checkop2(e,tp,eg,ep,ev,re,r,rp)
local ex,tg,ct,sp=Duel.GetOperationInfo(ev,CATEGORY_SPECIAL_SUMMON)
local c=e:GetHandler()
local p=0
if ex then
if sp==PLAYER_ALL then
c:RegisterFlagEffect(94977269,RESET_EVENT+0x1fe0000+RESET_CHAIN,0,1)
c:RegisterFlagEffect(94977270,RESET_EVENT+0x1fe0000+RESET_CHAIN,0,1)
p=PLAYER_ALL
else
c:RegisterFlagEffect(94977269+rp,RESET_EVENT+0x1fe0000+RESET_CHAIN,0,1)
p=rp
end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EVENT_CHAIN_ACTIVATING)
e1:SetRange(LOCATION_MZONE)
e1:SetLabel(p)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_CHAIN)
e1:SetOperation(c94977269.rst)
c:RegisterEffect(e1)
end
end
function c94977269.rst(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local p=e:GetLabel()
if p==PLAYER_ALL then
c:ResetFlagEffect(94977269)
c:ResetFlagEffect(94977270)
else
c:ResetFlagEffect(94977269+p)
end
e:Reset()
end
function c94977269.checkop3(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ex,tg,ct,sp=Duel.GetOperationInfo(ev,CATEGORY_SPECIAL_SUMMON)
if ex then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetCode(EVENT_CHAIN_SOLVED)
e1:SetRange(LOCATION_MZONE)
e1:SetReset(RESET_EVENT+0x1fe0000+RESET_CHAIN)
e1:SetOperation(c94977269.checkop4)
c:RegisterEffect(e1)
end
end
function c94977269.checkop4(e,tp,eg,ep,ev,re,r,rp)
local ex,tg,ct,sp=Duel.GetOperationInfo(ev,CATEGORY_SPECIAL_SUMMON)
local c=e:GetHandler()
if sp==PLAYER_ALL then
c:RegisterFlagEffect(94977269,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
c:RegisterFlagEffect(94977270,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
else
c:RegisterFlagEffect(94977269+rp,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
end
e:Reset()
end
function c94977269.indval(e,re,tp) function c94977269.indval(e,re,tp)
return tp~=e:GetHandlerPlayer() return tp~=e:GetHandlerPlayer()
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