Commit 859dcc52 authored by mercury233's avatar mercury233
parents 6826fb5d 73b237d0
......@@ -3201,11 +3201,11 @@ int32 field::is_chain_disabled(uint8 chaincount) {
if(pchain->flag & CHAIN_DISABLE_EFFECT)
return TRUE;
card* pcard = pchain->triggering_effect->get_handler();
effect_set eset;
pcard->filter_effect(EFFECT_DISABLE_CHAIN, &eset);
for(int32 i = 0; i < eset.size(); ++i) {
if(eset[i]->get_value() == pchain->chain_id) {
eset[i]->reset_flag |= RESET_CHAIN;
auto rg = pcard->single_effect.equal_range(EFFECT_DISABLE_CHAIN);
for(; rg.first != rg.second; ++rg.first) {
effect* peffect = rg.first->second;
if(peffect->get_value() == pchain->chain_id) {
peffect->reset_flag |= RESET_CHAIN;
return TRUE;
}
}
......
......@@ -448,7 +448,11 @@ int32 scriptlib::duel_sets(lua_State *L) {
} else
luaL_error(L, "Parameter %d should be \"Card\" or \"Group\".", 2);
pduel->game_field->add_process(PROCESSOR_SSET_G, 0, pduel->game_field->core.reason_effect, pgroup, playerid, toplayer, confirm);
return lua_yield(L, 0);
return lua_yieldk(L, 0, (lua_KContext)pduel, [](lua_State *L, int32 status, lua_KContext ctx) {
duel* pduel = (duel*)ctx;
lua_pushinteger(L, pduel->game_field->returns.ivalue[0]);
return 1;
});
}
int32 scriptlib::duel_create_token(lua_State *L) {
check_action_permission(L);
......
......@@ -2386,6 +2386,17 @@ int32 field::sset_g(uint16 step, uint8 setplayer, uint8 toplayer, group* ptarget
returns.ivalue[0] = 0;
return TRUE;
}
effect_set eset;
for(auto& pcard : *set_cards) {
eset.clear();
pcard->filter_effect(EFFECT_SSET_COST, &eset);
for(int32 i = 0; i < eset.size(); ++i) {
if(eset[i]->operation) {
core.sub_solving_event.push_back(nil_event);
add_process(PROCESSOR_EXECUTE_OPERATION, 0, eset[i], 0, setplayer, 0);
}
}
}
core.set_group_pre_set.clear();
core.set_group_set.clear();
core.set_group_used_zones = 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