diff --git a/data/test/scenarios/event_handlers_in_events.cfg b/data/test/scenarios/event_handlers_in_events.cfg new file mode 100644 index 000000000000..ea781140529e --- /dev/null +++ b/data/test/scenarios/event_handlers_in_events.cfg @@ -0,0 +1,216 @@ +{GENERIC_UNIT_TEST "event_handlers_in_events_1" ( + [event] + name=test + {VARIABLE pass_test 1} + [/event] + [event] + name=start + {VARIABLE pass_test 0} + [fire_event] + name=test + [/fire_event] + {RETURN ({VARIABLE_CONDITIONAL pass_test equals 1})} + [/event] +)} + +{GENERIC_UNIT_TEST "event_handlers_in_events_2" ( + [event] + name=start + {VARIABLE pass_test 0} + [event] + name=test + {VARIABLE pass_test 1} + [/event] + + [fire_event] + name=test + [/fire_event] + {RETURN ({VARIABLE_CONDITIONAL pass_test equals 1})} + [/event] +)} + +{GENERIC_UNIT_TEST "event_handlers_in_events_3" ( + [event] + name=start + [event] + name=test + {VARIABLE pass_test 1} + [/event] + [/event] + [event] + name=start + {VARIABLE pass_test 0} + + [fire_event] + name=test + [/fire_event] + {RETURN ({VARIABLE_CONDITIONAL pass_test equals 1})} + [/event] +)} + +{GENERIC_UNIT_TEST "event_handlers_in_events_4" ( + [event] + name=start + {VARIABLE pass_test 0} + + [fire_event] + name=test + [/fire_event] + {RETURN ({VARIABLE_CONDITIONAL pass_test equals 1})} + [/event] + [event] + name=start + [event] + name=test + {VARIABLE pass_test 1} + [/event] + [/event] +)} + +{GENERIC_UNIT_TEST "event_handlers_in_events_5" ( + [event] + name=start + {VARIABLE pass_test 0} + {UNIT 1 "Orcish Grunt" 1 1 ()} + [store_unit] + [filter] + x=1 + y=1 + [/filter] + variable=my_unit + kill=yes + [/store_unit] + [event] + name=post_advance + {VARIABLE pass_test 1} + [/event] + + {VARIABLE_OP my_unit.experience add 50} + [unstore_unit] + variable=my_unit + fire_event=yes + [/unstore_unit] + [/event] + [event] + name=start + {RETURN ({VARIABLE_CONDITIONAL pass_test equals 1})} + [/event] +)} + +{GENERIC_UNIT_TEST "event_handlers_in_events_6" ( + [event] + name=start + {VARIABLE pass_test 0} + {UNIT 1 "Orcish Grunt" 1 1 ()} + [store_unit] + [filter] + x=1 + y=1 + [/filter] + variable=my_unit + kill=yes + [/store_unit] + [set_variables] + name=ev0 + [value] + name=post_advance + {VARIABLE pass_test 1} + [/value] + [/set_variables] + [insert_tag] + name=event + variable=ev0 + [/insert_tag] + [fire_event] + name=test + [/fire_event] + + {VARIABLE_OP my_unit.experience add 50} + [unstore_unit] + variable=my_unit + fire_event=yes + [/unstore_unit] + [/event] + [event] + name=start + {RETURN ({VARIABLE_CONDITIONAL pass_test equals 1})} + [/event] +)} + +{GENERIC_UNIT_TEST "event_handlers_in_events_7" ( + [event] + name=start + {VARIABLE pass_test 0} + {UNIT 1 "Orcish Grunt" 1 1 ()} + [store_unit] + [filter] + x=1 + y=1 + [/filter] + variable=my_unit + kill=yes + [/store_unit] + [set_variables] + name=ev0 + [value] + name=post_advance + {VARIABLE pass_test 1} + [/value] + [/set_variables] + [event] + name=test + [insert_tag] + name=event + variable=ev0 + [/insert_tag] + [/event] + [fire_event] + name=test + [/fire_event] + + {VARIABLE_OP my_unit.experience add 50} + [unstore_unit] + variable=my_unit + fire_event=yes + [/unstore_unit] + [/event] + [event] + name=start + {RETURN ({VARIABLE_CONDITIONAL pass_test equals 1})} + [/event] +)} + +{GENERIC_UNIT_TEST "event_handlers_in_events_8" ( + [event] + name=start + {VARIABLE pass_test 0} + {UNIT 1 "Orcish Grunt" 1 1 ([variables] + [my_event] + name=post_advance + {VARIABLE pass_test 1} + [/my_event] + [/variables])} + [store_unit] + [filter] + x=1 + y=1 + [/filter] + variable=my_unit + kill=yes + [/store_unit] + [insert_tag] + name=event + variable=my_unit.variables.my_event + [/insert_tag] + + {VARIABLE_OP my_unit.experience add 50} + [unstore_unit] + variable=my_unit + fire_event=yes + [/unstore_unit] + [/event] + [event] + name=start + {RETURN ({VARIABLE_CONDITIONAL pass_test equals 1})} + [/event] +)} diff --git a/wml_test_schedule b/wml_test_schedule index e53d49db713d..0a8731c37d7c 100644 --- a/wml_test_schedule +++ b/wml_test_schedule @@ -71,6 +71,14 @@ 0 modify_turns_four 0 replace_schedule_prestart 0 modify_unit_facing +0 event_handlers_in_events_1 +0 event_handlers_in_events_3 +0 event_handlers_in_events_2 +1 event_handlers_in_events_4 +0 event_handlers_in_events_5 +0 event_handlers_in_events_6 +0 event_handlers_in_events_7 +0 event_handlers_in_events_8 # # Pathfinding #