#author("2017-03-27T04:37:34+09:00","","")
*戦闘におけるダメージ計算方法 [#y45e7762]
#contents


- Ver 1.0.1.383時点
- 参考文献: [[The Mechanics of Combat - Civilization Fanatics' Forums>http://forums.civfanatics.com/showthread.php?t=432238]] (2011.7.21)
- 戦闘予測に表示される昇進や地形などの補正を受けたステータスをCSとする。


**ダメージ計算における基本 [#r5d1c828]
ダメージ計算において大事なのは戦闘力自体ではなく、相手との相対的な比率である。例えばCS4vs8の戦闘結果はCS40vs80と同じものになる。
目安として、同じ戦闘力のユニット同士の戦闘では4~7ダメージが発生する。ダメージは4~7の間で一様に分布し、平均ダメージは5.5となる。
戦闘力の比率が変化すると戦闘力の高いユニットへのダメージが減少し、低いユニットへのダメージが増加する。


**具体的なダメージ計算式 [#k99b9d50]
戦闘に伴うダメージは具体的に下記の計算式で求められる。


> r = ''CS(大)'' / ''CS(小)''
> ''m'' = 0.5 + ( r + 3 )^4 / 512
> 戦闘力(大)のユニットへの''最小ダメージ'' = 4 / ''m''
> 戦闘力(小)のユニットへの''最小ダメージ'' = 4 * ''m''
> ''ダメージ平均'' = ''最小ダメージ'' * 3 / 2 - 0.5
> ''最大ダメージ'' = floor( ''最小ダメージ'' * 2 )
> ''実際のダメージ'' = max( floor( ''最小ダメージ'' + random( 0, ''最小ダメージ'' ) ), 1 )


与えるダメージはさらに下記の補正を受ける(あくまで与えるダメージが変化するだけであり、受けるダメージは変化しない。)
- HPが満タンで無いユニット:1 - floor( damage / 2 ) / 10 (2ダメージごとに-10%)
- 都市:0.5


**実際の計算例 [#l2e3d458]
CS30vs22.5の直接戦闘を例に考えてみる。互いにHPは10とする。

> r = 30/22.5 = 4/3
> m = 0.5 + ( 4/3 + 3 )^4 / 512 = 1.19
> 戦闘力22.5のユニットへのダメージ:
> 最小:4.75、平均:6.63、最大:9、発生するダメージのばらつきと確率:4:5.2%、5~8:それぞれ21.0%。9:10.7%
> 戦闘力30のユニットへのダメージ:
> 最小:3.37、平均:4.55、最大:6、発生するダメージのばらつきと確率:3:18.9%、4~5:それぞれ29.7%、6:21.7%

表示される「与えたおおよそのダメージ」は7(6.63を四捨五入)と5(4.55を四捨五入)となる。
もし戦闘力30の側がユニットではなく都市であった場合、戦闘力22.5のユニットが与えるダメージは変わらないが、都市が与えるダメ―ジは最小が4.75から2.38になり、平均は6.63から3.07となる。


**戦闘力補正について [#sbc286cf]
全ての補正は足し合わされた後、戦闘力に適用される。例えば極端な不満による-33%の補正と、起伏の激しい地形による+25%の補正を受けるユニットは、最終的に戦闘力-8%の補正を受ける。
戦闘力補正に上限は無いが、下限は-90%である。また遠隔攻撃に関する昇進は直接戦闘にはなんら影響を及ぼさない。戦闘結果予想には表示されるが、戦闘力は補正されない。


**遠隔攻撃 [#cbf93f46]
遠隔攻撃によるダメージは、同じ条件の直接戦闘によるダメージの2/3弱である。ダメージ計算式は直接戦闘によるものと同様であるが、最小ダメージを求める際、4ではなく2を掛ける。
ダメージのばらつきについては直接戦闘と変わらず4である。例えば戦闘力6の弓兵から戦闘力6の戦士への攻撃は2~5ダメージとなり、それぞれのダメージが25%ずつの確率で発生し平均は3.5となる。

遠隔ユニットが遠隔攻撃を受ける時、戦闘力は遠隔攻撃力を参照する。ただし遠隔攻撃に関する昇進は、防御側の場合なんら影響を及ぼさない。戦闘予測画面には表示され、戦闘力も補正されているように見えるのだが、受けるダメージに変化は無い。
また遠隔攻撃ユニットが防御側の場合、CSに1.25倍の補正を受ける。例えば遠隔攻撃力15の弩兵が遠隔攻撃力6の弓兵に攻撃する場合、最終的な戦闘力比は2:1となる。
よって、遠隔攻撃ユニットへの遠隔攻撃(都市によるものを含む)はあまり効果的ではない。


**海軍ユニットの戦闘 [#xea5aa3f]
海軍ユニットが遠隔攻撃を受けた場合、直接戦闘力を参照する。1.25倍の補正は掛からない。
また海軍ユニットが海軍ユニットから遠隔攻撃を受けた場合、CSに0.4の補正が掛かる。よって、海軍ユニットへの攻撃は同じ海軍ユニットによる方が、他の遠隔攻撃ユニットによるものよりもはるかに効果的である。


**戦闘による死亡 [#yadf4f07]
双方のユニットの残りHPが少ない状態で直接戦闘した場合でも、必ずどちらかのユニットは生き残る。生き残った側のHPは常に1となる。前述のような場合、ダメージ計算は通常通り行われ、結果攻撃側の残りHPが防御側よりも多くなる場合、攻撃側が生き残る。双方の残りHPが同じとなるような場合には防御側が生き残るため、やや防御側に有利である。例えば同じ戦闘力のユニットが残りHP2の状態で戦闘した場合、攻撃側は3回に2回は負ける計算となる。
都市攻撃の場合、前述のルールは適用されず、都市のHPが0になる場合には、攻撃側ユニットは必ず生き残り都市を占領できる。
つまり残りHPの少ないユニットは、死ぬこと無くHPの残り少ない都市を占領出来る場面が多々あり、HP1の都市はどんな直接攻撃でも落ちるということである。

戦闘力比が十分に高い場合、直接戦闘によってはユニットを倒すことが出来なくなる。(逆に間接攻撃ならばどれだけの比であろうと可能である。)
例えば防御側が攻撃側の3.6倍程度の戦闘力を持つ場合(例えば長槍兵vs歩兵)、攻撃側は常に10ダメージを受け、防御側は1ダメージしか受けないため、結果防御側が常に生き残る。


**まとめ [#ib5d16d4]
戦闘するたびにダメージ計算を行っていたのでは大変なので、以下の大まかなルールを覚えておくと良い。
1:実際のダメージは予測された数値の2/3~4/3倍となる。ただし予測が1ならば多くて2ダメージ、逆に10と予測されたならば最低でも6ダメージ
2:HP9のユニットは10の状態と同じような戦闘結果をもたらす。受けたダメージによる戦闘力減少は2ごとに発生。
3:相手を必ず撃破するには戦闘力比が2.7以上必要。その場合必ず10ダメージを与え、たいていの場合受けるダメージは多くて2である。
4:直接戦闘ユニットには遠隔攻撃を、遠隔攻撃ユニットには直接戦闘を。
5:海軍ユニットを攻撃・破壊するのは海軍ユニットで。逆に相手の海軍ユニットから反撃を貰わないように。
6:双方のユニットが死亡するような戦闘の場合、攻撃側はダメージ計算の結果相手よりHPが多くなければ生き残れない。