//計算クラス********************************************************************************************************* /// <summary> /// タイプ相性計算 /// </summary> /// <param name="AttackType"></param> /// <param name="EnemyPokemonNo"></param> /// <returns></returns> public static double TypeBairituCalc(eTypeNo AttackType, int EnemyPokemonNo) { double dRet; try { //基本計算 //タイプ1、タイプ2 var xtypeNo = MASTER_TYPE_LIST.Single(r => r.M_TYPENO == AttackType).M_TYPENO; //攻撃側タイプ var y = MASTER_POKEMON_LIST.Single(r => r.M_POKENO == EnemyPokemonNo); //防御側ポケモンデータ var ytype1No = MASTER_TYPE_LIST.Single(r => r.M_TYPENO == y.M_TYPE_1).M_TYPENO; //防御側タイプ1 var ytype2No = MASTER_TYPE_LIST.Single(r => r.M_TYPENO == y.M_TYPE_2).M_TYPENO; //防御側タイプ2 dRet = _Master_Common.GetTypeBairitu(xtypeNo, ytype1No) * _Master_Common.GetTypeBairitu(xtypeNo, ytype2No); //特殊な技(じゅうりょく、はねやすめ、みずびだし、もりののろい) //特殊な特性(よびみず、ひらいしん、ちょすい、かんそうはだ、そうしょく、もらいびetc) return(dRet); } catch (Exception ex) { OutputErrorLog(sErrorPlace, ex.Message.ToString()); return(-1); } }
/// <summary> /// タイプ倍率変換 /// </summary> /// <param name="OFFeNo">攻撃側タイプ</param> /// <param name="DEFeNo">防御側タイプ</param> /// <returns></returns> public static double GetTypeBairitu(eTypeNo OFFeNo, eTypeNo DEFeNo) { var z = _Master_Data.MASTER_TYPE_LIST.Single(r => r.M_TYPENO == OFFeNo); switch (DEFeNo) { case eTypeNo.M_NORMAL: return(z.M_NORMAL); case eTypeNo.M_HONOO: return(z.M_HONOO); case eTypeNo.M_MIZU: return(z.M_MIZU); case eTypeNo.M_DENKI: return(z.M_DENKI); case eTypeNo.M_KUSA: return(z.M_KUSA); case eTypeNo.M_KOORI: return(z.M_KOORI); case eTypeNo.M_KAKUTOU: return(z.M_KAKUTOU); case eTypeNo.M_DOKU: return(z.M_DOKU); case eTypeNo.M_JIMEN: return(z.M_JIMEN); case eTypeNo.M_HIKOU: return(z.M_HIKOU); case eTypeNo.M_ESP: return(z.M_ESP); case eTypeNo.M_MUSI: return(z.M_MUSI); case eTypeNo.M_IWA: return(z.M_IWA); case eTypeNo.M_GHOST: return(z.M_GHOST); case eTypeNo.M_DRAGON: return(z.M_DRAGON); case eTypeNo.M_AKU: return(z.M_AKU); case eTypeNo.M_HAGANE: return(z.M_HAGANE); case eTypeNo.M_FAIRY: return(z.M_FAIRY); } OutputErrorLog(sErrorPlace, "異常な値"); return(-1); }