convert operation evt to battle_move evt
add trigger_now method to force flush the event queue
implement the demo-observer network usecase