Commit d1d02e71 authored by VanillaSalt's avatar VanillaSalt

fix

parent 78bb737b
...@@ -1334,11 +1334,17 @@ int32 field::summon(uint16 step, uint8 sumplayer, card * target, effect * proc, ...@@ -1334,11 +1334,17 @@ int32 field::summon(uint16 step, uint8 sumplayer, card * target, effect * proc,
pduel->write_buffer8(0); pduel->write_buffer8(0);
pduel->write_buffer32(pextra->handler->data.code); pduel->write_buffer32(pextra->handler->data.code);
} }
target->enable_field_effect(FALSE); uint8 targetplayer = sumplayer;
uint8 positions = POS_FACEUP_ATTACK;
if(is_player_affected_by_effect(sumplayer, EFFECT_DEVINE_LIGHT)) if(is_player_affected_by_effect(sumplayer, EFFECT_DEVINE_LIGHT))
move_to_field(target, sumplayer, sumplayer, LOCATION_MZONE, POS_FACEUP); positions = POS_FACEUP;
else if(proc && (proc->flag & EFFECT_FLAG_SPSUM_PARAM)) {
move_to_field(target, sumplayer, sumplayer, LOCATION_MZONE, POS_FACEUP_ATTACK); positions = proc->s_range;
if(proc->o_range)
targetplayer = 1 - sumplayer;
}
target->enable_field_effect(FALSE);
move_to_field(target, sumplayer, targetplayer, LOCATION_MZONE, positions);
core.summoning_card = target; core.summoning_card = target;
core.units.begin()->step = 8; core.units.begin()->step = 8;
return FALSE; return FALSE;
...@@ -1389,8 +1395,9 @@ int32 field::summon(uint16 step, uint8 sumplayer, card * target, effect * proc, ...@@ -1389,8 +1395,9 @@ int32 field::summon(uint16 step, uint8 sumplayer, card * target, effect * proc,
return FALSE; return FALSE;
} }
case 9: { case 9: {
if(target->owner != sumplayer) uint8 targetplayer = target->current.controler;
set_control(target, sumplayer, 0, 0); if(target->owner != targetplayer)
set_control(target, targetplayer, 0, 0);
core.phase_action = TRUE; core.phase_action = TRUE;
target->current.reason = REASON_SUMMON; target->current.reason = REASON_SUMMON;
target->summon_player = sumplayer; target->summon_player = sumplayer;
...@@ -1757,13 +1764,21 @@ int32 field::mset(uint16 step, uint8 setplayer, card * target, effect * proc, ui ...@@ -1757,13 +1764,21 @@ int32 field::mset(uint16 step, uint8 setplayer, card * target, effect * proc, ui
pduel->write_buffer8(0); pduel->write_buffer8(0);
pduel->write_buffer32(pextra->handler->data.code); pduel->write_buffer32(pextra->handler->data.code);
} }
uint8 targetplayer = setplayer;
uint8 positions = POS_FACEDOWN_DEFENCE;
if(proc && (proc->flag & EFFECT_FLAG_SPSUM_PARAM)) {
positions = proc->s_range;
if(proc->o_range)
targetplayer = 1 - setplayer;
}
target->enable_field_effect(FALSE); target->enable_field_effect(FALSE);
move_to_field(target, setplayer, setplayer, LOCATION_MZONE, POS_FACEDOWN_DEFENCE); move_to_field(target, setplayer, targetplayer, LOCATION_MZONE, positions);
return FALSE; return FALSE;
} }
case 7: { case 7: {
if(target->owner != setplayer) uint8 targetplayer = target->current.controler;
set_control(target, setplayer, 0, 0); if(target->owner != targetplayer)
set_control(target, targetplayer, 0, 0);
core.phase_action = TRUE; core.phase_action = TRUE;
core.normalsummon_state_count[setplayer]++; core.normalsummon_state_count[setplayer]++;
check_card_counter(target, 2, setplayer); check_card_counter(target, 2, 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