交配レート

バージョン: industrialcraft-2-2.2.720-experimental

新版記事はこちら

準拠: industrialcraft-2_2.0.136-experimental GregTech-Addon4.02h

概要

2つの作物種(CropCard)の間で計算される整数値の近縁度(Ratio)であり、交配時に突然変異する作物の出現レートなどを決定する要素となる(TileEntityCrop#calculateRatioFor)。

この2つの作物種は攻め受けが存在し、逆にした場合は出現レートは異なる。作物種A・Bのうち、Aが突然変異する作物であり、Bが既に生えている作物である。

具体的なレートの計算値は、以下の記事に詳しい。

アルゴリズム

関連項目:

ic2/stat値
ic2/交配時にstat値の距離によるレート増減が正しく行われていないバグ

 

2つの作物種A・Bが与えられた時のレートの算出方法は、以下のような構造になっている。

まず、AとBが等しい場合、交配レートは500である。

それ以外の場合、

整数型変数valueを0で初期化し、

nが0から4までの間で、

A.stat(n)とB.stat(n)の値が、等しい場合には+3、1離れている場合には+1、2離れている場合には+0、3以上離れている場合には+2をvalueに加算する。

次に、AとBの持つ属性群(attributes)のうち、大文字小文字を同一視した文字列比較を行い、等しい場合にはvalueに5を加算する。

BのTierがAのTierよりも2以上低い場合、差分を2倍したものをvalueから引く。

BのTierがAのTierよりも4以上高い場合、差分をvalueから引く。

このvalueが非負の場合、valueが交配レートである。負の場合、交配レートは0になる。

性質

  • レートを上昇させる要因はstat値と属性の一致のみである。
  • レートの低下量はTierの差に比例するが、Tierが一定の近さにある場合はペナルティが0になる。
  • 一致しない属性がどれだけあってもペナルティはない。
  • 一つの作物種に同一の属性が複数設定されていた場合、重複してvalueに5を加算する。すなわち、AとBが異なる作物であり、属性群がそれぞれ{Red Red Red Red}と{Red Red Red}であった場合、valueは5を12回加算される。
  • stat値はどれほど離れていても-1までしかペナルティはないstat値にはペナルティは無い
  • 属性の一致は5の重みをもつ。それはstatがn=0から4まで軒並みボーナスが1上昇した場合に匹敵する。
  • stat値はIC2・GregTechの多くの作物で0の値を含んでいる。それはバグがなかったとしてもほとんどの交配において、Tierが近しい作物種ならばその作物を突然変異で出現させる可能性を含むことを意味する。
  • stat値と属性群の設定により、出現レートを0に設定することが容易であるstat値をどのようにしてもボーナスをいくらか発生させてしまうため、Tier値を極端に変化させない限りは出現レートを0にすることができない
  • 突然変異によりTierの高い作物を出現させることは、Tierの低い作物を出現させることよりもレートに2倍のペナルティを受ける。
  • stat値が完全に一致していた場合、valueの初期値は1015になる。これは、47高いTier値の作物を発生させる可能性があることを表している。
  • 属性が一致していた場合、1つの一致につき出現する可能性のあるTier値の限界を2.5上昇させる。

 

最終更新:2015年05月16日 03:11