Ejemplo n.º 1
0
    // 跳过情节
    private void onStorySkip(EventBase e)
    {
        // 没有后续 情节结束
        if (mCurRes == null || mCurRes.nextId < 0 || !DataManager.StoryTable.ContainsKey(mCurRes.nextId))
        {
            StoryEnd();
            return;
        }

        // 执行后续步骤的跳过触发器
        StoryTableItem res = DataManager.StoryTable[mCurRes.nextId] as StoryTableItem;

        while (res != null)
        {
            if (!string.IsNullOrEmpty(res.skipTrigger))
            {
                doFunciton(mCurRes.skipTrigger);
            }

            if (res.nextId < 0 || !DataManager.StoryTable.ContainsKey(res.nextId))
            {
                break;
            }

            res = DataManager.StoryTable[res.nextId] as StoryTableItem;
        }

        // 情节结束
        StoryEnd();
    }
Ejemplo n.º 2
0
    // 情节步骤开始
    private void onStoryStepBegin(EventBase e)
    {
        StoryTableItem nextRes = StoryManager.Instance.GetCurStoryRes();

        if (mRes != null)
        {
            // 需要关闭对侧的对话框
            if (nextRes.closeOther > 0 && !isSamePos(mRes.headPos, nextRes.headPos))
            {
                if (mRes.headPos == 0 || mRes.headPos == 1)
                {
                    mTopDlg.Skip();
                }
                else
                {
                    mBottomDlg.Skip();
                }
            }
        }

        mRes = nextRes;

        mSkipBtn.gameObject.SetActive(mRes.canSkipAll);

        if (mRes.headPos == 0 || mRes.headPos == 1)
        {
            mTopDlg.UpdateStory(mRes);
        }
        else
        {
            mBottomDlg.UpdateStory(mRes);
        }
    }
Ejemplo n.º 3
0
    // 更新情节
    public void UpdateStory(StoryTableItem res)
    {
        if (mRes == null)
        {
            mTimer = 0.0f;
        }
        else
        {
            mTimer = 3.0f;
        }

        mRes          = res;
        mStepWaitTime = (float)(mRes.keepTime * 0.001);

        if (mRes.headAtlas.Equals("player"))
        {
            PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>();
            if (module != null)
            {
                UIAtlasHelper.SetSpriteImage(mHead, "touxiang:player_" + module.GetResId().ToString());
            }
        }
        else
        {
            UIAtlasHelper.SetSpriteImage(mHead, mRes.headAtlas);
        }

        if (mRes.headMirror < 1)
        {
            mHead.transform.localRotation = Quaternion.Euler(new Vector3(0.0f, 0.0f, 0.0f));
        }
        else
        {
            mHead.transform.localRotation = Quaternion.Euler(new Vector3(0.0f, 180.0f, 0.0f));
        }

//      mTitle.text = mRes.title;
//      mContent.text = mRes.content;
        mBtn.alpha = 0.0f;

        StopEffect();

        if (mRes.headPos == 0 || mRes.headPos == 2)
        {
            LeftMode();
        }
        else if (mRes.headPos == 1 || mRes.headPos == 3)
        {
            RightMode();
        }
        else
        {
            MiddleMode();
        }

        mState = UIState.STATE_0;
    }
Ejemplo n.º 4
0
    protected override void OnClose()
    {
        mRes = null;

        EventDelegate.Remove(mSkipBtn.onClick, onSkipBtnClicked);
        EventDelegate.Remove(mMaskBtn.onClick, onMaskBtnClicked);

        EventSystem.Instance.removeEventListener(StoryEvent.STORY_STEP_BEGIN, onStoryStepBegin);
        EventSystem.Instance.removeEventListener(StoryEvent.STORY_END, onStoryEnd);
    }
Ejemplo n.º 5
0
    // 跳过
    public void Skip()
    {
        mRes = null;

        if (mState > UIState.STATE_ORIGINAL && mState < UIState.STATE_4)
        {
            mTimer = 0.0f;
            mState = UIState.STATE_4;
        }
    }
Ejemplo n.º 6
0
    // 情节步骤结束
    private void onStoryStepFinish(EventBase e)
    {
        // 没有后续 情节结束
        if (mCurRes.nextId < 0 || !DataManager.StoryTable.ContainsKey(mCurRes.nextId))
        {
            StoryEnd();
            return;
        }

        // 更新当前情节
        mCurRes = DataManager.StoryTable[mCurRes.nextId] as StoryTableItem;

        // 执行情节的功能触发器
        doFunciton(mCurRes.normalTrigger);

        EventSystem.Instance.PushEvent(new StoryEvent(StoryEvent.STORY_STEP_BEGIN));
    }
Ejemplo n.º 7
0
    // 情节结束
    private void StoryEnd()
    {
        BaseScene scene = SceneManager.Instance.GetCurScene();

        if (scene != null)
        {
            scene.AddAllActionFlag();
        }

//         BattleUnit unit = PlayerController.Instance.GetControlObj() as BattleUnit;
//         if (unit != null)
//         {
//             unit.SetLeague(LeagueDef.Red);
//         }
        mCurRes    = null;
        mIsRunning = false;
        EventSystem.Instance.PushEvent(new StoryEvent(StoryEvent.STORY_END, mOriginalId));

        mOriginalId = -1;
    }
Ejemplo n.º 8
0
    // 启动情节
    public bool StartStory(int id)
    {
        if (mIsRunning)
        {
            GameDebug.LogError("不要在一个未结束的情节中启动另一情节!");
            return(false);
        }

        if (!DataManager.StoryTable.ContainsKey(id))
        {
            return(false);
        }

        mCurRes = DataManager.StoryTable[id] as StoryTableItem;
        if (mCurRes == null)
        {
            return(false);
        }

        mOriginalId = id;

        WindowManager.Instance.OpenUI("story");

        BaseScene scene = SceneManager.Instance.GetCurScene();

        if (scene != null)
        {
            scene.RemoveAllActionFlag();
        }

//      BattleUnit unit = PlayerController.Instance.GetControlObj() as BattleUnit;
//      if (unit != null)
//      {
//          unit.SetLeague(LeagueDef.Neutral);
//      }

        return(mIsRunning = true);
    }