Scene Flow - mzki/erago GitHub Wiki

Erago では、Scene の遷移によってゲームのフローを表現します。 Erago にはデフォルトで、いくつかの組み込み Scene が登録されています。

このページでは、組み込みの Scene 内部の処理の流れを解説します。

Note: 処理の流れのフロー図は、mermaid を使って作成しています。


revision v0.3.0

Generated by gen_callback_doc.go, by parsing pakcage erago/scene.

These callback functions must be prefixed "era." in the script file. So callback function "event_title()" is defined "era.event_title()" in script file.

The naming convention for the callback function name is like [scene-name][callback-type][funcion-name]. e.g. title_event_start means, on the titile scene, start event is fired.

以下のcallback関数は、era.XXXという形式で、スクリプトファイル内に定義します。 例えば、"title_event()"という関数があったとき、スクリプト上では、"era.title_event()"と いうように、定義します。 callback関数は、命名規則 [scene-name][callback-type][funcion-name] に従います。 例) title_event_start は、title シーンで、開始イベントが発生したことを示します。

ablup

ablup_flow

能力上昇のシーンです。 Trainシーンの実行結果を、成長の結果として反映することを想定しています。

ablup_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

ablup_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。

ablup_user_show_juel()

ablup_user_show_menu()

ok = ablup_user_menu_selected(input_num)

autosave

autosave_flow

自動保存シーンです。 現在のゲームの状態を自動保存します。

autosave_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

autosave_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。

autosave_replace()

loadendシーン以外のシーンからbaseシーンへ遷移したとき、 現在のゲームの状態を自動で保存します。 この関数によって、その保存処理を置き換えることができます。 もし、自動保存処理を行いたくない場合、この関数を定義し、 その中で何も処理を行わないことで実現できます。

base

base_flow

プレイヤーの拠点での活動シーンです。 ここで、各種設定を行ったり、プレイヤーの行動を決定したりすることを想定しています

base_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

base_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。

base_user_show_menu()

baseシーンにおける、行動の選択肢を表示します。

handled = base_user_menu_selected(input_num)

行動の選択肢を表示した後、ユーザーからの入力番号を得て、 その入力番号input_numと共に、この関数が呼ばれます。 もし、入力番号input_numに対して何らかの処理を行った場合、 この関数の戻り値としてtrueを返してください。 その場合、次のシーンの遷移先が決まっていれば、遷移します。 決まっていなければ、再び、選択肢の表示から繰り返します。 戻り値としてfalseを返した場合、ユーザーの入力待ちから繰り返します。

loadend

loadend_flow

loadend_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

loadend_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。

newgame

newgame_flow

新規開始時の準備シーンです。 ここで、ゲーム開始時に必要なデータの準備を行うことを想定しています。

newgame_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

newgame_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。

newgame_event_init()

newgameシーンで、保存される全てのデータを初期化した後に呼ばれます。 ここで、新しくゲームを始める為に必要なデータを設定することを想定しています。

savegame

savegame_flow

savegame シーンは特殊なシーンです。 他の組み込みシーンとは違い、直接遷移することはできません

savegame_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

savegame_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。

savegame_event_before_save()

データが保存される直前に呼び出されます。 ここで、セーブデータのコメントを書き換えることができます。 デフォルトでは、 "2006/01/02 15:04:05" の形式で、現在時刻がコメントとして使用されます

shop

shop_flow

お店での売買を行うシーンです。 ここでItemの購入処理を行うことを想定しています。

shop_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

shop_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。

shop_replace_show_menu()

Itemの一覧を表示する処理を置き換える。 もし定義されていなければ、CSVで定義されたItemを クリックできるボタンの形式で全て表示する。

handled = shop_user_menu_selected(input_num)

入力番号input_numと共に呼ばれ、それに対する処理を行う。 もし、何らかの処理を行った場合、この関数の戻り値としてtrueを 返してください。その場合、次のシーンの遷移先が決まっていれば、 遷移します。決まっていなければ、再び、選択肢の表示から繰り返します。 戻り値としてfalseを返した場合、ユーザーの入力待ちから繰り返します。

title

title_flow

タイトル画面のシーンです。タイトルの表示およびゲームの開始準備を行います。

title_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

title_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。

title_replace_loadgame()

It replaces builtin flow for loading existance savefile at title scene. It is called when user select "loading game" at title scene. If you want something to do after loading savefile, it should be done at loadend scene, not to use this callbask.

titleシーンの"LoadGame..."を選択した後の、 セーブファイルを読み込む処理を、この関数によって置き換えます。 セーブファイルを読み込んだ後に何らかの処理をしたい場合には、 この関数を用いるべきではありません。代わりにloadendシーンで そのような処理を行うべきです。

train

train_flow

調教のシーンです。 ここでは、調教コマンドの実行およびコマンドの結果の反映を行うことを想定しています。

train_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

train_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。

train_user_show_status()

調教対象のステータスの表示をこの関数で行います。

ok = train_replace_cmd_able(input_num)

選択番号input_numに対応するコマンドが、現在実行可能であるかを true/falseで返します。ここで実行可能であったコマンド群が、 画面に表示され、train_user_cmd()が実行されます。

train_replace_show_other_cmd()

ユーザー定義のコマンド群の表示をこの関数で行います。

handled = train_user_cmd(input_num)

選択番号input_numに対応するコマンドを実行します。 コマンドを処理した場合、trueを返してください。 trueを返した場合、train_user_check_source()を実行し、 定義されていれば train_event_cmd_end()が実行されます。

handled = train_user_other_cmd(input_num)

通常のコマンドが実行不能のとき代わりに呼ばれます。 選択番号input_numに対応するユーザー定義のコマンドを実行します。 コマンドを処理した場合、trueを返してください。 trueを返した場合、train_user_check_source()を実行し、 定義されていれば train_event_cmd_end()が実行されます。

train_user_check_source(input_num)

train_user_cmd()または、train_user_other_cmd()でtrueを返したとき、 実行したコマンド番号input_numとともに、この関数が呼ばれます。 ここでは、コマンドの実行によって入手したSource変数の値を、 調教対象のパラメータに変換します。

train_event_cmd_end(input_num)

選択番号input_numに対応するコマンドが実行された後に、呼びだされます。 ここで、調教に対する口上の表示を行います。

trainend

trainend_flow

調教終了時の後処理シーンです。 終了時のデータの後片付けなどを行うことを想定しています。

trainend_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

trainend_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。

turnend

turnend_flow

1ターンの終了シーンです。 ここでは、ゲームとしての1ターンが終了したときの処理を実施することを想定しています。

turnend_scene()

この関数は、もし定義されていれば、シーンの最も始めに呼ばれ、 シーン全体の処理を置き換えます。 この関数内では、必ず次のシーンを指定しなければならないことに注意してください。

turnend_event_start()

この関数は、もし定義されていれば、シーンの始めに呼ばれます。