Exemplo n.º 1
0
        /// <summary>
        /// 帰宅したかどうかを取得する
        /// </summary>
        /// <returns>帰宅したかどうか</returns>
        private bool IsReturnHome(FluorineFx.ASObject asObject)
        {
            Object miscObj = null;

            if (asObject.TryGetValue("misc", out miscObj) && miscObj != null)
            {
                FluorineFx.ASObject miscAsObj = (FluorineFx.ASObject)miscObj;
                Int32 finishType = -1;
                if (FiddlerUtil.IsExistObject(miscAsObj, "finishType"))
                {
                    AMFUtil.GetInt32Value(miscAsObj, "finishType", out finishType);
                    if (finishType == 0)    // お使いから帰ってくると0が入っている
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemplo n.º 2
0
 private void FiddlerApplication_AfterSessionComplete(Fiddler.Session oSession)
 {
     FiddlerUtil.AfterSessionComplete(oSession, this);
 }
Exemplo n.º 3
0
        /// <summary>
        /// card情報をパースする
        /// </summary>
        /// <param name="asObject"></param>
        private void ParseCard(FluorineFx.ASObject asObject)
        {
            Object cardObj = null;

            if (asObject.TryGetValue("card", out cardObj) && cardObj != null)
            {
                Object[] cardObjs = null;

                // 配列の時とそうでない時の両方に対応する
                Type varType = cardObj.GetType();
                if (varType == typeof(FluorineFx.ASObject))
                {
                    cardObjs    = new FluorineFx.ASObject[1];
                    cardObjs[0] = (FluorineFx.ASObject)cardObj;
                }
                else if (varType == typeof(Object[]))
                {
                    cardObjs = (Object[])cardObj;

                    // cardは強化合成や限界突破によって容易く減る機会が多い
                    // 配列の場合、全情報が入っていると思いたいが食事の時は対象となるモン娘の情報しかない
                    // この違いを"misc"があるかどうかで判断する。あればクリアする。
                    if (FiddlerUtil.IsExistObject(asObject, FiddlerUtil.KeyNameType.MISC) &&
                        // "misc"があってもお使いからの帰宅時は対象外
                        !IsReturnHome(asObject))
                    {
                        mCardDatas.Clear();
                    }
                }

                for (int i = 0; i < cardObjs.Length; ++i)
                {
                    FluorineFx.ASObject asObj = cardObjs[i] as FluorineFx.ASObject;
                    if (asObj != null)
                    {
                        CardData parseData = new CardData();
                        parseData.Parse(asObj);

                        // 既出なら更新する
                        Int32 findDataIndex = mCardDatas.FindIndex(
                            delegate(CardData inData)
                        {
                            return(inData.cardId == parseData.cardId);
                        }
                            );
                        if (0 <= findDataIndex)
                        {
                            mCardDatas[findDataIndex] = parseData;
                        }
                        // 新出なら追加する
                        else
                        {
                            mCardDatas.Add(parseData);
                        }
                    }
                }

                // ソートする
                mCardDatas.Sort(
                    delegate(CardData a, CardData b)
                {
                    return(a.cardId - b.cardId);
                }
                    );
            }
        }
Exemplo n.º 4
0
 private void FiddlerApplication_BeforeRequest(Fiddler.Session oSession)
 {
     FiddlerUtil.BeforeRequest(oSession);
 }