Commit 99e40cab authored by VanillaSalt's avatar VanillaSalt

fix

parent dda128da
......@@ -1896,9 +1896,10 @@ int32 field::check_xyz_material(card* scard, int32 findex, int32 lv, int32 min,
core.xmaterial_lst.insert(std::make_pair((xyz_level >> 12) & 0xf, *cit));
}
if(core.global_flag & GLOBALFLAG_XMAT_COUNT_LIMIT) {
auto iter = core.xmaterial_lst.begin();
while((iter != core.xmaterial_lst.end()) && ((iter->first > (int32)core.xmaterial_lst.size()) || (iter->first > max)))
core.xmaterial_lst.erase(iter++);
if(max > (int32)core.xmaterial_lst.size())
max = (int32)core.xmaterial_lst.size();
auto iter = core.xmaterial_lst.lower_bound(max);
core.xmaterial_lst.erase(core.xmaterial_lst.begin(), iter);
}
} else
get_xyz_material(scard, findex, lv, max);
......
......@@ -1095,7 +1095,7 @@ int32 field::equip(uint16 step, uint8 equip_player, card * equip_card, card * ta
else
peffect->value = TYPE_EQUIP + TYPE_SPELL;
peffect->flag = EFFECT_FLAG_CANNOT_DISABLE;
peffect->reset_flag = RESET_EVENT + 0x1fe0000;
peffect->reset_flag = RESET_EVENT + 0x17e0000;
equip_card->add_effect(peffect);
}
equip_card->effect_target_cards.insert(target);
......@@ -1204,9 +1204,10 @@ int32 field::summon(uint16 step, uint8 sumplayer, card * target, effect * proc,
int32 required = target->get_summon_tribute_count();
int32 min = required & 0xffff;
int32 max = required >> 16;
if(min < min_tribute)
if(min < min_tribute) {
min = min_tribute;
required = min + (max << 16);
required = min + (max << 16);
}
uint32 adv = is_player_can_summon(SUMMON_TYPE_ADVANCE, sumplayer, target);
if(max == 0 || !adv) {
returns.bvalue[0] = 0;
......@@ -1714,9 +1715,10 @@ int32 field::mset(uint16 step, uint8 setplayer, card * target, effect * proc, ui
int32 required = target->get_set_tribute_count();
int32 min = required & 0xffff;
int32 max = required >> 16;
if(min < min_tribute)
if(min < min_tribute) {
min = min_tribute;
required = min + (max << 16);
required = min + (max << 16);
}
uint32 adv = is_player_can_mset(SUMMON_TYPE_ADVANCE, setplayer, target);
if(max == 0 || !adv) {
returns.bvalue[0] = 0;
......
......@@ -254,17 +254,7 @@ int32 field::select_card(uint16 step, uint8 playerid, uint8 cancelable, uint8 mi
for(uint32 i = 0; i < core.select_cards.size(); ++i) {
pcard = core.select_cards[i];
pduel->write_buffer32(pcard->data.code);
if(pcard->overlay_target) {
pduel->write_buffer8(pcard->overlay_target->current.controler);
pduel->write_buffer8(pcard->overlay_target->current.location | LOCATION_OVERLAY);
pduel->write_buffer8(pcard->overlay_target->current.sequence);
pduel->write_buffer8(pcard->current.sequence);
} else {
pduel->write_buffer8(pcard->current.controler);
pduel->write_buffer8(pcard->current.location);
pduel->write_buffer8(pcard->current.sequence);
pduel->write_buffer8(pcard->current.position);
}
pduel->write_buffer32(pcard->get_info_location());
}
return FALSE;
} else {
......
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