/// <summary> /// モン娘の種族名を取得する。 /// 種族名だけのDBは無いので、メモリアルに表示するテキストから抽出する。 /// </summary> /// <param name="cardMstId">マスターID</param> /// <returns>種族名</returns> public static String GetCardMessageRaceName(Int32 cardMstId) { CardMessageMstData cardMsgMstData = GetCardMessageMstDataMemorial(cardMstId); if (cardMsgMstData != null) { string text = cardMsgMstData.text; // 種族名が記載されている文字列の位置を検索する const string SEARCH_START_TEXT = "種族:"; Int32 searchIndex = text.IndexOf(SEARCH_START_TEXT); if (0 <= searchIndex) { Int32 raceNameStartIndex = searchIndex + SEARCH_START_TEXT.Length; // 種族名の記載が終了する位置を検索する const string SEARCH_END_TEXT = "\\n"; Int32 raceNameEndIndex = text.IndexOf(SEARCH_END_TEXT, raceNameStartIndex); if (0 <= raceNameEndIndex) { // 種族名を抽出する Int32 raceNameLength = raceNameEndIndex - raceNameStartIndex; string raceName = text.Substring(raceNameStartIndex, raceNameLength); return(raceName); } } } return("-----"); }
/// <summary> /// メモリアルで表示するメッセージ情報を取得する /// </summary> /// <param name="cardMstId">マスターID</param> /// <returns>メッセージ情報</returns> public static CardMessageMstData GetCardMessageMstDataMemorial(Int32 cardMstId) { // メモリアルに表示されるテキストはこの番号が割り振られている const int MESSAGE_TYPE_MEMORIAL = 2410; CardMessageMstData findData = DBCardMessageMst.CardMessageMstDatas.Find( delegate(CardMessageMstData inData) { return(inData.messageType == MESSAGE_TYPE_MEMORIAL && inData.cardMstId == cardMstId); } ); return(findData); }
/// <summary> /// AFMからパースする /// </summary> public static void Parse(FluorineFx.ASObject bodyAsObject) { Object cardMessageMstObj = null; if (bodyAsObject.TryGetValue("cardMessageMst", out cardMessageMstObj)) { Object[] cardMessageMstObjs = (Object[])cardMessageMstObj; if (cardMessageMstObjs != null) { CardMessageMstDatas.Clear(); for (int i = 0; i < cardMessageMstObjs.Length; ++i) { FluorineFx.ASObject asObj = cardMessageMstObjs[i] as FluorineFx.ASObject; if (asObj != null) { CardMessageMstData data = new CardMessageMstData(); data.Parse(asObj); CardMessageMstDatas.Add(data); } } } } }
/// <summary> /// AFMからパースする /// </summary> public static void Parse(FluorineFx.ASObject bodyAsObject) { Object cardMessageMstObj = null; if (bodyAsObject.TryGetValue("cardMessageMst", out cardMessageMstObj)) { Object[] cardMessageMstObjs = (Object[])cardMessageMstObj; if (cardMessageMstObjs != null) { CardMessageMstDatas.Clear(); for (int i = 0; i < cardMessageMstObjs.Length; ++i) { FluorineFx.ASObject asObj = cardMessageMstObjs[i] as FluorineFx.ASObject; if (asObj != null) { CardMessageMstData data = new CardMessageMstData(); data.Parse(asObj); CardMessageMstDatas.Add(data); } } } } }