Dried
If you gain LP: Target 1 face-up monster your opponent controls; destroy it. If you control an "Aroma" monster and your LP are at least 3000 higher than your opponent's: You can pay LP equal to the difference; destroy face-up monsters your opponent controls whose combined ATK is less than or equal to the LP you paid to activate this effect. You can only use each effect of "Dried Winds" once per turn.
local SETCARD_ID_0 = 0xc9 --Aroma

local SETCARD_ID_0 = 0xc9 --Aroma
local s, id, o = GetID()
function s.initial_effect(c)
	--activate
	local e0 = Effect.CreateEffect(c)
	e0:SetType(EFFECT_TYPE_ACTIVATE)
	e0:SetCode(EVENT_FREE_CHAIN)
	c:RegisterEffect(e0)
	--activate(destroy)
	local e1 = Effect.CreateEffect(c)
	e1:SetDescription(aux.Stringid(id, 1))
	e1:SetCategory(CATEGORY_DESTROY)
	e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_F)
	e1:SetProperty(EFFECT_FLAG_CARD_TARGET + EFFECT_FLAG_DELAY)
	e1:SetCode(EVENT_RECOVER)
	e1:SetRange(LOCATION_SZONE)
	e1:SetCountLimit(1, id)
	e1:SetCondition(s.descon1)
	e1:SetTarget(s.destg1)
	e1:SetOperation(s.desop1)
	c:RegisterEffect(e1)
	--destroy
	local e3 = Effect.CreateEffect(c)
	e3:SetDescription(aux.Stringid(id, 2))
	e3:SetCategory(CATEGORY_DESTROY)
	e3:SetType(EFFECT_TYPE_QUICK_O)
	e3:SetCode(EVENT_FREE_CHAIN)
	e3:SetRange(LOCATION_SZONE)
	e3:SetCountLimit(1, id + 1)
	e3:SetCondition(s.descon2)
	e3:SetCost(s.descost2)
	e3:SetTarget(s.destg2)
	e3:SetOperation(s.desop2)
	c:RegisterEffect(e3)
end
function s.descon1(e, tp, eg, ep, ev, re, r, rp)
	return ep == tp
end
function s.desfilter1(c)
	return c:IsFaceup()
end
function s.destg1(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.desfilter1(chkc)
	end
	if chk == 0 then
		return true
	end
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_DESTROY)
	local g = Duel.SelectTarget(tp, s.desfilter1, tp, 0, LOCATION_MZONE, 1, 1, nil)
	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, g:GetCount(), 0, 0)
end
function s.desop1(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
function s.cfilter(c)
	return c:IsFaceup() and c:IsSetCard(SETCARD_ID_0)
end
function s.descon2(e, tp, eg, ep, ev, re, r, rp)
	return Duel.IsExistingMatchingCard(s.cfilter, tp, LOCATION_MZONE, 0, 1, nil) and Duel.GetLP(tp) - Duel.GetLP(1 - tp) >= 3000
end
function s.descost2(e, tp, eg, ep, ev, re, r, rp, chk)
	local lp = Duel.GetLP(tp) - Duel.GetLP(1 - tp)
	if chk == 0 then
		return Duel.CheckLPCost(tp, lp, true)
	end
	Duel.PayLPCost(tp, lp, true)
	e:SetLabel(lp)
end
function s.desfilter2(c, num)
	return c:IsFaceup() and c:IsAttackBelow(num)
end
function s.destg2(e, tp, eg, ep, ev, re, r, rp, chk)
	local lp = Duel.GetLP(tp) - Duel.GetLP(1 - tp)
	if chk == 0 then
		return Duel.IsExistingMatchingCard(s.desfilter2, tp, 0, LOCATION_MZONE, 1, nil, lp)
	end
	local g = Duel.GetMatchingGroup(s.desfilter2, tp, 0, LOCATION_MZONE, nil, e:GetLabel())
	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, 1, 0, 0)
end
function s.gselect(g, num)
	return g:GetSum(Card.GetAttack) <= num
end
function s.desop2(e, tp, eg, ep, ev, re, r, rp)
	local num = e:GetLabel()
	local g = Duel.GetMatchingGroup(s.desfilter2, tp, 0, LOCATION_MZONE, nil, num)
	if g:GetCount() == 0 then
		return
	end
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_DESTROY)
	local dg = g:SelectSubGroup(tp, s.gselect, false, 1, #g, num)
	Duel.Destroy(dg, REASON_EFFECT)
end


Dried
If you gain LP: Target 1 face-up monster your opponent controls; destroy it. If you control an "Aroma" monster and your LP are at least 3000 higher than your opponent's: You can pay LP equal to the difference; destroy face-up monsters your opponent controls whose combined ATK is less than or equal to the LP you paid to activate this effect. You can only use each effect of "Dried Winds" once per turn.
-- Dried
local SETCARD_ID_0 = 0xc9 --Aroma
local s, id, o = GetID()
function s.initial_effect(c)
	--activate
	local e0 = Effect.CreateEffect(c)
	e0:SetType(EFFECT_TYPE_ACTIVATE)
	e0:SetCode(EVENT_FREE_CHAIN)
	c:RegisterEffect(e0)
	--activate(destroy)
	local e1 = Effect.CreateEffect(c)
	e1:SetDescription(aux.Stringid(id, 1))
	e1:SetCategory(CATEGORY_DESTROY)
	e1:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_F)
	e1:SetProperty(EFFECT_FLAG_CARD_TARGET + EFFECT_FLAG_DELAY)
	e1:SetCode(EVENT_RECOVER)
	e1:SetRange(LOCATION_SZONE)
	e1:SetCountLimit(1, id)
	e1:SetCondition(s.descon1)
	e1:SetTarget(s.destg1)
	e1:SetOperation(s.desop1)
	c:RegisterEffect(e1)
	--destroy
	local e3 = Effect.CreateEffect(c)
	e3:SetDescription(aux.Stringid(id, 2))
	e3:SetCategory(CATEGORY_DESTROY)
	e3:SetType(EFFECT_TYPE_QUICK_O)
	e3:SetCode(EVENT_FREE_CHAIN)
	e3:SetRange(LOCATION_SZONE)
	e3:SetCountLimit(1, id + 1)
	e3:SetCondition(s.descon2)
	e3:SetCost(s.descost2)
	e3:SetTarget(s.destg2)
	e3:SetOperation(s.desop2)
	c:RegisterEffect(e3)
end
function s.descon1(e, tp, eg, ep, ev, re, r, rp)
	return ep == tp
end
function s.desfilter1(c)
	return c:IsFaceup()
end
function s.destg1(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.desfilter1(chkc)
	end
	if chk == 0 then
		return true
	end
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_DESTROY)
	local g = Duel.SelectTarget(tp, s.desfilter1, tp, 0, LOCATION_MZONE, 1, 1, nil)
	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, g:GetCount(), 0, 0)
end
function s.desop1(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
function s.cfilter(c)
	return c:IsFaceup() and c:IsSetCard(SETCARD_ID_0)
end
function s.descon2(e, tp, eg, ep, ev, re, r, rp)
	return Duel.IsExistingMatchingCard(s.cfilter, tp, LOCATION_MZONE, 0, 1, nil) and Duel.GetLP(tp) - Duel.GetLP(1 - tp) >= 3000
end
function s.descost2(e, tp, eg, ep, ev, re, r, rp, chk)
	local lp = Duel.GetLP(tp) - Duel.GetLP(1 - tp)
	if chk == 0 then
		return Duel.CheckLPCost(tp, lp, true)
	end
	Duel.PayLPCost(tp, lp, true)
	e:SetLabel(lp)
end
function s.desfilter2(c, num)
	return c:IsFaceup() and c:IsAttackBelow(num)
end
function s.destg2(e, tp, eg, ep, ev, re, r, rp, chk)
	local lp = Duel.GetLP(tp) - Duel.GetLP(1 - tp)
	if chk == 0 then
		return Duel.IsExistingMatchingCard(s.desfilter2, tp, 0, LOCATION_MZONE, 1, nil, lp)
	end
	local g = Duel.GetMatchingGroup(s.desfilter2, tp, 0, LOCATION_MZONE, nil, e:GetLabel())
	Duel.SetOperationInfo(0, CATEGORY_DESTROY, g, 1, 0, 0)
end
function s.gselect(g, num)
	return g:GetSum(Card.GetAttack) <= num
end
function s.desop2(e, tp, eg, ep, ev, re, r, rp)
	local num = e:GetLabel()
	local g = Duel.GetMatchingGroup(s.desfilter2, tp, 0, LOCATION_MZONE, nil, num)
	if g:GetCount() == 0 then
		return
	end
	Duel.Hint(HINT_SELECTMSG, tp, HINTMSG_DESTROY)
	local dg = g:SelectSubGroup(tp, s.gselect, false, 1, #g, num)
	Duel.Destroy(dg, REASON_EFFECT)
end

