slave-princess-charlotte/data/Script/executive/executive-scriptcall.js
2025-10-12 13:17:46 -05:00

198 lines
5.9 KiB
JavaScript

// ゲームの初期化段階で一度だけ呼ばれる。
// この関数のみ、rootを参照できない。
function ScriptCall_Initialize(startupInfo)
{
}
// ゲームウインドウが表示される直前で一度だけ呼ばれる
function ScriptCall_Setup()
{
SetupControl.setup();
}
function ScriptCall_Backup()
{
SetupControl.backup();
}
// 新しいシーン、またはイベントコマンドを開始する際に呼ばれる
function ScriptCall_Enter(scene, commandType)
{
var result;
if (scene === SceneType.EVENT) {
result = EventCommandManager.enterEventCommandManagerCycle(commandType);
}
else {
result = SceneManager.enterSceneManagerCycle(scene);
}
return result;
}
// MoveScriptを始めとするmoveという文字列から始まるメソッドでは、データの更新処理を行う。
// たとえば、ユニットの位置を変更する場合は、x座標とy座標を表すメンバの値を変更する必要があるが、
// そうした変数の更新処理を行う。
// また、ユーザー入力する検出する処理も行う。
// 描画処理は一切行わないようにし、描画はdraw系メソッドに任せるようにする。
// move系メソッドでは、必ず戻り値を返さなければならない。
// 通常はデータの更新処理が完了した場合にMoveResult.ENDを返し、
// 更新がまだ完了していない場合にMoveResult.CONTINUEを返す。
// ただし、独自の戻り値を返しても問題はない。
function ScriptCall_Move(scene, commandType)
{
var result;
if (scene === SceneType.EVENT) {
if (commandType === root.getEventCommandType()) {
result = EventCommandManager.moveEventCommandManagerCycle(commandType);
}
else {
result = EventCommandManager.backEventCommandManagerCycle(commandType);
}
}
else {
if (scene === root.getCurrentScene() || SceneManager.isForceForeground()) {
result = SceneManager.moveSceneManagerCycle(scene);
}
else {
result = SceneManager.backSceneManagerCycle(scene);
}
}
MouseControl.moveAutoMouse();
return result;
}
// DrawScriptを始めとするdrawという文字列から始まるメソッドでは、データの描画処理を行う。
// move系メソッドで更新した変数にしたがって描画を行うのがdraw系メソッドであるため、
// draw系メソッドで何らかの変数の値を変更してはならない。
// draw系メソッドが描画のみを行う性質から、draw系メソッドで何も処理も行わなくても、
// 画面に何も描画が行われないだけで、ゲーム自体は進むことになる。
// この性質から、ゲームの進行に問題がある場合はmove系メソッドを確認し、
// 描画に問題がある場合はdraw系メソッドを確認すればよいことになる。
// draw系メソッドでは戻り値を返す必要はない。
function ScriptCall_Draw(scene, layerNumber, commandType)
{
if (layerNumber === 0) {
if (scene !== SceneType.REST) {
MapLayer.drawMapLayer();
}
}
else if (layerNumber === 1) {
SceneManager.drawSceneManagerCycle(scene);
root.drawAsyncEventData();
}
else {
EventCommandManager.drawEventCommandManagerCycle(commandType);
}
}
// セーブファイルのロードが完了した際に呼ばれる
function ScriptCall_Load()
{
// 制御を返すとEnterScriptが呼ばれる
}
function ScriptCall_Reset()
{
MessageViewControl.reset();
ConfigVolumeControl.setDefaultVolume();
}
function ScriptCall_CheckInput(reason)
{
var result = false;
if (reason === 0) {
result = InputControl.isSelectAction();
}
else if (reason === 1) {
result = InputControl.isCancelState();
}
else if (reason === 2) {
result = InputControl.isStartAction();
}
return result;
}
// マウスでユニットを移動させり、マウスでユニットを撃破した際に呼ばれる
function ScriptCall_DebugAction()
{
SceneManager.getActiveScene().notifyAutoEventCheck();
}
// マウス操作ができる状態かを確認する際に呼ばれる
function ScriptCall_CheckDebugAction()
{
return SceneManager.getActiveScene().isDebugMouseActionAllowed();
}
// メッセージ消去が必要になった際に呼ばれる
function ScriptCall_EraseMessage(value)
{
EventCommandManager.eraseMessage(value);
}
// イベントでユニットが登場する際に呼ばれる
function ScriptCall_AppearEventUnit(unit)
{
UnitProvider.setupFirstUnit(unit);
SkillChecker.addAllNewSkill(unit);
}
// クラスの条件表示のキーワードが満たされる場合に呼ばれる
function ScriptCall_DrawCustomCharChip(cpData)
{
CustomCharChipGroup.drawCustomCharChipGroup(cpData);
}
// イベント条件で武器を参照する際に呼ばれる
function ScriptCall_GetWeapon(unit)
{
return ItemControl.getEquippedWeapon(unit);
}
// イベント条件でアイテムの所持判定をする際に呼ばれる
function ScriptCall_CheckItem(unit, item)
{
return ItemControl.isItemUsable(unit, item);
}
// マーキング時に呼ばれる
function ScriptCall_GetUnitAttackRange(unit)
{
var rangePanel = createObject(UnitRangePanel);
return rangePanel.getUnitAttackRange(unit);
}
// イベントによるユニットの移動時に呼ばれる
function ScriptCall_GetUnitMoveCource(unit, xGoal, yGoal)
{
var goalIndex = CurrentMap.getIndex(xGoal, yGoal);
var simulator = root.getCurrentSession().createMapSimulator();
simulator.disableMapUnit();
simulator.startSimulation(unit, CurrentMap.getWidth() * CurrentMap.getHeight());
return CourceBuilder.createLongCource(unit, goalIndex, simulator);
}
function ScriptCall_TurnEnd()
{
TurnControl.turnEnd();
}
function ScriptCall_moveOutSide()
{
OutSideManager.moveOutSideManagerCycle();
}
function ScriptCall_DrawOutSide()
{
OutSideManager.drawOutSideManagerCycle();
}