Beispiel #1
0
        private void ParseDeck(FluorineFx.ASObject asObject)
        {
            // 配列の時と、そうでない時がある。
            // 前者はグループ編成画面を開いた時、後者は戦闘開始前やお使い終了時など。
            Object deckObj = null;

            if (asObject.TryGetValue("deck", out deckObj) && deckObj != null)
            {
                Object[] deckObjs = null;

                // 単体の時
                Type varType = deckObj.GetType();
                if (varType == typeof(FluorineFx.ASObject))
                {
                    deckObjs    = new FluorineFx.ASObject[1];
                    deckObjs[0] = (FluorineFx.ASObject)deckObj;
                }
                // 配列の時
                else if (varType == typeof(Object[]))
                {
                    deckObjs = (Object[])deckObj;
                }

                for (Int32 i = 0; i < deckObjs.Length; ++i)
                {
                    FluorineFx.ASObject asObj = (FluorineFx.ASObject)deckObjs[i];
                    if (asObj != null)
                    {
                        DeckData parseData = new DeckData();
                        parseData.Parse(asObj);

                        // 既出なら上書きする
                        Int32 findDataIndex = mDeckDatas.FindIndex(
                            delegate(DeckData a)
                        {
                            return(a.deckId == parseData.deckId);
                        }
                            );
                        if (0 <= findDataIndex)
                        {
                            mDeckDatas[findDataIndex] = parseData;
                        }
                        // 新出なら追加する
                        else
                        {
                            mDeckDatas.Add(parseData);
                        }
                    }
                }

                // ID昇順でソートする
                mDeckDatas.Sort(
                    delegate(DeckData a, DeckData b)
                {
                    return(a.deckId - b.deckId);
                }
                    );
            }
        }
Beispiel #2
0
        /// <summary>
        /// デッキ情報を取得する
        /// </summary>
        /// <param name="deckId">デッキID</param>
        /// <returns>デッキ情報。無い場合はnullを返す</returns>
        public static DeckData GetDeckData(Int32 deckId)
        {
            DeckData findData = UserData.Instance.DeckDatas.Find(
                delegate(DeckData inData)
            {
                return(inData.deckId == deckId);
            }
                );

            return(findData);
        }
Beispiel #3
0
        /// <summary>
        /// デッキ名を取得する
        /// </summary>
        /// <param name="deckId">デッキID</param>
        /// <returns>デッキ名を返す。無い場合は無効な文字列を返す。</returns>
        public static String GetDeckName(Int32 deckId)
        {
            DeckData findData = GetDeckData(deckId);

            if (findData != null)
            {
                return(findData.deckName);
            }

            return("-----");
        }
Beispiel #4
0
        /// <summary>
        /// カードIDを取得する
        /// </summary>
        /// <param name="deckId">デッキID</param>
        /// <param name="index">デッキ内の順番</param>
        /// <returns>対象のモン娘のカードIDを返す</returns>
        public static Int32 GetCardId(Int32 deckId, Int32 index)
        {
            DeckData findDeckData = GetDeckData(deckId);

            if (findDeckData != null)
            {
                switch (index)
                {
                case 0: return(findDeckData.cardId1);

                case 1: return(findDeckData.cardId2);

                case 2: return(findDeckData.cardId3);

                case 3: return(findDeckData.cardId4);

                case 4: return(findDeckData.cardId5);
                }
            }

            return(0);
        }
Beispiel #5
0
        /// <summary>
        /// モン娘のテンションを取得する
        /// </summary>
        /// <param name="deckId">デッキID</param>
        /// <param name="index">デッキ内の順番</param>
        /// <returns>モン娘のテンションを返す。モン娘が見つからない場合、0を返す。</returns>
        public static Int32 GetMonmusuTension(Int32 deckId, Int32 index)
        {
            Int32 tension = 0;

            DeckData findDeckData = GetDeckData(deckId);

            if (findDeckData != null)
            {
                switch (index)
                {
                case 0: tension = GetMonmusuTension(findDeckData.cardId1); break;

                case 1: tension = GetMonmusuTension(findDeckData.cardId2); break;

                case 2: tension = GetMonmusuTension(findDeckData.cardId3); break;

                case 3: tension = GetMonmusuTension(findDeckData.cardId4); break;

                case 4: tension = GetMonmusuTension(findDeckData.cardId5); break;
                }
            }

            return(tension);
        }
Beispiel #6
0
        /// <summary>
        /// モン娘のレベルを取得する
        /// </summary>
        /// <param name="deckId">デッキID</param>
        /// <param name="index">デッキ内の順番</param>
        /// <returns>モン娘のレベルを返す。モン娘が見つからない場合、0を返す。</returns>
        public static Int32 GetMonmusuLevel(Int32 deckId, Int32 index)
        {
            Int32 level = 0;

            DeckData findDeckData = GetDeckData(deckId);

            if (findDeckData != null)
            {
                switch (index)
                {
                case 0: level = GetMonmusuLevel(findDeckData.cardId1); break;

                case 1: level = GetMonmusuLevel(findDeckData.cardId2); break;

                case 2: level = GetMonmusuLevel(findDeckData.cardId3); break;

                case 3: level = GetMonmusuLevel(findDeckData.cardId4); break;

                case 4: level = GetMonmusuLevel(findDeckData.cardId5); break;
                }
            }

            return(level);
        }
Beispiel #7
0
        /// <summary>
        /// モン娘の限界突破回数を取得する
        /// </summary>
        /// <param name="deckId">デッキID</param>
        /// <param name="index">デッキ内の順番</param>
        /// <returns>モン娘の限界突破回数</returns>
        public static Int32 GetMonmusuRebirthCount(Int32 deckId, Int32 index)
        {
            Int32 rebirthCount = 0;

            DeckData findDeckData = GetDeckData(deckId);

            if (findDeckData != null)
            {
                switch (index)
                {
                case 0: rebirthCount = GetMonmusuRebirthCount(findDeckData.cardId1); break;

                case 1: rebirthCount = GetMonmusuRebirthCount(findDeckData.cardId2); break;

                case 2: rebirthCount = GetMonmusuRebirthCount(findDeckData.cardId3); break;

                case 3: rebirthCount = GetMonmusuRebirthCount(findDeckData.cardId4); break;

                case 4: rebirthCount = GetMonmusuRebirthCount(findDeckData.cardId5); break;
                }
            }

            return(rebirthCount);
        }
Beispiel #8
0
        /// <summary>
        /// モン娘の仮名を取得する
        /// </summary>
        /// <param name="deckId">デッキID</param>
        /// <param name="index">モン娘の順番</param>
        /// <returns>モン娘の仮名。無い場合は"-----"を返す</returns>
        public static String GetMonmusuKana(Int32 deckId, Int32 index)
        {
            String name = "-----";

            DeckData findDeckData = GetDeckData(deckId);

            if (findDeckData != null)
            {
                switch (index)
                {
                case 0: name = GetMonmusuKana(findDeckData.cardId1); break;

                case 1: name = GetMonmusuKana(findDeckData.cardId2); break;

                case 2: name = GetMonmusuKana(findDeckData.cardId3); break;

                case 3: name = GetMonmusuKana(findDeckData.cardId4); break;

                case 4: name = GetMonmusuKana(findDeckData.cardId5); break;
                }
            }

            return(name);
        }
Beispiel #9
0
        private void ParseDeck(FluorineFx.ASObject asObject)
        {
            // 配列の時と、そうでない時がある。
            // 前者はグループ編成画面を開いた時、後者は戦闘開始前やお使い終了時など。
            Object deckObj = null;
            if (asObject.TryGetValue("deck", out deckObj) && deckObj != null)
            {
                Object[] deckObjs = null;

                // 単体の時
                Type varType = deckObj.GetType();
                if (varType == typeof(FluorineFx.ASObject))
                {
                    deckObjs = new FluorineFx.ASObject[1];
                    deckObjs[0] = (FluorineFx.ASObject)deckObj;
                }
                // 配列の時
                else if(varType == typeof(Object[]))
                {
                    deckObjs = (Object[])deckObj;
                }

                for (Int32 i = 0; i < deckObjs.Length; ++i)
                {
                    FluorineFx.ASObject asObj = (FluorineFx.ASObject)deckObjs[i];
                    if (asObj != null)
                    {
                        DeckData parseData = new DeckData();
                        parseData.Parse(asObj);

                        // 既出なら上書きする
                        Int32 findDataIndex = mDeckDatas.FindIndex(
                            delegate(DeckData a)
                            {
                                return (a.deckId == parseData.deckId);
                            }
                        );
                        if (0 <= findDataIndex)
                        {
                            mDeckDatas[findDataIndex] = parseData;
                        }
                        // 新出なら追加する
                        else 
                        {
                            mDeckDatas.Add(parseData);
                        }
                    }
                }
                
                // ID昇順でソートする
                mDeckDatas.Sort(
                    delegate(DeckData a, DeckData b)
                    {
                        return a.deckId - b.deckId;
                    }
                    );
            }
        }