Commit 4eaef45a authored by salix5's avatar salix5

fix

parent 35099ba1
...@@ -433,17 +433,9 @@ void card::calc_attack_defence(int32 *patk, int32 *pdef) { ...@@ -433,17 +433,9 @@ void card::calc_attack_defence(int32 *patk, int32 *pdef) {
for (int32 i = 0; i < eset.size(); ++i) { for (int32 i = 0; i < eset.size(); ++i) {
switch (eset[i]->code) { switch (eset[i]->code) {
case EFFECT_UPDATE_ATTACK: case EFFECT_UPDATE_ATTACK:
if ((eset[i]->type & EFFECT_TYPE_SINGLE) && !(eset[i]->flag & EFFECT_FLAG_SINGLE_RANGE)) { if ((eset[i]->type & EFFECT_TYPE_SINGLE) && !(eset[i]->flag & EFFECT_FLAG_SINGLE_RANGE))
for (int32 j = 0; j < effects_atk.size(); ++j) {
if (effects_atk[j]->flag & EFFECT_FLAG_REPEAT) {
base_atk = effects_atk[j]->get_value(this);
up_atk = 0;
upc_atk = 0;
temp.attack = base_atk;
}
}
up_atk += eset[i]->get_value(this); up_atk += eset[i]->get_value(this);
} else else
upc_atk += eset[i]->get_value(this); upc_atk += eset[i]->get_value(this);
break; break;
case EFFECT_SET_ATTACK: case EFFECT_SET_ATTACK:
...@@ -460,17 +452,9 @@ void card::calc_attack_defence(int32 *patk, int32 *pdef) { ...@@ -460,17 +452,9 @@ void card::calc_attack_defence(int32 *patk, int32 *pdef) {
effects_atk.add_item(eset[i]); effects_atk.add_item(eset[i]);
break; break;
case EFFECT_UPDATE_DEFENCE: case EFFECT_UPDATE_DEFENCE:
if ((eset[i]->type & EFFECT_TYPE_SINGLE) && !(eset[i]->flag & EFFECT_FLAG_SINGLE_RANGE)) { if ((eset[i]->type & EFFECT_TYPE_SINGLE) && !(eset[i]->flag & EFFECT_FLAG_SINGLE_RANGE))
for (int32 j = 0; j < effects_def.size(); ++j) {
if (effects_def[j]->flag & EFFECT_FLAG_REPEAT) {
base_def = effects_def[j]->get_value(this);
up_def = 0;
upc_def = 0;
temp.defence = base_def;
}
}
up_def += eset[i]->get_value(this); up_def += eset[i]->get_value(this);
} else else
upc_def += eset[i]->get_value(this); upc_def += eset[i]->get_value(this);
break; break;
case EFFECT_SET_DEFENCE: case EFFECT_SET_DEFENCE:
......
...@@ -4653,14 +4653,8 @@ int32 field::solve_chain(uint16 step, uint32 chainend_arg1, uint32 chainend_arg2 ...@@ -4653,14 +4653,8 @@ int32 field::solve_chain(uint16 step, uint32 chainend_arg1, uint32 chainend_arg2
effect* peffect = cait->triggering_effect; effect* peffect = cait->triggering_effect;
if(cait->flag & CHAIN_DISABLE_ACTIVATE && is_chain_negatable(cait->chain_count)) { if(cait->flag & CHAIN_DISABLE_ACTIVATE && is_chain_negatable(cait->chain_count)) {
remove_oath_effect(peffect); remove_oath_effect(peffect);
if((peffect->flag & EFFECT_FLAG_COUNT_LIMIT)) { if((peffect->flag & EFFECT_FLAG_COUNT_LIMIT) && (peffect->count_code & EFFECT_COUNT_CODE_OATH)) {
if(peffect->count_code == 0) { dec_effect_code(peffect->count_code, cait->triggering_player);
if((peffect->flag & EFFECT_FLAG_REPEAT))
peffect->reset_count += 0x100;
} else {
if(peffect->count_code & EFFECT_COUNT_CODE_OATH)
dec_effect_code(peffect->count_code, cait->triggering_player);
}
} }
check_chain_counter(peffect, cait->triggering_player, cait->chain_count, true); check_chain_counter(peffect, cait->triggering_player, cait->chain_count, true);
raise_event((card*)0, EVENT_CHAIN_NEGATED, peffect, 0, cait->triggering_player, cait->triggering_player, cait->chain_count); raise_event((card*)0, EVENT_CHAIN_NEGATED, peffect, 0, cait->triggering_player, cait->triggering_player, cait->chain_count);
......
...@@ -4,10 +4,9 @@ function c11760174.initial_effect(c) ...@@ -4,10 +4,9 @@ function c11760174.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(11760174,0)) e1:SetDescription(aux.Stringid(11760174,0))
e1:SetType(EFFECT_TYPE_IGNITION) e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetProperty(EFFECT_FLAG_REPEAT)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetCost(c11760174.cost) e1:SetCost(c11760174.cost)
e1:SetTarget(c11760174.target)
e1:SetOperation(c11760174.operation) e1:SetOperation(c11760174.operation)
c:RegisterEffect(e1) c:RegisterEffect(e1)
end end
...@@ -15,6 +14,9 @@ function c11760174.cost(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -15,6 +14,9 @@ function c11760174.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,800) end if chk==0 then return Duel.CheckLPCost(tp,800) end
Duel.PayLPCost(tp,800) Duel.PayLPCost(tp,800)
end end
function c11760174.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,11760174)==0 end
end
function c11760174.operation(e,tp,eg,ep,ev,re,r,rp) function c11760174.operation(e,tp,eg,ep,ev,re,r,rp)
local e1=Effect.CreateEffect(e:GetHandler()) local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD) e1:SetType(EFFECT_TYPE_FIELD)
...@@ -24,6 +26,7 @@ function c11760174.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -24,6 +26,7 @@ function c11760174.operation(e,tp,eg,ep,ev,re,r,rp)
e1:SetValue(c11760174.aclimit) e1:SetValue(c11760174.aclimit)
e1:SetReset(RESET_PHASE+PHASE_END) e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp) Duel.RegisterEffect(e1,tp)
Duel.RegisterFlagEffect(tp,11760174,RESET_PHASE+RESET_END,0,1)
end end
function c11760174.aclimit(e,re,tp) function c11760174.aclimit(e,re,tp)
return re:IsActiveType(TYPE_SPELL+TYPE_TRAP) return re:IsActiveType(TYPE_SPELL+TYPE_TRAP)
......
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