Signal Tutorial

== For C coders ==
Let's say you wish to add a turn-started signal with two arguments: turn number and year number.
You need to do this to add a new signal type; in server/scripting/script_signal.c append to signals_create:
 script_signal_create('turn-started', 2, API_TYPE_INT, API_TYPE_INT);
Now you need to emit the signal in the proper place in the server/ code:
 script_signal_emit('turn-started', 2, API_TYPE_INT, turn, API_TYPE_INT, year);
That's it!
Hint: See server/scripting/script_signal.h for a complete list of possible argument types.
== For Lua scripters ==
Let's say you want to trigger a message action when a turn starts...
Open data/default/script.lua.
Add this to the main body of the script:
 signal.connect('turn-started', 'my_callback')
Then add the my_callback function:
 function my_callback(turn, year)
 notify.all('New Turn!')
 end
Now, let's say you wanted a more complex notify with internationalization markup and everything:
 function my_callback(turn, year)
 notify.event(nil, nil, E.DIPLOMACY, _('New Turn %d, year %d!'), turn, year)
 end
Hint: You may want to see the Events Reference Manual for more info.