Commit f10091b7 authored by mercury233's avatar mercury233
parents e8041df1 fadc016f
...@@ -3630,6 +3630,8 @@ int32 card::is_capable_be_battle_target(card* pcard) { ...@@ -3630,6 +3630,8 @@ int32 card::is_capable_be_battle_target(card* pcard) {
int32 card::is_capable_be_effect_target(effect* reason_effect, uint8 playerid) { int32 card::is_capable_be_effect_target(effect* reason_effect, uint8 playerid) {
if(is_status(STATUS_SUMMONING) || is_status(STATUS_BATTLE_DESTROYED)) if(is_status(STATUS_SUMMONING) || is_status(STATUS_BATTLE_DESTROYED))
return FALSE; return FALSE;
if(current.location & (LOCATION_DECK | LOCATION_EXTRA | LOCATION_HAND))
return FALSE;
effect_set eset; effect_set eset;
filter_effect(EFFECT_CANNOT_BE_EFFECT_TARGET, &eset); filter_effect(EFFECT_CANNOT_BE_EFFECT_TARGET, &eset);
for(int32 i = 0; i < eset.size(); ++i) { for(int32 i = 0; i < eset.size(); ++i) {
......
...@@ -1798,10 +1798,13 @@ int32 field::get_summon_count_limit(uint8 playerid) { ...@@ -1798,10 +1798,13 @@ int32 field::get_summon_count_limit(uint8 playerid) {
} }
int32 field::get_draw_count(uint8 playerid) { int32 field::get_draw_count(uint8 playerid) {
effect_set eset; effect_set eset;
filter_player_effect(infos.turn_player, EFFECT_DRAW_COUNT, &eset); filter_player_effect(playerid, EFFECT_DRAW_COUNT, &eset);
int32 count = player[playerid].draw_count; int32 count = player[playerid].draw_count;
if(eset.size()) for(int32 i = 0; i < eset.size(); ++i) {
count = eset.get_last()->get_value(); int32 c = eset[i]->get_value();
if(c > count)
count = c;
}
return count; return count;
} }
void field::get_ritual_material(uint8 playerid, effect* peffect, card_set* material) { void field::get_ritual_material(uint8 playerid, effect* peffect, card_set* material) {
......
...@@ -1863,7 +1863,7 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui ...@@ -1863,7 +1863,7 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui
if(is_player_affected_by_effect(sumplayer, EFFECT_DEVINE_LIGHT)) if(is_player_affected_by_effect(sumplayer, EFFECT_DEVINE_LIGHT))
positions = POS_FACEUP; positions = POS_FACEUP;
if(proc && proc->is_flag(EFFECT_FLAG_SPSUM_PARAM)) { if(proc && proc->is_flag(EFFECT_FLAG_SPSUM_PARAM)) {
positions = (uint8)proc->s_range; positions = (uint8)proc->s_range & POS_FACEUP;
if(proc->o_range) if(proc->o_range)
targetplayer = 1 - sumplayer; targetplayer = 1 - sumplayer;
} }
...@@ -2342,7 +2342,7 @@ int32 field::mset(uint16 step, uint8 setplayer, card* target, effect* proc, uint ...@@ -2342,7 +2342,7 @@ int32 field::mset(uint16 step, uint8 setplayer, card* target, effect* proc, uint
uint8 targetplayer = setplayer; uint8 targetplayer = setplayer;
uint8 positions = POS_FACEDOWN_DEFENSE; uint8 positions = POS_FACEDOWN_DEFENSE;
if(proc && proc->is_flag(EFFECT_FLAG_SPSUM_PARAM)) { if(proc && proc->is_flag(EFFECT_FLAG_SPSUM_PARAM)) {
positions = (uint8)proc->s_range; positions = (uint8)proc->s_range & POS_FACEDOWN;
if(proc->o_range) if(proc->o_range)
targetplayer = 1 - setplayer; targetplayer = 1 - setplayer;
} }
......
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