Delirium Lampyris
- Card ID:
120231061 - Format: Rush Duel
- Script:
Rush/Scripts/c120231061.lua
Stats
| Field | Value |
|---|---|
| Type | 0x21 |
| ATK | 800 |
| DEF | 1200 |
| Level/Rank/Link | 0x2 |
| Race | 0x800 |
| Attribute | 0x10 |
| Category | 0x101000 |
Card Text
text
[REQUIREMENT]
If your opponent has 2 or more monsters on their field, send this face-up card from your field and 1 monster from your hand to the Graveyard.
[EFFECT]
Take control of 1 face-up Level 5-8 monster on your opponent's field with the same Type as the monster sent from your hand to the Graveyard to meet the requirement (move it to your field, and use it yourself).Detected API Calls
Auxiliary.StringidCard.GetRaceCard.IsAbleToGraveAsCostCard.IsControlerCanBeChangedCard.IsFaceupCard.IsLevelAboveCard.IsLevelBelowCard.IsRaceCard.IsTypeCard.RegisterEffectDuel.GetControlDuel.GetFieldGroupCountDuel.GetMZoneCountDuel.HintDuel.IsExistingMatchingCardDuel.SelectMatchingCardDuel.SendtoGraveDuel.SetOperationInfoEffect.CreateEffectEffect.GetHandlerEffect.GetLabelEffect.SetCategoryEffect.SetConditionEffect.SetCostEffect.SetDescriptionEffect.SetLabelEffect.SetOperationEffect.SetRangeEffect.SetTargetEffect.SetTypeGroup.AddCardGroup.GetFirstRushDuel.FilterRushDuel.SelectAndDoAction
Script
lua
local cm,m=GetID()
cm.name="梦中之萤火虫"
function cm.initial_effect(c)
--Control
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_CONTROL)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Control
function cm.costfilter(c,tp)
return c:IsType(TYPE_MONSTER) and c:IsAbleToGraveAsCost()
and Duel.IsExistingMatchingCard(cm.filter,tp,0,LOCATION_MZONE,1,nil,c:GetRace(),true)
end
function cm.filter(c,race,ignore)
return c:IsFaceup() and c:IsRace(race) and c:IsLevelAbove(5) and c:IsLevelBelow(8)
and c:IsControlerCanBeChanged(ignore)
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFieldGroupCount(tp,0,LOCATION_MZONE)>=2
end
function cm.cost(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return c:IsFaceup() and c:IsAbleToGraveAsCost()
and Duel.GetMZoneCount(tp,c,tp,LOCATION_REASON_CONTROL)>0
and Duel.IsExistingMatchingCard(cm.costfilter,tp,LOCATION_HAND,0,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,cm.costfilter,tp,LOCATION_HAND,0,1,1,nil,tp)
e:SetLabel(g:GetFirst():GetRace())
g:AddCard(c)
Duel.SendtoGrave(g,REASON_COST)
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_CONTROL,nil,1,1-tp,LOCATION_MZONE)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local filter=RD.Filter(cm.filter,e:GetLabel(),false)
RD.SelectAndDoAction(HINTMSG_CONTROL,filter,tp,0,LOCATION_MZONE,1,1,nil,function(g)
Duel.GetControl(g,tp)
end)
end