ADDED expansions/script/c896311393.lua Index: expansions/script/c896311393.lua ================================================================== --- /dev/null +++ expansions/script/c896311393.lua @@ -0,0 +1,67 @@ +--Emヒグルミ +function c896311393.initial_effect(c) + --pendulum summon + aux.EnablePendulumAttribute(c) + --spsummon + local e2=Effect.CreateEffect(c) + e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DAMAGE) + e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) + e2:SetCode(EVENT_DESTROYED) + e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) + e2:SetRange(LOCATION_PZONE) + e2:SetCountLimit(1,896311393) + e2:SetCondition(c896311393.spcon1) + e2:SetTarget(c896311393.sptg1) + e2:SetOperation(c896311393.spop1) + c:RegisterEffect(e2) + --spsummon + local e3=Effect.CreateEffect(c) + e3:SetCategory(CATEGORY_SPECIAL_SUMMON) + e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) + e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY) + e3:SetCode(EVENT_DESTROYED) + e3:SetCondition(c896311393.spcon2) + e3:SetTarget(c896311393.sptg2) + e3:SetOperation(c896311393.spop2) + c:RegisterEffect(e3) +end +function c896311393.cfilter(c,tp) + return c:IsReason(REASON_BATTLE+REASON_EFFECT) and c:IsSetCard(0xc6) + and c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousPosition(POS_FACEUP) and c:IsPreviousControler(tp) +end +function c896311393.spcon1(e,tp,eg,ep,ev,re,r,rp) + return eg:IsExists(c896311393.cfilter,1,nil,tp) +end +function c896311393.sptg1(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) + Duel.SetOperationInfo(0,CATEGORY_DAMAGE,0,0,tp,500) +end +function c896311393.spop1(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 then + Duel.BreakEffect() + Duel.Damage(tp,500,REASON_EFFECT) + end +end +function c896311393.spcon2(e,tp,eg,ep,ev,re,r,rp) + return bit.band(r,REASON_EFFECT+REASON_BATTLE)~=0 and e:GetHandler():IsPreviousLocation(LOCATION_ONFIELD) +end +function c896311393.spfilter(c,e,tp) + return c:IsSetCard(0xc6) and not c:IsCode(896311393) and c:IsCanBeSpecialSummoned(e,0,tp,false,false) +end +function c896311393.sptg2(e,tp,eg,ep,ev,re,r,rp,chk) + if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 + and Duel.IsExistingMatchingCard(c896311393.spfilter,tp,LOCATION_HAND+LOCATION_DECK,0,1,nil,e,tp) end + Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND+LOCATION_DECK) +end +function c896311393.spop2(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,c896311393.spfilter,tp,LOCATION_HAND+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