Ejemplo n.º 1
0
 /// <summary>マップ移動前のイベント実行</summary>
 public override void run(MapEventSystem.Operator aOperator, Action <Arg> aCallback)
 {
     //移動先の座標計算
     calculatePercentagePosition(aOperator);
     //マップ移動通知
     aOperator.mDelegate.onMoveMap(this);
     //現在のマップのイベントKeyに対応したイベント取得
     if (mHereEventKey != null && mHereEventKey != "")
     {
         mEndSide.mHereEvent = aOperator.parent.mWorld.mEvents[mHereEventKey];
     }
     //フェードアウト移動
     if (mMoveOutSpeed > 0)
     {
         //移動する
         aOperator.getAi("invoker").moveBy(mMoveOutVector, mMoveOutSpeed, () => { });
     }
     else if (mMoveOutVector != Vector3.zero)
     {
         //向きのみ変更
         aOperator.getAi("invoker").parent.mCharacterImage.setDirection(mMoveOutVector);
     }
     //フェードアウト
     aOperator.mDelegate.onMoveMapFadeOut(() => { fadeOutEnded(aOperator); });
 }
Ejemplo n.º 2
0
    public override void run(MapEventSystem.Operator aOperator, Action <Arg> aCallback)
    {
        Vector2 tDirection = aOperator.getCharacter(mTo).mMapPosition.vector2 - aOperator.getCharacter(mTarget).mMapPosition.vector2;

        aOperator.getAi(mTarget).turn(tDirection);
        aCallback(null);
    }
Ejemplo n.º 3
0
    /// <summary>マップ移動後のイベント実行</summary>
    public override void run(MapEventSystem.Operator aOperator, Action <Arg> aCallback)
    {
        mEventEndCallback = aCallback;
        //マップ生成完了と同時に実行するイベントの実行
        if (mEntranceData.mFirstEventKey != "")
        {
            mFirstEvent = aOperator.parent.mWorld.mEvents[mEntranceData.mFirstEventKey];//イベント取得
            if (!aOperator.jackRequared(mFirstEvent))
            {
                throw new Exception("MapEventMoveMapEndSide : FirstEventが求めるAIのジャックに失敗");
            }
            //実行
            ++mRunningEventNum;
            mFirstEvent.run(aOperator, (arg) => { endCompanionEvent(); });
        }
        //フェードイン完了後に実行するイベントの準備
        if (mDestinationEventKey != "" && mDestinationEventKey != null)
        {
            mDestinationEvent = aOperator.parent.mWorld.mEvents[mDestinationEventKey];//イベント取得
            if (!aOperator.jackRequared(mDestinationEvent))
            {
                throw new Exception("MapEventMoveMapEndSide : DestinationEventが求めるAIのジャックに失敗");
            }
        }
        if (mHereEvent != null)
        {
            if (!aOperator.jackRequared(mHereEvent))
            {
                throw new Exception("MapEventMoveMapEndSide : HereEventが求めるAIのジャックに失敗");
            }
        }
        if (mEntranceData.mEventKey != "")
        {
            mEntranceEvent = aOperator.parent.mWorld.mEvents[mEntranceData.mEventKey];//イベント取得
            if (!aOperator.jackRequared(mEntranceEvent))
            {
                throw new Exception("MapEventMoveMapEndSide : EntranceEventが求めるAIのジャックに失敗");
            }
        }

        bool tMoveEnded = false;
        bool tFadeEnded = false;

        //フェードイン移動
        if (mEntranceData.mMoveSpeed > 0)
        {
            //移動する
            aOperator.getAi("invoker").moveBy(mEntranceData.mMoveVector, mEntranceData.mMoveSpeed, () => {
                tMoveEnded = true;
                if (tFadeEnded)
                {
                    fadeInEnded(aOperator);
                }
            });
        }
        else if (mEntranceData.mMoveVector != Vector2.zero)
        {
            //向きのみ変更
            aOperator.getAi("invoker").parent.mCharacterImage.setDirection(mEntranceData.mMoveVector);
            tMoveEnded = true;
        }
        //フェードイン
        aOperator.mDelegate.onMoveMapFadeIn(() => {
            tFadeEnded = true;
            if (tMoveEnded)
            {
                fadeInEnded(aOperator);
            }
        });
    }
Ejemplo n.º 4
0
 public override void run(MapEventSystem.Operator aOperator, Action <Arg> aCallback)
 {
     aOperator.getAi(mTarget).turn(mDirection);
     aCallback(null);
 }
Ejemplo n.º 5
0
 public override void run(MapEventSystem.Operator aOperator, Action <Arg> aCallback)
 {
     aOperator.getAi(mTarget).moveBy(mVector, mSpeed, () => {
         aCallback(null);
     });
 }