鋼鐵雄心 4 陸軍傷害計算公式一覽

6 7 月

廣告

作者:inkit

來源:3DM

雖然遊戲中用了亂數,而隨機實際上是一種概率模型。遊戲中,陸軍戰鬥中,會取 1~4 的亂數來計算每回合(小時)的傷害。而1~4的隨機是等概率隨機,也就是理論上roll 10000次,roll到1、2、3、4的次數是相同的。均為2500次。因此可以很簡單做一個計算:(1+2+3+4)÷4 = 2.5。

它的意思就是隨機1~4,多次積累下來的總數,平均每次為2.5。

本文針對的是組織度的計算,針對強度是同理的,無非將這個為2.5的亂數變為1.5再進行計算。

名詞解釋

名稱 解釋
軟攻 對軟度部分的攻擊能力
硬攻 對硬度部分的攻擊能力
防禦 防禦方的防禦力
突破 進攻方的防禦力
護甲 護甲>穿甲則受到傷害×50%,並且對於裝甲部隊來說會有額外傷害加成
穿甲 穿透護甲的能力
組織度 組織度為0則會退出戰鬥
硬度 軟度 + 硬度 = 1。影響部隊受到攻擊類型的比例

傷害計算

1、戰鬥時分為攻擊方與防禦方。

2、攻擊力:無論攻擊或防禦,都會用到軟攻、硬攻來計算攻擊力。

3、防禦力:進攻方的防禦力是突破,完全用不到防禦。防禦方的防禦力是防禦,完全用不到突破。

4、根據單位的軟度/硬度分別計算受到的軟攻/硬攻傷害部分。

模型

一個模型可以有很多種表達方式,在此使用一種便於想像的模型來表述

將攻擊力看作攻擊次數,防禦力看作防禦次數。雙方每小時(稱為回合)進行一次交火,會執行相應次數的攻擊與防禦。假設具體數值如下:

攻擊力 防禦 突破
進攻方 100 0 100
防禦方 40 20 200

進攻方造成組織度傷害

00_defines.lua 中有如下定義:

LAND_COMBAT_ORG_DICE_SIZE = 4

LAND_COMBAT_ORG_DAMAGE_MODIFIER = 0.05

BASE_CHANCE_TO_AVOID_HIT = 90

CHANCE_TO_AVOID_HIT_AT_NO_DEF = 60

進攻方攻擊力為100,攻擊了100次,而防禦方防禦只有20,只進行了20次有效防禦,另外80次攻擊受到無防禦時傷害。

有防禦時傷害:有效防禦發生時,每次攻擊受到的傷害為 (亂數1~4可以當做期望值為2.5):

亂數×有效防禦時被命中率×基本係數= LAND_COMBAT_ORG_DICE_SIZE×(1-BASE_CHANCE_TO_AVOID_HIT)×LAND_COMBAT_ORG_DAMAGE_MODIFIER=2.5×10%×0.05=0.0125

無防禦時傷害:當防禦次數耗盡時會受到無防禦攻擊,此時傷害為:

亂數×無防禦時被命中率×基本係數=LAND_COMBAT_ORG_DICE_SIZE×(1-CHANCE_TO_AVOID_HIT_AT_NO_DEF)×LAND_COMBAT_ORG_DAMAGE_MODIFIER=2.5×40%×0.05=0.05

因此防禦方受到傷害為

20×0.0125+(100-20)×0.05=0.25+4=4.25

防禦方造成組織度傷害

1、防禦方攻擊力僅40,進攻方突破為100。因此防禦方對進攻方的攻擊是全部處於有效防禦範圍內的。

2、一回合內40次攻擊總傷害為:40×0.0125=0.5。

裝甲單位傷害額外加成

defines中有一個參數

LAND_COMBAT_ORG_ARMOR_ON_SOFT_DICE_SIZE=6

遊戲中單位分為裝甲單位和非裝甲單位。被分為裝甲類型的單位,在攻擊時在軟攻方面有額外加成。

觸發此加成有個條件:敵方的穿甲值不高於本方護甲值。

無視目標單位類型,無論是裝甲單位還是非裝甲單位,只要滿足上面這些條件,就可以觸發加成。

效果是: 傷害計算公式中的亂數最大值從4變為6。 但此傷害只作用於目標的軟度部分。

亂數1~6的期望值為3.5。

我們繼續使用之前的例子,並添加一些參數:

1、進攻方使用的是裝甲單位。

2、防禦方使用的是軟度100%的單位。

3、防禦方的穿甲不能穿透進攻方的護甲。

此時進攻方的傷害能力產生了變化:

1、每回合有效防禦傷害:3.5×10%×0.05=0.0175。

2、每回合無防禦時傷害:3.5×40%×0.05=0.7。

3、實際就是 有裝甲單位傷害額外加成的單位 對非裝甲部分能造成1.4倍的傷害。

軟度/硬度

為了便於理解,只考慮一方的進攻力與另一方的防禦力。

軟攻 硬攻 防禦 硬度
攻擊方 1000 200
防禦方 500 70%

軟攻攻擊硬度70%的單位,只有30%的攻擊有效,即1000×30%=300 次。

硬攻攻擊硬度70%的單位,只有70%的攻擊有效,即200×70%=140 次。

此時總攻擊次數為:300+140=440 次。

因為防禦方防禦為500,因此所有傷害均為有效防禦傷害:0.0125。

總傷害:440×0.0125=5.5。

若防禦方防禦為200有效防禦傷害+無防禦傷害200×0.0125+240×0.05=2.5+12=14.5

若進攻方有裝甲傷害額外加成,防禦方防禦依然為200

此時需將軟攻造成的傷害和硬攻造成的傷害分開計算。

軟攻傷害部分+硬攻傷害部分14.5×(300/440)×1.4+14.5×(140/440)×1=13.84+4.61=18.45

或從頭計算

( 有效防禦軟傷害+無防禦軟傷害 )×1.4+(有效防禦硬傷害+無防禦硬傷害)×1[300/440×200×0.0125+300/440×(440-200)×0.05]×1.4+[140/440×200×0.0125+140/440×(440-200)×0.05]×1

 


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。