Commit 001a8bdd authored by 未闻皂名's avatar 未闻皂名

2024/5/17 新增:E·HERO新卡

parent b7e6fd9b
Pipeline #27177 passed with stages
in 7 minutes and 12 seconds
No preview for this file type
...@@ -163,11 +163,8 @@ function RushDuel.FusionProcedureChecker(condition, checker) ...@@ -163,11 +163,8 @@ function RushDuel.FusionProcedureChecker(condition, checker)
if not Auxiliary.MustMaterialCheck(sg, tp, EFFECT_MUST_BE_FMATERIAL) then if not Auxiliary.MustMaterialCheck(sg, tp, EFFECT_MUST_BE_FMATERIAL) then
return false return false
end end
return condition(sg, fc, sub, ...) return condition(sg, fc, sub, ...) and (chkf == PLAYER_NONE or Duel.GetLocationCountFromEx(tp, tp, sg, fc) > 0) and (not checker or checker(sg, tp, fc, chkf)) and
and (chkf == PLAYER_NONE or Duel.GetLocationCountFromEx(tp, tp, sg, fc) > 0) (not Auxiliary.FCheckAdditional or Auxiliary.FCheckAdditional(tp, sg, fc)) and (not Auxiliary.FGoalCheckAdditional or Auxiliary.FGoalCheckAdditional(tp, sg, fc))
and (not checker or checker(sg, tp, fc, chkf))
and (not Auxiliary.FCheckAdditional or Auxiliary.FCheckAdditional(tp, sg, fc))
and (not Auxiliary.FGoalCheckAdditional or Auxiliary.FGoalCheckAdditional(tp, sg, fc))
end end
end end
-- 融合手续 - 条件 -- 融合手续 - 条件
...@@ -214,6 +211,17 @@ function RushDuel.FusionProcedureOperation(insf, sub, checker, min, max, ...) ...@@ -214,6 +211,17 @@ function RushDuel.FusionProcedureOperation(insf, sub, checker, min, max, ...)
end end
end end
-- 这张卡不用融合术召唤不能特殊召唤
function RushDuel.OnlyFusionSummon(card)
local e = Effect.CreateEffect(card)
e:SetType(EFFECT_TYPE_SINGLE)
e:SetCode(EFFECT_SPSUMMON_CONDITION)
e:SetProperty(EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE)
e:SetValue(aux.fuslimit)
card:RegisterEffect(e)
return e
end
-- 创建效果: 融合术/结合 召唤 -- 创建效果: 融合术/结合 召唤
function RushDuel.CreateFusionEffect(card, matfilter, spfilter, exfilter, s_range, o_range, mat_check, mat_move, target_action, operation_action, including_self) function RushDuel.CreateFusionEffect(card, matfilter, spfilter, exfilter, s_range, o_range, mat_check, mat_move, target_action, operation_action, including_self)
local self_range = s_range or 0 local self_range = s_range or 0
...@@ -231,9 +239,8 @@ function RushDuel.FusionMaterialFilter(c, filter, e) ...@@ -231,9 +239,8 @@ function RushDuel.FusionMaterialFilter(c, filter, e)
end end
-- 融合效果 - 融合召唤的怪兽过滤 -- 融合效果 - 融合召唤的怪兽过滤
function RushDuel.FusionSpecialSummonFilter(c, e, tp, m, f, gc, chkf, filter) function RushDuel.FusionSpecialSummonFilter(c, e, tp, m, f, gc, chkf, filter)
return c:IsType(TYPE_FUSION) and (not filter or filter(c, e, tp, m, f, chkf)) and (not f or f(c)) return c:IsType(TYPE_FUSION) and (not filter or filter(c, e, tp, m, f, chkf)) and (not f or f(c)) and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_FUSION, tp, false, false) and
and c:IsCanBeSpecialSummoned(e, SUMMON_TYPE_FUSION, tp, false, false) c:CheckFusionMaterial(m, gc, chkf)
and c:CheckFusionMaterial(m, gc, chkf)
end end
-- 融合效果 - 确认素材过滤 -- 融合效果 - 确认素材过滤
function RushDuel.ConfirmCardFilter(c) function RushDuel.ConfirmCardFilter(c)
......
...@@ -5,12 +5,7 @@ function cm.initial_effect(c) ...@@ -5,12 +5,7 @@ function cm.initial_effect(c)
--Fusion Material --Fusion Material
RD.AddFusionProcedure(c,false,cm.matfilter,cm.matfilter,cm.matfilter,cm.matfilter,cm.matfilter) RD.AddFusionProcedure(c,false,cm.matfilter,cm.matfilter,cm.matfilter,cm.matfilter,cm.matfilter)
--Only Fusion Summon --Only Fusion Summon
local e0=Effect.CreateEffect(c) RD.OnlyFusionSummon(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetValue(aux.fuslimit)
c:RegisterEffect(e0)
--Indes --Indes
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
...@@ -6,10 +6,10 @@ function cm.initial_effect(c) ...@@ -6,10 +6,10 @@ function cm.initial_effect(c)
RD.AddCodeList(c,list) RD.AddCodeList(c,list)
--Fusion Material --Fusion Material
RD.AddFusionProcedure(c,list[1],list[2]) RD.AddFusionProcedure(c,list[1],list[2])
--Atk Up --Atk Down
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0)) e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE) e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DEFCHANGE+CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCost(cm.cost) e1:SetCost(cm.cost)
...@@ -17,7 +17,7 @@ function cm.initial_effect(c) ...@@ -17,7 +17,7 @@ function cm.initial_effect(c)
e1:SetOperation(cm.operation) e1:SetOperation(cm.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
--Atk Up --Atk Down
function cm.costfilter(c) function cm.costfilter(c)
return c:IsType(TYPE_SPELL) and c:IsAbleToDeckOrExtraAsCost() return c:IsType(TYPE_SPELL) and c:IsAbleToDeckOrExtraAsCost()
end end
......
...@@ -5,12 +5,7 @@ function cm.initial_effect(c) ...@@ -5,12 +5,7 @@ function cm.initial_effect(c)
--Fusion Material --Fusion Material
RD.AddFusionProcedure(c,false,cm.matfilter,cm.matfilter,cm.matfilter,cm.matfilter,cm.matfilter) RD.AddFusionProcedure(c,false,cm.matfilter,cm.matfilter,cm.matfilter,cm.matfilter,cm.matfilter)
--Only Fusion Summon --Only Fusion Summon
local e0=Effect.CreateEffect(c) RD.OnlyFusionSummon(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_SPSUMMON_CONDITION)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetValue(aux.fuslimit)
c:RegisterEffect(e0)
--Indes --Indes
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE) e1:SetType(EFFECT_TYPE_SINGLE)
......
local m=120263001
local list={120263008,120263007}
local cm=_G["c"..m]
cm.name="元素英雄 火焰翼侠"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Fusion Material
RD.AddFusionProcedure(c,list[1],list[2])
--Only Fusion Summon
RD.OnlyFusionSummon(c)
--Damage
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DAMAGE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BATTLE_DESTROYING)
e1:SetCondition(cm.damcon)
e1:SetOperation(cm.damop)
c:RegisterEffect(e1)
--Continuous Effect
RD.AddContinuousEffect(c,e1)
end
--Damage
function cm.damcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local bc=c:GetBattleTarget()
return c:IsRelateToBattle() and bc:IsLocation(LOCATION_GRAVE) and bc:IsType(TYPE_MONSTER)
end
function cm.damop(e,tp,eg,ep,ev,re,r,rp)
local tc=e:GetHandler():GetBattleTarget()
if tc then
local dam=tc:GetBaseAttack()
if dam<0 then dam=0 end
Duel.Hint(HINT_CARD,0,m)
Duel.Damage(1-tp,dam,REASON_EFFECT)
end
end
\ No newline at end of file
local m=120263002
local list={120263008,120263007}
local cm=_G["c"..m]
cm.name="元素英雄 爆热翼侠"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Fusion Material
RD.AddFusionProcedure(c,list[1],list[2])
--Only Fusion Summon
RD.OnlyFusionSummon(c)
--Atk Up
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_ATKCHANGE+CATEGORY_DESTROY)
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
--Atk Up
function cm.filter(c)
return c:IsFaceup() and c:IsRace(RACE_WARRIOR)
end
function cm.desfilter(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP)
end
cm.cost=RD.CostSendDeckTopToGrave(1)
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_MZONE,0,1,nil) end
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.SelectAndDoAction(aux.Stringid(m,1),cm.filter,tp,LOCATION_MZONE,0,1,1,nil,function(g)
RD.AttachAtkDef(e,g:GetFirst(),1000,0,RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_END+RESET_OPPO_TURN)
RD.CanSelectAndDoAction(aux.Stringid(m,2),HINTMSG_DESTROY,cm.desfilter,tp,0,LOCATION_ONFIELD,1,1,nil,function(sg)
Duel.BreakEffect()
Duel.Destroy(sg,REASON_EFFECT)
end)
end)
end
\ No newline at end of file
local m=120263010
local cm=_G["c"..m]
cm.name="元素英雄 水泡侠"
function cm.initial_effect(c)
--Draw
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(m,0))
e1:SetCategory(CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(cm.condition)
e1:SetTarget(cm.target)
e1:SetOperation(cm.operation)
c:RegisterEffect(e1)
end
--Draw
function cm.condition(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
return (RD.IsSummonTurn(c) or RD.IsSpecialSummonTurn(c))
and Duel.GetFieldGroupCount(tp,LOCATION_ONFIELD+LOCATION_HAND,0)<=1
end
function cm.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,2) end
RD.TargetDraw(tp,2)
end
function cm.operation(e,tp,eg,ep,ev,re,r,rp)
RD.Draw()
end
\ No newline at end of file
local m=120263032
local list={120263008,120263007,120263006,120263005,120263009,120263004}
local cm=_G["c"..m]
cm.name="摩天楼"
function cm.initial_effect(c)
RD.AddCodeList(c,list)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e1)
--Atk
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_UPDATE_ATTACK)
e2:SetRange(LOCATION_FZONE)
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetTarget(cm.uptg)
e2:SetValue(1000)
c:RegisterEffect(e2)
end
--Atk
function cm.uptg(e,c)
return c:IsControler(Duel.GetTurnPlayer()) and c:IsFaceup()
and (c:IsCode(list[1],list[2],list[3],list[4],list[5],list[6])
or (c:IsType(TYPE_FUSION) and c:IsLevelAbove(5) and c:IsLevelBelow(8) and c:IsRace(RACE_WARRIOR)))
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