Ejemplo n.º 1
0
        public AdvScenarioTextDataInPage(AdvCommand command)
        {
            Command = command;
            if (command.RowData == null)
            {
                //暗黙的だけど、選択肢の後の改ページ待ちのために
                IsCharacterShowOnly = false;
                PageCtrlType        = AdvPageControllerType.None;
                IsPageEnd           = true;
                IsEmptyText         = true;
                return;
            }
            else
            {
                //暗黙的だけどキャラ表示のみの場合
                IsCharacterShowOnly = command.IsEmptyCell(AdvColumnName.Text) && command.IsEmptyCell(AdvColumnName.PageCtrl);
                if (IsCharacterShowOnly)
                {
                    IsEmptyText = true;
                    IsPageEnd   = false;
                }
                else
                {
                    IsEmptyText = false;
                    if (command.IsEmptyCell(AdvColumnName.PageCtrl))
                    {
                        this.PageCtrlType = AdvPageControllerType.None;
                    }
                    else
                    {
                        float  autoBrTime;
                        string pageCtrl = command.ParseCell <string>(AdvColumnName.PageCtrl);
                        if (float.TryParse(pageCtrl, out autoBrTime))
                        {
                            AutoBrTime = autoBrTime;
                        }
                        else
                        {
                            this.PageCtrlType = command.ParseCellOptional <AdvPageControllerType>(AdvColumnName.PageCtrl, AdvPageControllerType.None);
                        }
                    }
                    IsPageEnd = AdvPageController.IsPageEndType(PageCtrlType);
                    IsNextBr  = AdvPageController.IsBrType(PageCtrlType);

                    //エディター用のチェック
                    if (AdvCommand.IsEditorErrorCheck)
                    {
                        TextData textData = new TextData(command.ParseCellLocalizedText());
                        if (!string.IsNullOrEmpty(textData.ErrorMsg))
                        {
                            Debug.LogError(command.ToErrorString(textData.ErrorMsg));
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public AdvEffectDataTween(AdvCommand command)
        {
            this.targetName = command.ParseCell <string>(AdvColumnName.Arg1);
            this.targetType = TargetType.Default;

            string type     = command.ParseCell <string>(AdvColumnName.Arg2);
            string arg      = command.ParseCellOptional <string>(AdvColumnName.Arg3, "");
            string easeType = command.ParseCellOptional <string>(AdvColumnName.Arg4, "");
            string loopType = command.ParseCellOptional <string>(AdvColumnName.Arg5, "");

            this.waitType = command.ParseCellOptional <WaitType>(AdvColumnName.Arg6, WaitType.Wait);

            this.tweenData = new iTweenData(type, arg, easeType, loopType);
            if (this.tweenData.Type == iTweenType.Stop)
            {
                waitType = WaitType.Add;
            }

            if (!string.IsNullOrEmpty(tweenData.ErrorMsg))
            {
                Debug.LogError(command.ToErrorString(tweenData.ErrorMsg));
            }
        }
Ejemplo n.º 3
0
        public static AdvCharacterInfo Create(AdvCommand command, AdvSettingDataManager dataManager)
        {
            if (command.IsEmptyCell(AdvColumnName.Arg1))
            {
                return(null);
            }

            //名前
            string nameText       = command.ParseCell <string>(AdvColumnName.Arg1);
            string characterLabel = nameText;
            //第二引数を解析
            //基本的にはパターン名だが
            //キャラクターラベルの指定タグがあったり、非表示タグする
            bool   isHide  = false;
            string erroMsg = "";
            string pattern = ParserUtil.ParseTagTextToString(
                command.ParseCellOptional <string>(AdvColumnName.Arg2, ""),
                (tagName, arg) =>
            {
                bool failed = false;
                switch (tagName)
                {
                case "Off":
                    //非表示タグ
                    isHide = true;
                    break;

                case "Character":
                    //キャラクターラベルの指定タグ
                    characterLabel = arg;
                    break;

                default:
                    erroMsg = "Unkownn Tag <" + tagName + ">";
                    failed  = true;
                    break;
                }
                return(!failed);
            });

            if (!string.IsNullOrEmpty(erroMsg))
            {
                Debug.LogError(erroMsg);
                return(null);
            }

            if (!dataManager.CharacterSetting.Contains(characterLabel))
            {
                //そもそもキャラ表示がない場合、名前表示のみになる
                return(new AdvCharacterInfo(characterLabel, nameText, pattern, isHide, null));
            }

            AdvCharacterSettingData data = dataManager.CharacterSetting.GetCharacterData(characterLabel, pattern);

            //キャラの表示情報の記述エラー
            if (data == null)
            {
                Debug.LogError(command.ToErrorString(characterLabel + ", " + pattern + " is not contained in Chactecter Sheet"));
                return(null);
            }
            //名前テキストをキャラクターシートの定義に変更
            if (!string.IsNullOrEmpty(data.NameText) && nameText == characterLabel)
            {
                nameText = data.NameText;
            }
            return(new AdvCharacterInfo(characterLabel, nameText, pattern, isHide, data.Graphic));
        }