/// <summary> /// タグを指定して所持数を変更する /// </summary> /// <param name="itemTag">アイテムのタグ</param> public static void SetItemCountByTag(DBItemMst.ItemTag itemTag, Int32 count) { // マスターIDを取得する Int32 itemMstId = 0; itemMstId = DBItemMst.GetItemMstId(itemTag); if (itemMstId == 0) { return; } // データを参照して値を変更する Int32 findIndex = UserData.Instance.ItemDatas.FindIndex( delegate(ItemData inData) { return(inData.itemMstId == itemMstId); } ); if (0 <= findIndex) { UserData.Instance.ItemDatas[findIndex].itemCount = count; } }
/// <summary> /// タグを指定して所持数を変更する /// </summary> /// <param name="itemTag">アイテムのタグ</param> public static void SetItemCountByTag(DBItemMst.ItemTag itemTag, Int32 count) { // マスターIDを取得する Int32 itemMstId = 0; itemMstId = DBItemMst.GetItemMstId(itemTag); if (itemMstId == 0) { return; } // データを参照して値を変更する Int32 findIndex = UserData.Instance.ItemDatas.FindIndex( delegate(ItemData inData) { return (inData.itemMstId == itemMstId); } ); if (0 <= findIndex) { UserData.Instance.ItemDatas[findIndex].itemCount = count; } }
/// <summary> /// セッション完了後に処理する /// </summary> /// <param name="oSession">セッション情報</param> public static void AfterSessionComplete(Fiddler.Session oSession, FormMain form) { //取り敢えずログを吐く string text = string.Format("Session {0}({3}):HTTP {1} for {2}", oSession.id, oSession.responseCode, oSession.fullUrl, oSession.oResponse.MIMEType ); System.Diagnostics.Debug.WriteLine(text); // AMF形式のレスが来たら覗いてみる if (oSession.oResponse.MIMEType.Contains("amf")) { using (System.IO.Stream stream = new System.IO.MemoryStream(oSession.ResponseBody)) { // AMF形式の情報をデシリアライズする FluorineFx.IO.AMFDeserializer amfDeserializer = new FluorineFx.IO.AMFDeserializer(stream); FluorineFx.IO.AMFMessage responseMessage = amfDeserializer.ReadAMFMessage(); // BODYからContentを取得する FluorineFx.IO.AMFBody responseBody = responseMessage.GetBodyAt(0); FluorineFx.ASObject contentAsObj = responseBody.Content as FluorineFx.ASObject; Object bodyObj = null; if (contentAsObj.TryGetValue("body", out bodyObj)) { FluorineFx.ASObject bodyAsObj = bodyObj as FluorineFx.ASObject; // girlLevelMst DBGirlLevelMst.Parse(bodyAsObj); // productMst DBProductMst.Parse(bodyAsObj); // TODO:memorialMst // TODO:requestMst // TODO:skillLevelMst // TODO:productPackMst // TODO:skillEffectMst // TODO:skillMst // cardMessageMst DBCardMessageMst.Parse(bodyAsObj); // itemMst DBItemMst.Parse(bodyAsObj); // TODO:careMst // cardMst DBCardMst.Parse(bodyAsObj); // rarityMst DBRarityMst.Parse(bodyAsObj); // TODO:jobMst // TODO:playerLevelMst // TODO:tuningMst // TODO:rubyMst /* UserData */ UserData.Instance.Parse(bodyAsObj); // プレイヤー情報の表示を更新する if (IsExistObject(bodyAsObj, KeyNameType.PLAYER)) { form.Invoke(new FormMain.UpdateDelegate0(form.UpdatePlayerName)); form.Invoke(new FormMain.UpdateDelegate0(form.UpdatePlayerLevel)); form.Invoke(new FormMain.UpdateDelegate0(form.UpdatePlayerExp)); form.Invoke(new FormMain.UpdateDelegate0(form.UpdatePossessionMeal)); form.Invoke(new FormMain.UpdateDelegate0(form.UpdatePossessionRuby)); } // デッキ表示を更新する // 別スレッドなのでinvokeが必要になる if (IsExistObject(bodyAsObj, KeyNameType.CARD) || IsExistObject(bodyAsObj, KeyNameType.DECK)) { Int32 deckId = form.GetCurrentCheckDeckId(); if (0 < deckId) { form.Invoke(new FormMain.UpdateDelegate1(form.UpdateDeck), deckId); } } // モン娘の総数表示を更新する form.Invoke(new FormMain.UpdateDelegate0(form.UpdateLabelMonmusuWholeCount)); // 道具情報を更新する // 別スレッドなのでinvokeが必要になる if (IsExistObject(bodyAsObj, KeyNameType.PLAYER) || IsExistObject(bodyAsObj, KeyNameType.ITEM)) { form.Invoke(new FormMain.UpdateDelegate0(form.UpdateItem)); } } } } }