protected override void Excute(BehaviorData inData)
 {
     if (inData.ContainForm("SPEAKER"))
     {
         _dialogue.characterName = inData.speaker;
     }
     else if (inData.ContainForm("TALK"))
     {
         string talk = inData.talk.Replace("\\n", "\n");
         if (GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Load ||
             GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Skip)
         {
             // 대화를 바로 실행한다
             _dialogue.talkMessage = talk;
         }
         else
         {
             _dialogue.PrintMessage(talk, 0, 0.05f);
         }
     }
     else
     {
         Debug.LogError(StringHelper.Format("[{0}] 대화 명령어가 등록되지 않았습니다!", inData.form));
     }
 }
Example #2
0
 protected override void Excute(BehaviorData inData)
 {
     if (inData.ContainForm("BGM"))
     {
         _bgm.ShowResource(inData.name, inData);
     }
     else if (inData.ContainForm("SE"))
     {
         _se.ShowResource(inData.name, inData);
     }
     else if (inData.ContainForm("DISTRACTOR"))
     {
         // 선택지 히스토리를 따름
         if (GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Load)
         {
             GameDataManager.getInstance.followDistactor = GameDataManager.getInstance.distractorHistory[GameDataManager.getInstance.readDistractorHistory];
             if (GameDataManager.getInstance.followDistactor == GameDataManager.getInstance.NONE_SELECT_DISTRACTOR)
             {
                 GameDataManager.getInstance.readCount = GameDataManager.getInstance.FindDisractorStartArea(GameDataManager.getInstance.NONE_SELECT_DISTRACTOR);
             }
             GameDataManager.getInstance.readDistractorHistory++;
         }
         else
         {
             GameDataManager.getInstance.stopBehavior = true;
             _distractor.ClearDistractorList();
             string[] splitMessage = inData.distractorList.Split('-');
             for (int i = 0; i < splitMessage.Length; i++)
             {
                 if (i == 0)
                 {
                     continue;
                 }
                 _distractor.CreateDistractor(splitMessage[i], inData.notChooseDistractorTime);
             }
             _distractor.RefreshDistractorPosition();
         }
     }
     else if (inData.ContainForm("BACKGROUND"))
     {
         _background.ShowResource(inData.name);
     }
     else
     {
         Debug.LogError(StringHelper.Format("[{0}] 실행 명령어가 등록되지 않았습니다!", inData.form));
     }
 }
Example #3
0
 public bool ExcuteBehavior(BehaviorData inData)
 {
     if (inData.ContainForm(LoadKey))
     {
         Excute(inData);
         return(true);
     }
     return(false);
 }
Example #4
0
 protected override void Excute(BehaviorData inData)
 {
     if (inData.ContainForm("BGM"))
     {
         _bgm.HideAllResource();
     }
     else
     {
         Debug.LogError(StringHelper.Format("[{0}] 중단 명령어가 등록되지 않았습니다!", inData.form));
     }
 }
    protected override void Excute(BehaviorData inData)
    {
        if (GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Load)
        {
            inData.time = 0;
        }

        if (inData.ContainForm("RAIN_START"))
        {
            _rainScript.gameObject.SetActive(true);
            _rainScript.RainStart(inData.time);
        }
        else if (inData.ContainForm("RAIN_END"))
        {
            _rainScript.RainEnd(inData.time);
        }
        else
        {
            Debug.LogError(StringHelper.Format("[{0}] 파티클 명령어가 등록되지 않았습니다!", inData.form));
        }
    }
Example #6
0
 protected override void Excute(BehaviorData inData)
 {
     if (inData.ContainForm("CHARACTER"))
     {
         _character.LoadResource(inData.name, inData);
     }
     else if (inData.ContainForm("BGM"))
     {
         _bgm.LoadResource(inData.name);
     }
     else if (inData.ContainForm("BACKGROUND"))
     {
         _background.LoadResource(inData.name);
     }
     else if (inData.ContainForm("SE"))
     {
         _se.LoadResource(inData.name);
     }
     else
     {
         Debug.LogError(StringHelper.Format("[{0}] 로드 명령어가 등록되지 않았습니다!", inData.form));
     }
 }
 protected override void Excute(BehaviorData inData)
 {
     if (inData.ContainForm("START"))
     {
         int distractorNumber = inData.distractorNumber;
         int followNumber     = GameDataManager.getInstance.followDistactor;
         if (distractorNumber != followNumber)
         {
             GameDataManager.getInstance.readCount = GameDataManager.getInstance.FindDisractorEndArea(distractorNumber);
         }
     }
     else if (inData.ContainForm("END"))
     {
         if (GameDataManager.getInstance.followDistactor == inData.distractorNumber)
         {
             GameDataManager.getInstance.followDistactor = -1;
         }
     }
     else
     {
         Debug.LogError(StringHelper.Format("[{0}] 선택지 명령어가 등록되지 않았습니다!", inData.form));
     }
 }
    protected override void Excute(BehaviorData inData)
    {
        if (inData.ContainForm("SCREEN_CLEAR"))
        {
            _dialogue.name        = string.Empty;
            _dialogue.talkMessage = string.Empty;
        }
        else if (inData.ContainForm("START"))
        {
            _popupLoading.gameObject.SetActive(true);
            _popupLoading.Init();
        }
        else if (inData.ContainForm("END"))
        {
            //GameDataManager.getInstance.stopBehavior = true;
            GameDataManager.getInstance.nowLoading = false;
        }
        else if (inData.ContainForm("WAIT"))
        {
            if (GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Load)
            {
                inData.time = 0;
            }
            GameDataManager.getInstance.behaviorDelayTime = inData.time;
        }
        else if (inData.ContainForm("VIBRATE"))
        {
#if UNITYPLATFORM == UNITY_ANDROID && (!UNITY_EDITOR)
            //Handheld.Vibrate();
#endif
        }
        else
        {
            Debug.LogError(StringHelper.Format("[{0}] 시스템 명령어가 등록되지 않았습니다!", inData.form));
        }
    }
    /// <summary>
    /// 선택지 끝 판별
    /// </summary>
    /// <param name="distractorNumber">선택지 종료</param>
    /// <returns></returns>
    public int FindDisractorEndArea(int distractorNumber)
    {
        int result = -1;

        for (int i = 0; i < GameDataManager.getInstance._behaviorList.Count; i++)
        {
            BehaviorData data = GameDataManager.getInstance._behaviorList[i];
            if (data._read)
            {
                continue;
            }
            if (data.ContainForm("DISTRACTOR_END") &&
                data.distractorNumber.CompareTo(distractorNumber) == 0)
            {
                result = i;
                break;
            }
        }
        return(result + 1);
    }
    protected override void Excute(BehaviorData inData)
    {
        // 액션을 바로 실행한다
        if (GameDataManager.getInstance.scriptPlayMode == GameDataManager.EScriptPlayMode.Load)
        {
            inData.time = 0;
        }

        bool applyDelayTime = true;

        if (inData.ContainForm("SCENE_FADEIN"))
        {
            _fadeAction.FadeIn(inData.time);
        }
        else if (inData.ContainForm("SCENE_FADEOUT"))
        {
            _fadeAction.FadeOut(inData.time);
        }
        else if (inData.ContainForm("CHATBOX_SHOW"))
        {
            _chatBoxAction.ShowChatBox(inData.time);
        }
        else if (inData.ContainForm("CHATBOX_HIDE"))
        {
            _chatBoxAction.HideChatBox(inData.time);
        }
        else if (inData.ContainForm("TEXT_FADEIN"))
        {
            _chatBoxAction.ChatFadeIn(inData.time);
        }
        else if (inData.ContainForm("TEXT_FADEOUT"))
        {
            _chatBoxAction.ChatFadeOut(inData.time);
        }
        else if (inData.ContainForm("SCENE_SHAKE"))
        {
            _shakeAction.ScreenShake(5, inData.time, 50);
        }
        else if (inData.ContainForm("CHARACTER_MOVE_IN"))
        {
            _character.FadeIn(inData);
        }
        else if (inData.ContainForm("CHARACTER_MOVE_OUT"))
        {
            _character.FadeOut(inData);
        }
        else if (inData.ContainForm("DISTRACTOR_FADEOUT"))
        {
            _distractor.VanishDistractorButton(inData.time);
        }
        else if (inData.ContainForm("SE_FADEOUT"))
        {
            applyDelayTime = false;
            _se.FadeOut(inData.name, inData.time);
        }
        else if (inData.ContainForm("SE_FADEIN"))
        {
            applyDelayTime = false;
            _se.FadeIn(inData.name, inData.time);
        }
        else if (inData.ContainForm("BGM_FADEOUT"))
        {
            applyDelayTime = false;
            _bgm.FadeOut(inData.name, inData.time);
        }
        else if (inData.ContainForm("BGM_FADEIN"))
        {
            applyDelayTime = false;
            _bgm.FadeIn(inData.name, inData.time);
        }
        else if (inData.ContainForm("BACKGROUND_CLOUD"))
        {
            _fadeAction.CloudFadeIn(inData.time);
        }
        else if (inData.ContainForm("BACKGROUND_CLEAN"))
        {
            _fadeAction.CloudFadeOut(inData.time);
        }
        else if (inData.ContainForm("BACKGROUND_PUSH"))
        {
            _background.Push(inData.name, inData.direction, inData.time);
        }
        else if (inData.ContainForm("BACKGROUND_FADEIN"))
        {
            if (inData.axis == "NONE")
            {
                _background.FadeIn(inData.name, inData.time);
            }
            else if (inData.axis == "X축")
            {
                _background.ShowResource(inData.name);
                _fadeAction.AxisXFadeIn(inData.time);
            }
        }
        else
        {
            Debug.LogError(StringHelper.Format("[{0}] 액션 명령어가 등록되지 않았습니다!", inData.form));
        }
        GameDataManager.getInstance.behaviorDelayTime = (applyDelayTime) ? inData.time : 0;
    }
Example #11
0
    IEnumerator Co_ActionBehavior()
    {
        while (_dataManager.readCount < _dataManager._behaviorList.Count)
        {
            if (Input.GetMouseButton(0))
            {
                _dataManager.next = true;
            }
            if (_dataManager.next == false)
            {
                if (_dataManager.scriptPlayMode == GameDataManager.EScriptPlayMode.Skip ||
                    _dataManager.scriptPlayMode == GameDataManager.EScriptPlayMode.Auto)
                {
                    _dataManager.next = true;
                }
            }

            if (_dataManager.scriptPlayMode == GameDataManager.EScriptPlayMode.Load)
            {
                if (GameDataManager.getInstance.readCount >= GameDataManager.getInstance.loadLine)
                {
                    _dataManager.scriptPlayMode = GameDataManager.EScriptPlayMode.Touch;
                }
            }
            if (_dataManager.stopBehavior || !_dataManager.next)
            {
                yield return(null);
            }
            else
            {
                GameDataManager.getInstance.behaviorDelayTime = 0;
                data       = GameDataManager.getInstance._behaviorList[_dataManager.readCount];
                data._read = true;
                _dataManager.readCount++;

                //if (_dataManager.scriptPlayMode == GameDataManager.EScriptPlayMode.Load)
                // {
                DevelopeLog.Log(StringHelper.Format("[{0}] Line {1} Skip", data.form, GameDataManager.getInstance.readCount));
                Debug.Log(StringHelper.Format("[{0}] Line {1} Skip", data.form, GameDataManager.getInstance.readCount));
                // }

                bool find             = false;
                int  findBehaviorType = -1;
                for (int i = 0; i < _managerArray.Length; i++)
                {
                    find = _managerArray[i].ExcuteBehavior(data);
                    if (find)
                    {
                        findBehaviorType = i;
                        break;
                    }
                }


                if (findBehaviorType == 7)
                {
                    if (_dataManager.scriptPlayMode == GameDataManager.EScriptPlayMode.Touch && data.ContainForm("TALK"))
                    {
                        _dataManager.next = false;
                        yield return(new WaitForSeconds(0.1f + GameDataManager.getInstance.behaviorDelayTime));
                    }
                    else
                    {
                        yield return(new WaitForSeconds(GameDataManager.getInstance.behaviorDelayTime));
                    }
                }
                else
                {
                    yield return(new WaitForSeconds(GameDataManager.getInstance.behaviorDelayTime));
                }
            }
        }
    }