ハーピィの狩場
1:フィールドの鳥獣族モンスターの攻撃力・守備力は200アップする。
2:自分か相手が、「ハーピィ・レディ」か「ハーピィ・レディ三姉妹」を召喚・特殊召喚した場合、そのプレイヤーはフィールドの魔法・罠カード1枚を対象として発動する。
そのカードを破壊する。
local CARD_ID_0 = 76812113 --ハーピィ・レディ
local CARD_ID_1 = 12206212 --ハーピィ・レディ三姉妹

local CARD_ID_0 = 76812113 --ハーピィ・レディ
local CARD_ID_1 = 12206212 --ハーピィ・レディ三姉妹
local s, id, o = GetID()
function s.initial_effect(c)
	aux.AddCodeList(c, CARD_ID_1)
	--Activate
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_ACTIVATE)
	e1:SetCode(EVENT_FREE_CHAIN)
	c:RegisterEffect(e1)
	--trigger
	local e4 = Effect.CreateEffect(c)
	e4:SetCategory(CATEGORY_DESTROY)
	e4:SetDescription(aux.Stringid(id, 0))
	e4:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_F)
	e4:SetRange(LOCATION_FZONE)
	e4:SetProperty(EFFECT_FLAG_CARD_TARGET + EFFECT_FLAG_EVENT_PLAYER)
	e4:SetCode(EVENT_CUSTOM + id)
	e4:SetTarget(s.target)
	e4:SetOperation(s.operation)
	c:RegisterEffect(e4)
	--atk/def
	local e5 = Effect.CreateEffect(c)
	e5:SetType(EFFECT_TYPE_FIELD)
	e5:SetCode(EFFECT_UPDATE_ATTACK)
	e5:SetRange(LOCATION_FZONE)
	e5:SetTarget(aux.TargetBoolFunction(Card.IsRace, RACE_WINDBEAST))
	e5:SetTargetRange(LOCATION_MZONE, LOCATION_MZONE)
	e5:SetValue(200)
	c:RegisterEffect(e5)
	local e6 = e5:Clone()
	e6:SetCode(EFFECT_UPDATE_DEFENSE)
	c:RegisterEffect(e6)
	if not s.global_check then
		s.global_check = true
		local ge1 = Effect.CreateEffect(c)
		ge1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
		ge1:SetCode(EVENT_SUMMON_SUCCESS)
		ge1:SetOperation(s.check)
		Duel.RegisterEffect(ge1, 0)
		local ge2 = ge1:Clone()
		ge2:SetCode(EVENT_SPSUMMON_SUCCESS)
		Duel.RegisterEffect(ge2, 0)
	end
end
function s.check(e, tp, eg, ep, ev, re, r, rp)
	local c = e:GetHandler()
	local tc = eg:GetFirst()
	local g1 = Group.CreateGroup()
	local g2 = Group.CreateGroup()
	while tc do
		if tc:IsFaceup() and tc:IsCode(CARD_ID_0, CARD_ID_1) then
			if tc:IsControler(0) then
				g1:AddCard(tc)
			else
				g2:AddCard(tc)
			end
		end
		tc = eg:GetNext()
	end
	if g1:GetCount() > 0 then
		Duel.RaiseEvent(g1, EVENT_CUSTOM + id, re, r, rp, 0, 0)
	end
	if g2:GetCount() > 0 then
		Duel.RaiseEvent(g2, EVENT_CUSTOM + id, re, r, rp, 1, 0)
	end
end
function s.filter(c)
	return c:IsType(TYPE_SPELL + TYPE_TRAP)
end
function s.target(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
	if chkc then
		return chkc:IsOnField() and s.filter(chkc)
	end
	if chk == 0 then
		return true
	end
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_DESTROY)
	local g = Duel.SelectTarget(tp, s.filter, tp, LOCATION_ONFIELD, LOCATION_ONFIELD, 1, 1, nil)
	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, g:GetCount(), 0, 0)
end
function s.operation(e, tp, eg, ep, ev, re, r, rp)
	local tc = Duel.GetFirstTarget()
	if tc and tc:IsRelateToEffect(e) then
		Duel.Destroy(tc, REASON_EFFECT)
	end
end


ハーピィの狩場
1:フィールドの鳥獣族モンスターの攻撃力・守備力は200アップする。
2:自分か相手が、「ハーピィ・レディ」か「ハーピィ・レディ三姉妹」を召喚・特殊召喚した場合、そのプレイヤーはフィールドの魔法・罠カード1枚を対象として発動する。
そのカードを破壊する。
-- ハーピィの狩場
local CARD_ID_0 = 76812113 --ハーピィ・レディ
local CARD_ID_1 = 12206212 --ハーピィ・レディ三姉妹
local s, id, o = GetID()
function s.initial_effect(c)
	aux.AddCodeList(c, CARD_ID_1)
	--Activate
	local e1 = Effect.CreateEffect(c)
	e1:SetType(EFFECT_TYPE_ACTIVATE)
	e1:SetCode(EVENT_FREE_CHAIN)
	c:RegisterEffect(e1)
	--trigger
	local e4 = Effect.CreateEffect(c)
	e4:SetCategory(CATEGORY_DESTROY)
	e4:SetDescription(aux.Stringid(id, 0))
	e4:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_F)
	e4:SetRange(LOCATION_FZONE)
	e4:SetProperty(EFFECT_FLAG_CARD_TARGET + EFFECT_FLAG_EVENT_PLAYER)
	e4:SetCode(EVENT_CUSTOM + id)
	e4:SetTarget(s.target)
	e4:SetOperation(s.operation)
	c:RegisterEffect(e4)
	--atk/def
	local e5 = Effect.CreateEffect(c)
	e5:SetType(EFFECT_TYPE_FIELD)
	e5:SetCode(EFFECT_UPDATE_ATTACK)
	e5:SetRange(LOCATION_FZONE)
	e5:SetTarget(aux.TargetBoolFunction(Card.IsRace, RACE_WINDBEAST))
	e5:SetTargetRange(LOCATION_MZONE, LOCATION_MZONE)
	e5:SetValue(200)
	c:RegisterEffect(e5)
	local e6 = e5:Clone()
	e6:SetCode(EFFECT_UPDATE_DEFENSE)
	c:RegisterEffect(e6)
	if not s.global_check then
		s.global_check = true
		local ge1 = Effect.CreateEffect(c)
		ge1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
		ge1:SetCode(EVENT_SUMMON_SUCCESS)
		ge1:SetOperation(s.check)
		Duel.RegisterEffect(ge1, 0)
		local ge2 = ge1:Clone()
		ge2:SetCode(EVENT_SPSUMMON_SUCCESS)
		Duel.RegisterEffect(ge2, 0)
	end
end
function s.check(e, tp, eg, ep, ev, re, r, rp)
	local c = e:GetHandler()
	local tc = eg:GetFirst()
	local g1 = Group.CreateGroup()
	local g2 = Group.CreateGroup()
	while tc do
		if tc:IsFaceup() and tc:IsCode(CARD_ID_0, CARD_ID_1) then
			if tc:IsControler(0) then
				g1:AddCard(tc)
			else
				g2:AddCard(tc)
			end
		end
		tc = eg:GetNext()
	end
	if g1:GetCount() > 0 then
		Duel.RaiseEvent(g1, EVENT_CUSTOM + id, re, r, rp, 0, 0)
	end
	if g2:GetCount() > 0 then
		Duel.RaiseEvent(g2, EVENT_CUSTOM + id, re, r, rp, 1, 0)
	end
end
function s.filter(c)
	return c:IsType(TYPE_SPELL + TYPE_TRAP)
end
function s.target(e, tp, eg, ep, ev, re, r, rp, chk, chkc)
	if chkc then
		return chkc:IsOnField() and s.filter(chkc)
	end
	if chk == 0 then
		return true
	end
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_DESTROY)
	local g = Duel.SelectTarget(tp, s.filter, tp, LOCATION_ONFIELD, LOCATION_ONFIELD, 1, 1, nil)
	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, g:GetCount(), 0, 0)
end
function s.operation(e, tp, eg, ep, ev, re, r, rp)
	local tc = Duel.GetFirstTarget()
	if tc and tc:IsRelateToEffect(e) then
		Duel.Destroy(tc, REASON_EFFECT)
	end
end

