Commit 45f58305 authored by VanillaSalt's avatar VanillaSalt

fix self_destroy

parent 00154077
......@@ -1459,6 +1459,8 @@ void field::adjust_self_destroy_set() {
if((!pcard->is_status(STATUS_DISABLED) && (peffect = check_unique_onfield(pcard, pcard->current.controler, pcard->current.location)))
|| (peffect = pcard->is_affected_by_effect(EFFECT_SELF_DESTROY))) {
core.self_destroy_set.insert(pcard);
pcard->temp.reason_effect = pcard->current.reason_effect;
pcard->temp.reason_player = pcard->current.reason_player;
pcard->current.reason_effect = peffect;
pcard->current.reason_player = peffect->get_handler_player();
}
......@@ -1468,6 +1470,8 @@ void field::adjust_self_destroy_set() {
card* pcard = *cit;
if(peffect = pcard->is_affected_by_effect(EFFECT_SELF_TOGRAVE)) {
core.self_tograve_set.insert(pcard);
pcard->temp.reason_effect = pcard->current.reason_effect;
pcard->temp.reason_player = pcard->current.reason_player;
pcard->current.reason_effect = peffect;
pcard->current.reason_player = peffect->get_handler_player();
}
......
......@@ -185,13 +185,14 @@ void field::destroy(card_set* targets, effect* reason_effect, uint32 reason, uin
continue;
}
pcard->temp.reason = pcard->current.reason;
pcard->current.reason = reason;
if(reason_player != 5) {
pcard->temp.reason_effect = pcard->current.reason_effect;
pcard->temp.reason_player = pcard->current.reason_player;
pcard->current.reason = reason;
if(reason_effect)
pcard->current.reason_effect = reason_effect;
if(reason_player != 5)
pcard->current.reason_player = reason_player;
}
p = playerid;
if(!(destination & (LOCATION_HAND + LOCATION_DECK + LOCATION_REMOVED)))
destination = LOCATION_GRAVE;
......
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