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); } ); } }
/// <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); }
/// <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("-----"); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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; } ); } }