Commit cc555cdf authored by 未闻皂名's avatar 未闻皂名

2022/6/3 新增:异画七星道魔女,根据内核更新旧代码

parent fcb6a1fb
Pipeline #13395 passed with stages
in 4 minutes and 9 seconds
No preview for this file type
No preview for this file type
......@@ -11,6 +11,9 @@ RACE_GALAXY = 0x40000000 -- 银河
RACE_ALL = 0x7fffffff
-- 特殊调整
EFFECT_CANNOT_DOUBLE_TRIBUTE = 120120029 -- 魔将 雅灭鲁拉(不能使用:双重解放)
-- 创建效果: 玩家对象的全局效果
function RushDuel.CreatePlayerTargetGlobalEffect(code, value)
local e1 = Effect.GlobalEffect()
......
......@@ -141,6 +141,9 @@ function RushDuel.IsCanAttachAttackAll(card, value)
end
-- 条件: 可否赋予效果 - 双重解放
function RushDuel.IsCanAttachDoubleTribute(card, value)
if Duel.IsPlayerAffectedByEffect(card:GetControler(), EFFECT_CANNOT_DOUBLE_TRIBUTE) then
return false
end
if card:IsHasEffect(EFFECT_UNRELEASABLE_SUM) then
return false
end
......
......@@ -100,6 +100,14 @@ function RushDuel.AddMaximumProcedure(c, max_atk, left_code, right_code)
e9:SetCondition(RushDuel.MaximumMode)
e9:SetOperation(RushDuel.MaximumLeaveOperation)
c:RegisterEffect(e9)
-- 极大召唤时的表示形式
local ge1 = Effect.GlobalEffect()
ge1:SetType(EFFECT_TYPE_FIELD)
ge1:SetCode(EFFECT_LIMIT_SPECIAL_SUMMON_POSITION)
ge1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
ge1:SetTargetRange(1, 1)
ge1:SetTarget(RushDuel.MaximumSummonPosition)
Duel.RegisterEffect(ge1, 0)
end
function RushDuel.MaximumSummonFilter(c, e, tp, left_code, right_code)
return c:IsCode(left_code, right_code) and c:IsCanBeSpecialSummoned(e, 0, tp, false, false, POS_FACEUP)
......@@ -135,3 +143,6 @@ function RushDuel.MaximumLeaveOperation(e, tp, eg, ep, ev, re, r, rp)
Duel.Remove(g, POS_FACEUP, REASON_RULE)
end
end
function RushDuel.MaximumSummonPosition(e, c, tp, sumtp, sumpos)
return c:IsType(TYPE_MAXIMUM) and (sumtp & SUMMON_TYPE_MAXIMUM) == SUMMON_TYPE_MAXIMUM and (sumpos & POS_DEFENSE) > 0
end
......@@ -38,6 +38,16 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
e2:SetDescription(aux.Stringid(m,2))
e2:SetCode(EFFECT_CANNOT_MSET)
c:RegisterEffect(e2)
--Limit Tribute
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(m,3))
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_CANNOT_DOUBLE_TRIBUTE)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(1,1)
e3:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
c:RegisterEffect(e3)
end
end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp,se)
......
......@@ -23,17 +23,17 @@ function cm.eff1op(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,3))
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetCode(EFFECT_LIMIT_SPECIAL_SUMMON_POSITION)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_CLIENT_HINT)
e1:SetRange(LOCATION_MZONE)
e1:SetTargetRange(1,1)
e1:SetTarget(cm.sumlimit)
e1:SetTarget(cm.splimit)
e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
c:RegisterEffect(e1)
end
end
function cm.sumlimit(e,c,sump,sumtype,sumpos,targetp)
return c:IsLevelBelow(9) and sumpos==POS_FACEUP_ATTACK
function cm.splimit(e,c,tp,sumtp,sumpos)
return c:IsLevelBelow(9) and (sumpos&POS_ATTACK)>0
end
--Position
function cm.posfilter(c)
......
local m=120223001
local list={120105001}
local cm=_G["c"..m]
cm.name="七星道魔女"
function cm.initial_effect(c)
aux.AddCodeList(c,list[1])
--Special Summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_ATKCHANGE)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCost(cm.cost)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Special Summon
function cm.costfilter(c,e,tp)
return c:IsAbleToGraveAsCost() and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND,0,1,c,e,tp)
end
function cm.spfilter(c,e,tp)
return c:IsLevelAbove(7) and c:IsAttribute(ATTRIBUTE_DARK) and c:IsRace(RACE_SPELLCASTER)
and RD.IsCanBeSpecialSummoned(c,e,tp,POS_FACEUP)
end
function cm.exfilter(c)
return c:IsCode(list[1])
end
cm.cost=RD.CostSendHandToGrave(cm.costfilter,1,1)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetMZoneCount(tp)>0
and Duel.IsExistingMatchingCard(cm.spfilter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if RD.SelectAndSpecialSummon(cm.spfilter,tp,LOCATION_HAND,0,1,1,nil,e,POS_FACEUP)~=0
and RD.IsOperatedGroupExists(cm.exfilter,1,nil)
and c:IsFaceup()
and c:IsRelateToEffect(e) then
RD.AttachAtkDef(e,c,400,0,RESET_EVENT+RESETS_STANDARD+RESET_DISABLE+RESET_PHASE+PHASE_END)
end
end
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment