Commit 051aa8b1 authored by salix5's avatar salix5

EVENT_ADD_COUNTER, EVENT_REMOVE_COUNTER

Duel.RemoveCounter(): It will raise field event EVENT_REMOVE_COUNTER.
Card.RemoveCounter(): The script should raise it manually.
Card,AddCounter(): It will raise single event EVENT_ADD_COUNTER.
parent b867170c
......@@ -1550,6 +1550,8 @@ int32 card::add_counter(uint8 playerid, uint16 countertype, uint16 count, uint8
pduel->write_buffer8(current.location);
pduel->write_buffer8(current.sequence);
pduel->write_buffer16(pcount);
pduel->game_field->raise_single_event(this, 0, EVENT_ADD_COUNTER + countertype, pduel->game_field->core.reason_effect, REASON_EFFECT, playerid, playerid, pcount);
pduel->game_field->process_single_event();
return TRUE;
}
int32 card::remove_counter(uint16 countertype, uint16 count) {
......
......@@ -1858,6 +1858,7 @@ int32 scriptlib::card_remove_counter(lua_State *L) {
uint32 count = lua_tointeger(L, 4);
uint32 reason = lua_tointeger(L, 5);
if(countertype == 0) {
// c38834303
for(auto cmit = pcard->counters.begin(); cmit != pcard->counters.end(); ++cmit) {
pcard->pduel->write_buffer8(MSG_REMOVE_COUNTER);
pcard->pduel->write_buffer16(cmit->first);
......
......@@ -460,6 +460,7 @@ int32 field::damage(uint16 step, effect* reason_effect, uint32 reason, uint8 rea
}
raise_single_event(reason_card, 0, EVENT_BATTLE_DAMAGE, 0, 0, reason_player, playerid, val);
raise_event(reason_card, EVENT_BATTLE_DAMAGE, 0, 0, reason_player, playerid, val);
process_single_event();
}
process_instant_event();
return FALSE;
......@@ -644,7 +645,7 @@ int32 field::remove_counter(uint16 step, uint32 reason, card* pcard, uint8 rplay
}
if(pcard) {
returns.ivalue[0] = pcard->remove_counter(countertype, count);
core.units.begin()->step = 2;
core.units.begin()->step = 3;
return FALSE;
}
card* pcard;
......
......@@ -1244,6 +1244,7 @@ void field::raise_event(card_set* event_cards, uint32 event_code, effect* reason
new_event.event_value = event_value;
core.queue_event.push_back(new_event);
}
// add events to core.single_event
void field::raise_single_event(card* trigger_card, card_set* event_cards, uint32 event_code, effect * reason_effect, uint32 reason, uint8 reason_player, uint8 event_player, uint32 event_value) {
tevent new_event;
new_event.trigger_card = trigger_card;
......
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