예제 #1
0
        public static List <Expression.Data> Convert(
            ref string[] args,
            TextScenario scenario)
        {
            List <Expression.Data> dataList = new List <Expression.Data>();

            if (args.Length > 1)
            {
                int cnt = 0;
                while (!args.IsNullOrEmpty(cnt))
                {
                    string check = (string)null;
                    args.SafeProc(cnt + 1, (Action <string>)(s => check = s));
                    if (check != null)
                    {
                        int             no          = int.Parse(args[cnt]);
                        Game.Expression expression1 = Game.GetExpression(scenario.commandController.expDic, check);
                        if (expression1 != null)
                        {
                            dataList.Add(new Expression.Data(no, expression1));
                            cnt += 2;
                            continue;
                        }
                        CharaData  chara       = scenario.commandController.GetChara(no);
                        ChaControl chaCtrl     = chara.chaCtrl;
                        int        personality = 0;
                        if (chara.data != null)
                        {
                            if (chara.data.agentData != null)
                            {
                                VoiceInfo.Param obj;
                                if (Singleton <Manager.Voice> .Instance.voiceInfoDic.TryGetValue(chara.data.chaCtrl.fileParam.personality, out obj))
                                {
                                    personality = obj.No;
                                }
                            }
                            else if (chara.data.merchantData != null)
                            {
                                VoiceInfo.Param obj;
                                if (Singleton <Manager.Voice> .Instance.voiceInfoDic.TryGetValue(-90, out obj))
                                {
                                    personality = obj.No;
                                }
                            }
                            else
                            {
                                VoiceInfo.Param obj;
                                if (chara.data.playerData != null && Singleton <Manager.Voice> .Instance.voiceInfoDic.TryGetValue(-99, out obj))
                                {
                                    personality = obj.No;
                                }
                            }
                        }
                        if (Singleton <Game> .IsInstance())
                        {
                            Game.Expression expression2 = Singleton <Game> .Instance.GetExpression(personality, check);

                            if (expression2 != null)
                            {
                                dataList.Add(new Expression.Data(no, expression2));
                                cnt += 2;
                                continue;
                            }
                        }
                    }
                    Expression.Data data = new Expression.Data(args, ref cnt);
                    data.IsChangeSkip = true;
                    dataList.Add(data);
                }
            }
            return(dataList);
        }
예제 #2
0
 public Data(int no, Game.Expression src)
 {
     this.no = no;
     src.Copy((Game.Expression) this);
 }