name: Morphtronic
card_text: ● While in Attack Position: Once per turn, if you control exactly 2 other face-up Attack Position monsters, and no additional monsters, this card gains the combined ATK of the other two monsters you control until the End Phase. The other monsters cannot attack the turn you activate this effect.
  ● While in Defense Position: Monsters you control cannot attack.
lua: local s, id, o = GetID()
  function s.initial_effect(c)
  	--atk
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetCategory(CATEGORY_ATKCHANGE)
  	e1:SetType(EFFECT_TYPE_IGNITION)
  	e1:SetCountLimit(1)
  	e1:SetRange(LOCATION_MZONE)
  	e1:SetCondition(s.cona)
  	e1:SetTarget(s.tga)
  	e1:SetOperation(s.opa)
  	c:RegisterEffect(e1)
  	--def
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetRange(LOCATION_MZONE)
  	e2:SetTargetRange(LOCATION_MZONE, 0)
  	e2:SetCode(EFFECT_CANNOT_ATTACK)
  	e2:SetCondition(s.cond)
  	c:RegisterEffect(e2)
  end
  function s.cfilter(c)
  	return c:IsFaceup() and c:IsAttackPos()
  end
  function s.cona(e, tp, eg, ep, ev, re, r, rp)
  	return not e:GetHandler():IsDisabled()
  		and e:GetHandler():IsAttackPos()
  		and Duel.GetMatchingGroupCount(s.cfilter, tp, LOCATION_MZONE, 0, e:GetHandler()) == 2
  		and not Duel.IsExistingMatchingCard(Card.IsDefensePos, tp, LOCATION_MZONE, 0, 1, e:GetHandler())
  end
  function s.tga(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return true
  	end
  	local c = e:GetHandler()
  	local g = Duel.GetMatchingGroup(Card.IsFaceup, tp, LOCATION_MZONE, 0, c)
  	Duel.SetTargetCard(g)
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_FIELD)
  	e1:SetCode(EFFECT_CANNOT_ATTACK)
  	e1:SetProperty(EFFECT_FLAG_OATH)
  	e1:SetTargetRange(LOCATION_MZONE, 0)
  	e1:SetTarget(s.ftarget)
  	e1:SetLabel(c:GetFieldID())
  	e1:SetReset(RESET_PHASE + PHASE_END)
  	Duel.RegisterEffect(e1, tp)
  end
  function s.ftarget(e, c)
  	return e:GetLabel() ~= c:GetFieldID()
  end
  function s.filter(c, e)
  	return c:IsFaceup() and c:IsRelateToEffect(e)
  end
  function s.opa(e, tp, eg, ep, ev, re, r, rp)
  	local g = Duel.GetChainInfo(0, CHAININFO_TARGET_CARDS)
  	local sg = g:Filter(s.filter, nil, e)
  	if sg:GetCount() == 0 then
  		return
  	end
  	local atk = sg:GetSum(Card.GetAttack)
  	local c = e:GetHandler()
  	if not c:IsRelateToEffect(e) or c:IsFacedown() then
  		return
  	end
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_SINGLE)
  	e1:SetCode(EFFECT_UPDATE_ATTACK)
  	e1:SetValue(atk)
  	e1:SetReset(RESET_EVENT + RESETS_STANDARD + RESET_DISABLE + RESET_PHASE + PHASE_END)
  	c:RegisterEffect(e1)
  end
  function s.cond(e)
  	return e:GetHandler():IsDefensePos()
  end
  
  
source_text: Morphtronic
  ● While in Attack Position: Once per turn, if you control exactly 2 other face-up Attack Position monsters, and no additional monsters, this card gains the combined ATK of the other two monsters you control until the End Phase. The other monsters cannot attack the turn you activate this effect.
  ● While in Defense Position: Monsters you control cannot attack.
target_text: -- Morphtronic
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--atk
  	local e1 = Effect.CreateEffect(c)
  	e1:SetDescription(aux.Stringid(id, 0))
  	e1:SetCategory(CATEGORY_ATKCHANGE)
  	e1:SetType(EFFECT_TYPE_IGNITION)
  	e1:SetCountLimit(1)
  	e1:SetRange(LOCATION_MZONE)
  	e1:SetCondition(s.cona)
  	e1:SetTarget(s.tga)
  	e1:SetOperation(s.opa)
  	c:RegisterEffect(e1)
  	--def
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetRange(LOCATION_MZONE)
  	e2:SetTargetRange(LOCATION_MZONE, 0)
  	e2:SetCode(EFFECT_CANNOT_ATTACK)
  	e2:SetCondition(s.cond)
  	c:RegisterEffect(e2)
  end
  function s.cfilter(c)
  	return c:IsFaceup() and c:IsAttackPos()
  end
  function s.cona(e, tp, eg, ep, ev, re, r, rp)
  	return not e:GetHandler():IsDisabled()
  		and e:GetHandler():IsAttackPos()
  		and Duel.GetMatchingGroupCount(s.cfilter, tp, LOCATION_MZONE, 0, e:GetHandler()) == 2
  		and not Duel.IsExistingMatchingCard(Card.IsDefensePos, tp, LOCATION_MZONE, 0, 1, e:GetHandler())
  end
  function s.tga(e, tp, eg, ep, ev, re, r, rp, chk)
  	if chk == 0 then
  		return true
  	end
  	local c = e:GetHandler()
  	local g = Duel.GetMatchingGroup(Card.IsFaceup, tp, LOCATION_MZONE, 0, c)
  	Duel.SetTargetCard(g)
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_FIELD)
  	e1:SetCode(EFFECT_CANNOT_ATTACK)
  	e1:SetProperty(EFFECT_FLAG_OATH)
  	e1:SetTargetRange(LOCATION_MZONE, 0)
  	e1:SetTarget(s.ftarget)
  	e1:SetLabel(c:GetFieldID())
  	e1:SetReset(RESET_PHASE + PHASE_END)
  	Duel.RegisterEffect(e1, tp)
  end
  function s.ftarget(e, c)
  	return e:GetLabel() ~= c:GetFieldID()
  end
  function s.filter(c, e)
  	return c:IsFaceup() and c:IsRelateToEffect(e)
  end
  function s.opa(e, tp, eg, ep, ev, re, r, rp)
  	local g = Duel.GetChainInfo(0, CHAININFO_TARGET_CARDS)
  	local sg = g:Filter(s.filter, nil, e)
  	if sg:GetCount() == 0 then
  		return
  	end
  	local atk = sg:GetSum(Card.GetAttack)
  	local c = e:GetHandler()
  	if not c:IsRelateToEffect(e) or c:IsFacedown() then
  		return
  	end
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_SINGLE)
  	e1:SetCode(EFFECT_UPDATE_ATTACK)
  	e1:SetValue(atk)
  	e1:SetReset(RESET_EVENT + RESETS_STANDARD + RESET_DISABLE + RESET_PHASE + PHASE_END)
  	c:RegisterEffect(e1)
  end
  function s.cond(e)
  	return e:GetHandler():IsDefensePos()
  end
  
  