Commit abe1227c authored by sidschingis's avatar sidschingis

new effect

parent 845cc9e3
...@@ -1396,6 +1396,15 @@ int32 field::summon(uint16 step, uint8 sumplayer, card * target, effect * proc, ...@@ -1396,6 +1396,15 @@ int32 field::summon(uint16 step, uint8 sumplayer, card * target, effect * proc,
core.normalsummon_state[sumplayer] = TRUE; core.normalsummon_state[sumplayer] = TRUE;
core.summoned_cards_pt[sumplayer].insert(target); core.summoned_cards_pt[sumplayer].insert(target);
core.normalsummoned_cards_pt[sumplayer].insert(target); core.normalsummoned_cards_pt[sumplayer].insert(target);
if (target->material_cards.size()) {
for (auto mit = target->material_cards.begin(); mit != target->material_cards.end(); ++mit)
raise_single_event(*mit, 0, EVENT_BE_PRE_MATERIAL, proc, REASON_SUMMON, sumplayer, sumplayer, 0);
raise_event(&target->material_cards, EVENT_BE_PRE_MATERIAL, proc, REASON_SUMMON, sumplayer, sumplayer, 0);
}
process_single_event();
process_instant_event();
if(core.current_chain.size() == 0) { if(core.current_chain.size() == 0) {
if(target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SUMMON)) if(target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SUMMON))
core.units.begin()->step = 14; core.units.begin()->step = 14;
...@@ -2016,24 +2025,42 @@ int32 field::special_summon_rule(uint16 step, uint8 sumplayer, card * target) { ...@@ -2016,24 +2025,42 @@ int32 field::special_summon_rule(uint16 step, uint8 sumplayer, card * target) {
pduel->write_buffer8(target->current.position); pduel->write_buffer8(target->current.position);
core.spsummon_state[sumplayer] = TRUE; core.spsummon_state[sumplayer] = TRUE;
core.spsummoned_cards_pt[sumplayer].insert(target); core.spsummoned_cards_pt[sumplayer].insert(target);
if(core.current_chain.size() == 0) {
if(target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SPSUMMON)) return FALSE;
}
case 5:{
effect* proc = core.units.begin()->peffect;
int32 matreason = proc->value == SUMMON_TYPE_SYNCHRO ? REASON_SYNCHRO : proc->value == SUMMON_TYPE_XYZ ? REASON_XYZ : REASON_SPSUMMON;
if (target->material_cards.size()) {
for (auto mit = target->material_cards.begin(); mit != target->material_cards.end(); ++mit)
raise_single_event(*mit, 0, EVENT_BE_PRE_MATERIAL, proc, matreason, sumplayer, sumplayer, 0);
}
raise_event(&target->material_cards, EVENT_BE_PRE_MATERIAL, proc, matreason, sumplayer, sumplayer, 0);
process_single_event();
process_instant_event();
return FALSE;
}
case 6: {
if (core.current_chain.size() == 0) {
if (target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SPSUMMON))
core.units.begin()->step = 14; core.units.begin()->step = 14;
else else
core.units.begin()->step = 9; core.units.begin()->step = 9;
return FALSE; return FALSE;
} else if(core.current_chain.size() > 1) { }
else if (core.current_chain.size() > 1) {
core.units.begin()->step = 14; core.units.begin()->step = 14;
return FALSE; return FALSE;
} else { }
if(target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SPSUMMON)) else {
if (target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SPSUMMON))
core.units.begin()->step = 15; core.units.begin()->step = 15;
else else
core.units.begin()->step = 10; core.units.begin()->step = 10;
core.reserved = core.units.front(); core.reserved = core.units.front();
return TRUE; return TRUE;
} }
return FALSE;
} }
case 10: { case 10: {
core.summoning_card = 0; core.summoning_card = 0;
......
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