Exemplo n.º 1
0
        public void checkEvent(string name, string act)
        {
            if (StatusManager.enableEventClick == true && name == "_sp_button_close")
            {
                //StatusManager.inUiClick = false;
                StatusManager.enableClickOrder     = false;
                StatusManager.nextClickShowMessage = true;

                NovelSingleton.GameView.hideMessageWithoutNextOrder(0.2f);
                return;
            }


            //指定したイベントが存在する場合、その場所にジャンプする
            if (this.dicEvent.ContainsKey(name))
            {
                EventObject obj = this.dicEvent [name];


                //Debug.Log ("check:"+name);
                //Debug.Log ("StatusManager.isEventStop:" + StatusManager.isEventStop);

                //イベントが停止中の場合、特定の許可されたイベントしか実行できない
                if (StatusManager.isEventStop == true)
                {
                    if (!StatusManager.variable.hasKey("_evt_name_permission." + name))
                    {
                        return;
                    }

                    //クリックも停止中の時は、、、
                }
                else if (StatusManager.enableEventClick != true)
                {
                    //Debug.Log (name);
                    //停止中とか関係ない

                    /*
                     * if (!StatusManager.variable.hasKey ("_evt_name_permission." + name)) {
                     *      return;
                     * }
                     */

                    return;
                }


                if (obj.act == act)
                {
                    //イベントを実施中の場合は、次に検知する画面クリックは無効にしてもらう
                    //StatusManager.inUiClick = true;

                    GameManager gm = NovelSingleton.GameManager;

                    //ジャンプを実行する時に呼び出した位置情報を保持する
                    StatusManager.variable.set("evt.caller_file", StatusManager.currentScenario);

                    int current_index = NovelSingleton.GameManager.CurrentComponentIndex;

                    if (NovelSingleton.GameManager.getComponent(current_index).tagName == "s")
                    {
                        current_index = current_index - 1;
                    }

                    StatusManager.variable.set("evt.caller_index", "" + (current_index));

                    //paramの内容をevt変数に入れていく
                    foreach (KeyValuePair <string, string> kvp in obj.param)
                    {
                        StatusManager.variable.set("evt." + kvp.Key, obj.param[kvp.Key]);
                    }

                    //イベントの名前はクリックされたオブジェクトの名前
                    StatusManager.variable.set("evt.caller_name", name);


                    string            tag_str = "[jump file='" + obj.file + "' target='" + obj.target + "' ]";
                    AbstractComponent cmp     = gm.parser.makeTag(tag_str);
                    cmp.start();
                }
            }
        }