name: Degenerate
card_text: The controller of this card pays 500 Life Points during each of their Standby Phases (this is not optional). Monster Cards that would be returned from the field to the hand are removed from play instead.
lua: local s, id, o = GetID()
  function s.initial_effect(c)
  	--Activate
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	c:RegisterEffect(e1)
  	--remove
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE + EFFECT_FLAG_IGNORE_IMMUNE)
  	e2:SetRange(LOCATION_SZONE)
  	e2:SetCode(EFFECT_TO_HAND_REDIRECT)
  	e2:SetTargetRange(LOCATION_ONFIELD, LOCATION_ONFIELD)
  	e2:SetTarget(s.rmtg)
  	e2:SetValue(LOCATION_REMOVED)
  	c:RegisterEffect(e2)
  	--cost
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
  	e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
  	e3:SetRange(LOCATION_SZONE)
  	e3:SetCode(EVENT_PHASE + PHASE_STANDBY)
  	e3:SetCountLimit(1)
  	e3:SetCondition(s.costcon)
  	e3:SetOperation(s.costop)
  	c:RegisterEffect(e3)
  end
  function s.rmtg(e, c)
  	return c:IsLocation(LOCATION_MZONE) or bit.band(c:GetOriginalType(), TYPE_MONSTER) ~= 0
  end
  function s.costcon(e, tp, eg, ep, ev, re, r, rp)
  	return Duel.GetTurnPlayer() == tp
  end
  function s.costop(e, tp, eg, ep, ev, re, r, rp)
  	if Duel.CheckLPCost(tp, 500) then
  		Duel.PayLPCost(tp, 500)
  	else
  		Duel.Destroy(e:GetHandler(), REASON_COST)
  	end
  end
  
  
source_text: Degenerate
  The controller of this card pays 500 Life Points during each of their Standby Phases (this is not optional). Monster Cards that would be returned from the field to the hand are removed from play instead.
target_text: -- Degenerate
  local s, id, o = GetID()
  function s.initial_effect(c)
  	--Activate
  	local e1 = Effect.CreateEffect(c)
  	e1:SetType(EFFECT_TYPE_ACTIVATE)
  	e1:SetCode(EVENT_FREE_CHAIN)
  	c:RegisterEffect(e1)
  	--remove
  	local e2 = Effect.CreateEffect(c)
  	e2:SetType(EFFECT_TYPE_FIELD)
  	e2:SetProperty(EFFECT_FLAG_SET_AVAILABLE + EFFECT_FLAG_IGNORE_IMMUNE)
  	e2:SetRange(LOCATION_SZONE)
  	e2:SetCode(EFFECT_TO_HAND_REDIRECT)
  	e2:SetTargetRange(LOCATION_ONFIELD, LOCATION_ONFIELD)
  	e2:SetTarget(s.rmtg)
  	e2:SetValue(LOCATION_REMOVED)
  	c:RegisterEffect(e2)
  	--cost
  	local e3 = Effect.CreateEffect(c)
  	e3:SetType(EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS)
  	e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
  	e3:SetRange(LOCATION_SZONE)
  	e3:SetCode(EVENT_PHASE + PHASE_STANDBY)
  	e3:SetCountLimit(1)
  	e3:SetCondition(s.costcon)
  	e3:SetOperation(s.costop)
  	c:RegisterEffect(e3)
  end
  function s.rmtg(e, c)
  	return c:IsLocation(LOCATION_MZONE) or bit.band(c:GetOriginalType(), TYPE_MONSTER) ~= 0
  end
  function s.costcon(e, tp, eg, ep, ev, re, r, rp)
  	return Duel.GetTurnPlayer() == tp
  end
  function s.costop(e, tp, eg, ep, ev, re, r, rp)
  	if Duel.CheckLPCost(tp, 500) then
  		Duel.PayLPCost(tp, 500)
  	else
  		Duel.Destroy(e:GetHandler(), REASON_COST)
  	end
  end
  
  