name: Aiza
card_text: If this card is Special Summoned: You can place 1 Deranged Counter on 1 face-up monster your opponent controls, and it cannot be used as material for a Fusion, Synchro, Xyz, or Link Summon while it has that counter. At the start of the Damage Step, if this card battles an opponent's monster with a Deranged Counter: You can destroy that opponent's monster, and if you do, both players take damage equal to its original ATK, also destroy this card at the end of this Battle Phase. You can only use each effect of "Aiza the Dragoness of Deranged Devotion" once per turn.
external_ids: local COUNTER_ID_0 = 0x106b --Deranged
  
lua: local COUNTER_ID_0 = 0x106b --Deranged
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--add counter
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetCategory(CATEGORY_COUNTER)
  	e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
  	e1:SetCode(EVENT_SPSUMMON_SUCCESS)
  	e1:SetCountLimit(1, id)
  	e1:SetRange(LOCATION_MZONE)
  	e1:SetCondition(s.ctcon)
  	e1:SetTarget(s.cttg)
  	e1:SetOperation(s.ctop)
  	c:RegisterEffect(e1)
  	--destroy
  	local e2 = Effect.CreateEffect(c)
  	e2:SetDescription(aux.Stringid(id, 1))
  	e2:SetCategory(CATEGORY_DESTROY)
  	e2:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
  	e2:SetCode(EVENT_BATTLE_START)
  	e2:SetCountLimit(1, id + o)
  	e2:SetCondition(s.descon)
  	e2:SetTarget(s.destg)
  	e2:SetOperation(s.desop)
  	c:RegisterEffect(e2)
  end
  function s.ctcon(e, tp, eg, ep, ev, re, r, rp)
  	return e:GetHandler():IsSummonType(SUMMON_TYPE_SPECIAL)
  end
  function s.cttg(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
  	if chkc then
  		return chkc:IsControler(1 - tp) and chkc:IsLocation(LOCATION_MZONE) and chkc:IsCanAddCounter(COUNTER_ID_0, 1)
  	end
  	if chk == 0 then
  		return Duel.IsExistingMatchingCard(Card.IsCanAddCounter, tp, 0, LOCATION_MZONE, 1, nil, 0x106b, 1)
  	end
  end
  function s.ctop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_FACEUP)
  	local g = Duel.SelectMatchingCard(tp, Card.IsCanAddCounter, tp, 0, LOCATION_MZONE, 1, 1, nil, 0x106b, 1)
  	if g:GetCount() > 0 then
  		Duel.HintSelection(g)
  		local tc = g:GetFirst()
  		if tc:AddCounter(COUNTER_ID_0, 1) then
  			local e1 = Effect.CreateEffect(e:GetHandler())
  			e1:SetType(EFFECT_TYPE_SINGLE)
  			e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
  			e1:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
  			e1:SetRange(LOCATION_MZONE)
  			e1:SetReset(RESET_EVENT + RESETS_STANDARD)
  			e1:SetCondition(s.mtcon)
  			e1:SetValue(1)
  			tc:RegisterEffect(e1)
  			local e2 = e1:Clone()
  			e2:SetValue(s.fuslimit)
  			e2:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
  			tc:RegisterEffect(e2)
  			local e3 = e1:Clone()
  			e3:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
  			tc:RegisterEffect(e3)
  			local e4 = e1:Clone()
  			e4:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
  			tc:RegisterEffect(e4)
  		end
  	end
  end
  function s.mtcon(e)
  	return e:GetHandler():GetCounter(COUNTER_ID_0) > 0
  end
  function s.fuslimit(e, c, st)
  	return st == SUMMON_TYPE_FUSION
  end
  function s.descon(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	local bc = c:GetBattleTarget()
  	e:SetLabelObject(bc)
  	return bc and bc:IsControler(1 - tp) and bc:GetCounter(COUNTER_ID_0) > 0 and bc:IsRelateToBattle()
  end
  function s.destg(e, tp, eg, ep, ev, re, r, rp, chk)
  	local bc = e:GetLabelObject()
  	if chk == 0 then
  		return bc
  	end
  	Duel.SetOperationInfo(0, CATEGORY_DESTROY, bc, 1, 0, 0)
  	if bc:GetTextAttack() > 0 then
  		Duel.SetOperationInfo(0, CATEGORY_DAMAGE, nil, 0, PLAYER_ALL, bc:GetTextAttack())
  	end
  end
  function s.desop(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	local bc = e:GetHandler():GetBattleTarget()
  	if bc:IsRelateToBattle() and bc:IsType(TYPE_MONSTER) and bc:IsControler(1 - tp) and Duel.Destroy(bc, REASON_EFFECT) > 0 then
  		Duel.Damage(1 - tp, bc:GetTextAttack(), REASON_EFFECT, true)
  		Duel.Damage(tp, bc:GetTextAttack(), REASON_EFFECT, true)
  		Duel.RDComplete()
  	end
  	local fid = e:GetHandler():GetFieldID()
  	c:RegisterFlagEffect(id, RESET_EVENT + 0x47c0000 + RESET_PHASE + PHASE_BATTLE, 0, 1, fid)
  	local de = Effect.CreateEffect(c)
  	de:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
  	de:SetCode(EVENT_PHASE + PHASE_BATTLE)
  	de:SetReset(RESET_PHASE + PHASE_BATTLE)
  	de:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
  	de:SetCountLimit(1)
  	de:SetLabel(fid)
  	de:SetLabelObject(c)
  	de:SetOperation(s.desop2)
  	Duel.RegisterEffect(de, tp)
  end
  function s.desop2(e, tp, eg, ep, ev, re, r, rp)
  	local tc = e:GetLabelObject()
  	local fid = e:GetLabel()
  	if tc:GetFlagEffectLabel(id) == fid then
  		Duel.Destroy(tc, REASON_EFFECT)
  	end
  end
  
  
source_text: Aiza
  If this card is Special Summoned: You can place 1 Deranged Counter on 1 face-up monster your opponent controls, and it cannot be used as material for a Fusion, Synchro, Xyz, or Link Summon while it has that counter. At the start of the Damage Step, if this card battles an opponent's monster with a Deranged Counter: You can destroy that opponent's monster, and if you do, both players take damage equal to its original ATK, also destroy this card at the end of this Battle Phase. You can only use each effect of "Aiza the Dragoness of Deranged Devotion" once per turn.
target_text: -- Aiza
  local COUNTER_ID_0 = 0x106b --Deranged
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--add counter
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetCategory(CATEGORY_COUNTER)
  	e1:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
  	e1:SetCode(EVENT_SPSUMMON_SUCCESS)
  	e1:SetCountLimit(1, id)
  	e1:SetRange(LOCATION_MZONE)
  	e1:SetCondition(s.ctcon)
  	e1:SetTarget(s.cttg)
  	e1:SetOperation(s.ctop)
  	c:RegisterEffect(e1)
  	--destroy
  	local e2 = Effect.CreateEffect(c)
  	e2:SetDescription(aux.Stringid(id, 1))
  	e2:SetCategory(CATEGORY_DESTROY)
  	e2:SetType(EFFECT_TYPE_SINGLE + EFFECT_TYPE_TRIGGER_O)
  	e2:SetCode(EVENT_BATTLE_START)
  	e2:SetCountLimit(1, id + o)
  	e2:SetCondition(s.descon)
  	e2:SetTarget(s.destg)
  	e2:SetOperation(s.desop)
  	c:RegisterEffect(e2)
  end
  function s.ctcon(e, tp, eg, ep, ev, re, r, rp)
  	return e:GetHandler():IsSummonType(SUMMON_TYPE_SPECIAL)
  end
  function s.cttg(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
  	if chkc then
  		return chkc:IsControler(1 - tp) and chkc:IsLocation(LOCATION_MZONE) and chkc:IsCanAddCounter(COUNTER_ID_0, 1)
  	end
  	if chk == 0 then
  		return Duel.IsExistingMatchingCard(Card.IsCanAddCounter, tp, 0, LOCATION_MZONE, 1, nil, 0x106b, 1)
  	end
  end
  function s.ctop(e, tp, eg, ep, ev, re, r, rp)
  	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_FACEUP)
  	local g = Duel.SelectMatchingCard(tp, Card.IsCanAddCounter, tp, 0, LOCATION_MZONE, 1, 1, nil, 0x106b, 1)
  	if g:GetCount() > 0 then
  		Duel.HintSelection(g)
  		local tc = g:GetFirst()
  		if tc:AddCounter(COUNTER_ID_0, 1) then
  			local e1 = Effect.CreateEffect(e:GetHandler())
  			e1:SetType(EFFECT_TYPE_SINGLE)
  			e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
  			e1:SetCode(EFFECT_CANNOT_BE_SYNCHRO_MATERIAL)
  			e1:SetRange(LOCATION_MZONE)
  			e1:SetReset(RESET_EVENT + RESETS_STANDARD)
  			e1:SetCondition(s.mtcon)
  			e1:SetValue(1)
  			tc:RegisterEffect(e1)
  			local e2 = e1:Clone()
  			e2:SetValue(s.fuslimit)
  			e2:SetCode(EFFECT_CANNOT_BE_FUSION_MATERIAL)
  			tc:RegisterEffect(e2)
  			local e3 = e1:Clone()
  			e3:SetCode(EFFECT_CANNOT_BE_XYZ_MATERIAL)
  			tc:RegisterEffect(e3)
  			local e4 = e1:Clone()
  			e4:SetCode(EFFECT_CANNOT_BE_LINK_MATERIAL)
  			tc:RegisterEffect(e4)
  		end
  	end
  end
  function s.mtcon(e)
  	return e:GetHandler():GetCounter(COUNTER_ID_0) > 0
  end
  function s.fuslimit(e, c, st)
  	return st == SUMMON_TYPE_FUSION
  end
  function s.descon(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	local bc = c:GetBattleTarget()
  	e:SetLabelObject(bc)
  	return bc and bc:IsControler(1 - tp) and bc:GetCounter(COUNTER_ID_0) > 0 and bc:IsRelateToBattle()
  end
  function s.destg(e, tp, eg, ep, ev, re, r, rp, chk)
  	local bc = e:GetLabelObject()
  	if chk == 0 then
  		return bc
  	end
  	Duel.SetOperationInfo(0, CATEGORY_DESTROY, bc, 1, 0, 0)
  	if bc:GetTextAttack() > 0 then
  		Duel.SetOperationInfo(0, CATEGORY_DAMAGE, nil, 0, PLAYER_ALL, bc:GetTextAttack())
  	end
  end
  function s.desop(e, tp, eg, ep, ev, re, r, rp)
  	local c = e:GetHandler()
  	local bc = e:GetHandler():GetBattleTarget()
  	if bc:IsRelateToBattle() and bc:IsType(TYPE_MONSTER) and bc:IsControler(1 - tp) and Duel.Destroy(bc, REASON_EFFECT) > 0 then
  		Duel.Damage(1 - tp, bc:GetTextAttack(), REASON_EFFECT, true)
  		Duel.Damage(tp, bc:GetTextAttack(), REASON_EFFECT, true)
  		Duel.RDComplete()
  	end
  	local fid = e:GetHandler():GetFieldID()
  	c:RegisterFlagEffect(id, RESET_EVENT + 0x47c0000 + RESET_PHASE + PHASE_BATTLE, 0, 1, fid)
  	local de = Effect.CreateEffect(c)
  	de:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
  	de:SetCode(EVENT_PHASE + PHASE_BATTLE)
  	de:SetReset(RESET_PHASE + PHASE_BATTLE)
  	de:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
  	de:SetCountLimit(1)
  	de:SetLabel(fid)
  	de:SetLabelObject(c)
  	de:SetOperation(s.desop2)
  	Duel.RegisterEffect(de, tp)
  end
  function s.desop2(e, tp, eg, ep, ev, re, r, rp)
  	local tc = e:GetLabelObject()
  	local fid = e:GetLabel()
  	if tc:GetFlagEffectLabel(id) == fid then
  		Duel.Destroy(tc, REASON_EFFECT)
  	end
  end
  
  