--天之志雷马 local m=33701376 local cm=_G["c"..m] function cm.initial_effect(c) --link summon aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkRace,RACE_MACHINE),2) c:EnableReviveLimit() local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetCode(EVENT_DAMAGE) e1:SetRange(LOCATION_MZONE) e1:SetOperation(cm.atkop) c:RegisterEffect(e1) local e2=Effect.CreateEffect(c) e2:SetDescription(aux.Stringid(m,0)) e2:SetCategory(CATEGORY_DAMAGE) e2:SetType(EFFECT_TYPE_IGNITION) e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e2:SetRange(LOCATION_MZONE) e2:SetCountLimit(1) e2:SetTarget(cm.dmtg) e2:SetOperation(cm.dmop) c:RegisterEffect(e2) local e3=Effect.CreateEffect(c) e3:SetDescription(aux.Stringid(m,1)) e3:SetCategory(CATEGORY_DAMAGE+CATEGORY_TOGRAVE) e3:SetType(EFFECT_TYPE_QUICK_O) e3:SetCode(EVENT_FREE_CHAIN) e3:SetHintTiming(TIMING_DAMAGE_STEP) e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP) e3:SetRange(LOCATION_MZONE) e3:SetCountLimit(1) e3:SetCondition(cm.condition) e3:SetOperation(cm.operation) c:RegisterEffect(e3) local e4=Effect.CreateEffect(c) e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e4:SetCode(EVENT_PHASE+PHASE_END) e4:SetRange(LOCATION_MZONE) e4:SetCountLimit(1) e4:SetOperation(cm.atkop1) c:RegisterEffect(e4) end function cm.atkop(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() if ep==tp and bit.band(r,REASON_EFFECT)~=0 and re:GetHandler()==c and c:IsFaceup() then local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_SINGLE) e1:SetCode(EFFECT_UPDATE_ATTACK) e1:SetValue(ev) e1:SetReset(RESET_EVENT+RESETS_STANDARD) c:RegisterEffect(e1) end end function cm.damtg(e,tp,eg,ep,ev,re,r,rp,chk) if chk==0 then return true end Duel.SetTargetPlayer(tp) Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,tp,0) end function cm.damop(e,tp,eg,ep,ev,re,r,rp) local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM) Duel.Damage(p,math.floor(Duel.GetLP(p)/2),REASON_EFFECT) end function cm.condition(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() local ph=Duel.GetCurrentPhase() local bc=c:GetBattleTarget() if bc~=nil then e:SetLabelObject(bc) end return ph==PHASE_DAMAGE and (c==Duel.GetAttacker() or c==Duel.GetAttackTarget()) and not Duel.IsDamageCalculated() end function cm.operation(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() local bc=e:GetLabelObject() if not c:IsFaceup() or not c:IsRelateToEffect(e) then return end local t2=c:IsStatus(STATUS_OPPO_BATTLE) and bc:IsRelateToBattle() local op=0 local m={} local n={} local ct=1 m[ct]=aux.Stringid(m,2) n[ct]=1 ct=ct+1 if t2 then m[ct]=aux.Stringid(m,3) n[ct]=2 ct=ct+1 end m[ct]=aux.Stringid(m,4) n[ct]=3 ct=ct+1 local sp=Duel.SelectOption(tp,table.unpack(m)) op=n[sp+1] if op==1 then local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_SINGLE) e1:SetCode(EFFECT_IMMUNE_EFFECT) e1:SetValue(cm.efilter) e1:SetOwnerPlayer(tp) e1:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_DAMAGE) c:RegisterEffect(e1) elseif op==2 then Duel.SendtoGrave(bc,REASON_EFFECT) elseif op==3 then local e2=Effect.CreateEffect(c) e2:SetType(EFFECT_TYPE_SINGLE) e2:SetCode(EFFECT_CHANGE_BATTLE_DAMAGE) e2:SetValue(aux.ChangeBattleDamage(1,DOUBLE_DAMAGE)) e2:SetReset(RESET_EVENT+RESETS_STANDARD+RESET_PHASE+PHASE_DAMAGE) c:RegisterEffect(e2) end end function cm.atkop1(e,tp,eg,ep,ev,re,r,rp) local c=e:GetHandler() if Duel.GetTurnPlayer()==tp then local e1=Effect.CreateEffect(c) e1:SetType(EFFECT_TYPE_SINGLE) e1:SetCode(EFFECT_SET_ATTACK_FINAL) e1:SetReset(RESET_EVENT+RESETS_STANDARD) e1:SetValue(math.ceil(c:GetAttack()/2)) c:RegisterEffect(e1) end end function cm.efilter(e,re) return e:GetOwnerPlayer()~=re:GetOwnerPlayer() end