--Sharkya local s,id=GetID() function s.initial_effect(c) --You can only Special Summon "Sharkya(s)" once per turn. c:SetSPSummonOnce(id) c:EnableReviveLimit() aux.AddOrigBigbangType(c) aux.AddBigbangProc(c,aux.NOT(aux.FilterBoolFunctionEx(Card.IsType,TYPE_TOKEN)),2,2) --This card gains effect based on the Vibes of the materials used for its Bigbang Summon. local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_SINGLE) e1:SetCode(EFFECT_MATERIAL_CHECK) e1:SetValue(s.matcheck) c:RegisterEffect(e1) local e2=Effect.CreateEffect(c) e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e2:SetCode(EVENT_SPSUMMON_SUCCESS) e2:SetCondition(s.regcon) e2:SetOperation(s.regop) c:RegisterEffect(e2) --If this card is Special Summoned, you cannot Special Summon monsters from the Extra Deck for the rest of this turn, except Bigbang monsters. e2:SetLabelObject(e1) local e3=Effect.CreateEffect(c) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS) e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE) e3:SetCode(EVENT_SPSUMMON_SUCCESS) e3:SetCondition(s.spcon) e3:SetOperation(s.spop) c:RegisterEffect(e3) end function s.matcheck(e,c) local g=c:GetMaterial() if not g then return end local typ=0 for tc in aux.Next(g) do local vibe = 0 --since the default return value of GetLabel is 0 (conflicts with the neutral Vibe return value) i'm converting the vibes into other random values, i'm using FUSION, SYNCHRO and XYZ because the base for the script was Taotie Dragon. if tc:IsNeutral() then vibe=TYPE_FUSION end if tc:IsNegative() then vibe=TYPE_SYNCHRO end if tc:IsPositive() then vibe=TYPE_XYZ end typ=(typ|vibe) end typ=(typ&TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ) e:SetLabel(typ) end function s.regcon(e,tp,eg,ep,ev,re,r,rp) return e:GetHandler():IsSummonType(SUMMON_TYPE_BIGBANG) and e:GetLabelObject():GetLabel()~=0 end function s.regop(e,tp,eg,ep,ev,re,r,rp) local typ=e:GetLabelObject():GetLabel() local c=e:GetHandler() --● Neutral: Your opponent cannot target this card with card effects. if (typ&TYPE_FUSION)~=0 then 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_EFFECT_TARGET) e1:SetValue(aux.tgoval) e1:SetReset(RESET_EVENT+RESETS_STANDARD) c:RegisterEffect(e1) c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,0)) end --● Negative: Your opponent cannot target this card for attacks. if (typ&TYPE_SYNCHRO)~=0 then local e2=Effect.CreateEffect(c) e2:SetType(EFFECT_TYPE_SINGLE) e2:SetProperty(EFFECT_FLAG_SINGLE_RANGE) e2:SetRange(LOCATION_MZONE) e2:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET) e2:SetValue(aux.imval1) e2:SetReset(RESET_EVENT+RESETS_STANDARD) c:RegisterEffect(e2) c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,1)) end --● Positive: Your opponent cannot target other monsters you control for attacks. if (typ&TYPE_XYZ)~=0 then local e3=Effect.CreateEffect(c) e3:SetType(EFFECT_TYPE_FIELD) e3:SetCode(EFFECT_CANNOT_BE_BATTLE_TARGET) e3:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE+EFFECT_FLAG_SET_AVAILABLE) e3:SetRange(LOCATION_MZONE) e3:SetTargetRange(LOCATION_MZONE,0) e3:SetTarget(s.tglimit) e3:SetValue(aux.imval1) e3:SetReset(RESET_EVENT+RESETS_STANDARD) c:RegisterEffect(e3) c:RegisterFlagEffect(0,RESET_EVENT+RESETS_STANDARD,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(id,2)) end end function s.tglimit(e,c) return c~=e:GetHandler() end function s.spcon(e,tp,eg,ep,ev,re,r,rp) return e:GetHandler():IsSummonType(SUMMON_TYPE_BIGBANG) end function s.spop(e,tp,eg,ep,ev,re,r,rp,c) local e1=Effect.CreateEffect(e:GetHandler()) e1:SetType(EFFECT_TYPE_FIELD) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT) e1:SetDescription(aux.Stringid(id,3)) e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON) e1:SetReset(RESET_PHASE+PHASE_END) e1:SetTargetRange(1,0) e1:SetTarget(s.splimit) Duel.RegisterEffect(e1,tp) end function s.splimit(e,c) return not c:IsType(TYPE_BIGBANG) and c:IsLocation(LOCATION_EXTRA) end