--created by Walrus, coded by Lyris, art from Shadowverse's "Plagued City" 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:SetCountLimit(1,id) e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetCategory(CATEGORY_TOKEN+CATEGORY_SPECIAL_SUMMON) e1:SetHintTiming(0,TIMINGS_CHECK_MONSTER) e1:SetTarget(s.target) e1:SetOperation(s.activate) c:RegisterEffect(e1) local e2=Effect.CreateEffect(c) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e2:SetCode(EVENT_LEAVE_FIELD) e2:SetCountLimit(1,id) e2:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP) e2:SetCategory(CATEGORY_CONTROL) e2:SetCondition(s.ccon) e2:SetTarget(s.ctg) e2:SetOperation(s.cop) c:RegisterEffect(e2) end function s.filter(c,e,tp) return c:IsReleasableByEffect() and c:IsCanBeEffectTarget(e) and Duel.IsPlayerCanSpecialSummonMonster(tp,id//10,0x106,0x4011,0,0,c:IsType(TYPE_XYZ) and c:GetRank() or c:IsLevelAbove(1) and c:GetLevel() or 8,RACE_ZOMBIE,ATTRIBUTE_DARK) end function s.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 s.filter(chkc,e,tp) end if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingTarget(s.filter,tp,0,LOCATION_MZONE,1,nil,e,tp) end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_RELEASE) Duel.SelectTarget(tp,s.filter,tp,0,LOCATION_MZONE,1,1,nil,e,tp) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND) end function s.activate(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() local tc=Duel.GetFirstTarget() local lv=tc:IsType(TYPE_XYZ) and tc:GetRank() or tc:IsLevelAbove(1) and tc:GetLevel() or 8 if not (tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) and Duel.Release(tc,REASON_EFFECT)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsPlayerCanSpecialSummonMonster(tp,id//10,0x106,0x4011,0,0,lv,RACE_ZOMBIE,ATTRIBUTE_DARK)) then return end local token=Duel.CreateToken(tp,id//10) local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_SINGLE) e1:SetCode(EFFECT_CHANGE_LEVEL) e1:SetValue(lv) e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD) token:RegisterEffect(e1) Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP) end function s.ccon(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() return c:IsPreviousPosition(POS_FACEDOWN) and rp~=tp end function s.ctg(e,tp,eg,ep,ev,re,r,rp,chk) if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsFaceup() and chkc:IsAbleToChangeControler() and chkc:IsControler(1-tp) end if chk==0 then return true end Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.SetOperationInfo(0,CATEGORY_CONTROL,Duel.SelectTarget(tp,aux.AND(Card.IsFaceup,Card.IsAbleToChangeControler),tp,0,LOCATION_MZONE,1,1,nil),1,0,0) end function s.cop(e,tp,eg,ep,ev,re,r,rp) local tc=Duel.GetFirstTarget() if not (tc and tc:IsRelateToEffect(e) and Duel.GetControl(tc,tp)) then return end local e1=Effect.CreateEffect(e:GetHandler()) e1:SetType(EFFECT_TYPE_SINGLE) e1:SetCode(EFFECT_CHANGE_CODE) e1:SetValue(4388680) e1:SetReset(RESET_EVENT+RESETS_STANDARD) tc:RegisterEffect(e1) local e2=e1:Clone() e2:SetCode(EFFECT_CHANGE_ATTRIBUTE) e2:SetValue(ATTRIBUTE_DARK) tc:RegisterEffect(e2) local e3=e1:Clone() e3:SetCode(EFFECT_CHANGE_RACE) e3:SetValue(RACE_ZOMBIE) tc:RegisterEffect(e3) end