傷害
傷害是從某個實體的當前生命中所減去的生命值的數值。有眾多實體都可以造成它,最顯著的是武器、敵怪、和 NPC(以及所有相關的射彈)。此外,它也可能是由環境危險(例如多刺灌木、機關、或熔岩)和遊戲機制(例如掉落傷害、溺水、或減益)所造成的。通常只能對具有生命屬性的實體造成傷害,即玩家、大多數敵怪、和 NPC。大多數傷害還會對受傷害的實體造成擊退,並使實體變得短暫無敵。
當實體受到傷害時,在傷害實際應用於實體之前,會執行若干增減傷害量的計算(取決於多個因素;參見下文)。因此,任何造成傷害的實體的傷害屬性數據通常都只是其所造成的平均傷害。大多數打擊的傷害都會偏離此平均值。
玩家所持的武器所造成的傷害分為四種:近戰、遠程、魔法、和召喚。配飾、增益、和其他強化傷害或降低傷害的效果常常只會影響這些傷害類型其中之一。有幾種武器以及所有其他傷害性實體未被歸類為這四種類型中的任何一種。
傷害類型
近戰
近戰武器用於近程至中程戰鬥。它們的主要特徵是使用時不消耗彈藥或魔力。它們大致分為劍、矛、連枷、迴旋鏢、和悠悠球(電腦版、主機版、和移動版)。還有其他幾種近戰武器無法被分類到上述類型中。
總共有 190 種不同的近戰武器。
遠程
遠程武器用於遠距離戰鬥。它們的主要特徵是需要有彈藥才能使用此武器。它們大致可分為弓、連弩、槍、和發射器。所有消耗品武器也被分類為遠程武器。雖然迴旋鏢是丟出的,但泰拉瑞亞將它們歸類為近戰武器。
總共有 113 種不同的遠程武器。
魔法
魔法武器用於中程至遠程戰鬥。它們的主要特徵是每次使用時都會消耗魔力。由於它們有非同尋常的獨特攻擊形式,大部分魔法武器都難以對其進行分類。
總共有 77 種不同的魔法武器。
召喚
召喚武器包含召喚法杖和鞭(電腦版、主機版、和移動版)。使用召喚法杖會生成通過自動攻擊敵怪來在戰鬥中幫助玩家的次要角色。被召喚的角色要麼是可移動的,即跟隨玩家移動(僕從),要麼是靜止的,即停在其被召喚的位置(哨兵)。鞭是近程至中程武器,會提高僕從對被擊中的敵怪的傷害,且會將其標記,使得僕從集中攻擊這些敵怪。
在 1.4.4(電腦版、主機版、和移動版) 前,召喚傷害在大部分工具提示中被稱為「僕從傷害」。
總共有 47 種不同的召喚武器。
計算
武器傷害
首先,應用武器的修飾語的效果:
武器伤害 = 基础武器伤害 × 修饰语伤害倍率
之後,所有傷害獎勵(來自配飾、盔甲、增益、配飾的修飾語、坐騎,等等)會被添加到對應傷害類型(近戰、遠程、魔法、或召喚)的傷害倍率中。默認傷害倍率為 1,意味著武器在沒有任何獎勵時造成 100% 基礎傷害。[2]
- 例如,裝備遊俠徽章會使遠程傷害倍率增加 0.15;激活靈視增益會使魔法傷害倍率增加 0.05。
- 對於全體傷害獎勵(即「傷害提高x%」),獎勵數值會被增加到所有傷害類型中。例如,裝備毀滅者徽章會使近戰、遠程、魔法、和召喚傷害倍率均增加 0.1。
傷害值隨後使用下列公式計算,向下取整。
- 對於近戰、魔法、和召喚武器:[3]
最终伤害 = 武器伤害 × 对应伤害倍率
- 對於遠程武器,武器傷害和彈藥傷害傷害會分別計算:
在計算武器的傷害時,遠程傷害倍率會先被蘑菇礦盔甲頭盔和魔法箭袋及其升級的獎勵更改:[4]
- 此後計算武器傷害:
最终武器伤害 = 武器伤害 × 武器远程倍率
在計算武器的傷害時,首先會直接使用遠程傷害倍率:[5]
提高后的远程伤害 = 远程武器伤害 × 远程伤害倍率
蘑菇矿奖励
為 0.15;魔法箭袋會提供 0.1 的箭袋奖励
。
如果武器使用的彈藥物品造成高於 0 傷害且造成遠程傷害,遠程傷害倍率會直接用於計算其傷害:[6][7]
弹药伤害 = 基础弹药伤害× 远程伤害倍率
如果彈藥造成 0 傷害或更低(即擁有默認為 -1 的傷害值[8][9])或不造成遠程傷害,弹药伤害
將直接為彈藥物品的傷害值。因此,墜落之星、凝膠、和沙塊實際上會使最終傷害降低 1。
在檢查彈藥物品的傷害時,部分效果會提供额外伤害
,會直接加入傷害值中:[10][11]
最終傷害將會是武器傷害、彈藥傷害、和額外傷害的總和。如果激活了箭術增益且彈藥是箭或尖樁,最終傷害會被乘以 1.1(電腦版、主機版、和移動版) / 1.2(前代主機版、和3DS版):[10][11]
最终伤害 = (最终武器伤害 + 弹药伤害 + 额外伤害) × 箭术增益
此外,在遠程武器的工具提示中所示的傷害具有不同的公式:[12][13]
- (電腦版、主機版、和移動版)
工具提示伤害 = 武器伤害 × 武器远程倍率 × 箭术增益
- (前代主機版、和3DS版)
工具提示伤害 = 武器伤害 × 远程伤害倍率 × (1 + 蘑菇矿奖励 + 箭袋奖励) × 箭术增益
示例
神級彩虹貓之刃(電腦版、主機版、和移動版)、海龜盔甲、險惡戰士徽章、險惡復仇者徽章、險惡毀滅者徽章、險惡機械手套、險惡天界石、和吃得好增益。
神級葉綠連弩和木箭、使用蘑菇礦頭飾的蘑菇礦盔甲、險惡遊俠徽章、險惡復仇者徽章、險惡毀滅者徽章、險惡魔法箭袋、和箭術增益。
|
對實體的傷害
除了武器傷害以外,對實體造成的傷害會被許多其他因素影響:,附近是否有相關的敵怪旗、玩家的盔甲穿透、和目標的防禦,等等。下列公式被用於計算中:[14][15]
- 無旗幟時的傷害:
考虑旗帜后的伤害 = 最终伤害
; - 有旗幟時的傷害:
考虑旗帜后的伤害 = 系数 × 最终伤害
; - 計算傷害時,防禦的效果:
防御对伤害的减免量 = ⌈敌怪防御/2⌉
- 計算隨機的傷害浮動:
伤害浮动 = 伤害 × 系数2
,其中系数2
是 0.85 和 1.15 之間的隨機值(閉區間)。- 結果取整到最近的整數。如果小數部分為 0.5,則改為取整到最近的偶數。
遊戲使用不同的方法來決定近戰武器和射彈的傷害。[16]
近戰武器
- 應用旗幟的效果來獲得
考虑旗帜后的伤害
。計算使用的是上方計算得到的最终伤害
。 - 應用驚人一刻增益的效果,將
考虑旗帜后的伤害
乘以 5。 - 應用武器效果對傷害的影響(例:(電腦版、主機版、和移動版) 毀滅刃的效果)。
- 應用隨機傷害浮動。
- 應用盔甲穿透的效果。
- (前代主機版、和3DS版) 應用靈液減益的效果。
- 應用防禦的效果,從傷害中減去
防御对伤害的减免量
。若結果少於 1,將傷害設為 1。 - 若攻擊是暴擊,將傷害乘以 2。
- 如果目標是旋轉中的火月怪,將傷害乘以 3。[17]
射彈
- 計算射彈的基礎傷害,使用上方計算得到的
最终伤害
。默認情況下這等於最终伤害
,但對於隨著額外召喚來變強的僕從(例:星塵之龍),傷害則由其對應頁面上的公式計算得到。 - 應用隨機傷害浮動。
- 應用旗幟的效果來獲得
考虑旗帜后的伤害
。 - 若射彈是近戰射彈,應用驚人一刻增益的效果,將
考虑旗帜后的伤害
乘以 5。 - 應用盔甲穿透的效果。
- (前代主機版、和3DS版) 應用靈液減益的效果。
- 應用防禦的效果,從傷害中減去
防御对伤害的减免量
。若結果少於 1,將傷害設為 1。 - 若攻擊是暴擊,將傷害乘以 2。
- 如果目標是旋轉中的火月怪,將傷害乘以 3。[17]
坐騎
部分坐騎擁有其自己的攻擊方式(發射射彈)。其傷害計算和射彈的相同,但它們不受到傷害類型強化影響,且僅受到特定類型的暴擊率影響。沒有設定傷害類型的射彈無法造成暴擊。[18]
坐騎 | 基礎傷害 | 傷害類型 | |
---|---|---|---|
礦車升級包(電腦版、主機版、和移動版)(任何礦車) | 60 | 無 | |
鱗甲怪坐騎(電腦版、主機版、和移動版) | 150 | 無 | |
聖誕老人坦克坐騎(電腦版、主機版、和移動版)(子彈) | 100 | 遠程 | |
聖誕老人坦克坐騎(電腦版、主機版、和移動版)(火箭) | 120 | 遠程 |
特定的坐騎在接觸時會對實體造成傷害。其傷害計算如下(部分公式和上方的相同):[19]
- 若受召喚傷害影響,則將
基础伤害
乘以玩家的召喚傷害。 - 應用旗幟的效果。
- 應用盔甲穿透的效果。
- (前代主機版、和3DS版) 應用靈液減益的效果。
- 應用防禦的效果,從傷害中減去
防御对伤害的减免量
。若結果少於 1,將傷害設為 1。 - 如果目標是旋轉中的火月怪,將傷害乘以 3。[17]
- 注意沒有傷害浮動,且這些傷害不能造成暴擊。
坐騎 | 基礎傷害 | 受召喚傷害影響 | |
---|---|---|---|
史萊姆坐騎(電腦版、主機版、前代主機版、和移動版) | 40 | ✔️ | |
羽翼史萊姆坐騎(電腦版、主機版、和移動版) | |||
高爾夫球車(電腦版、主機版、和移動版)(撞上實體) | |||
高爾夫球車(電腦版、主機版、和移動版)(落到實體上) | 40 | ❌ | |
花馬坐騎(電腦版、主機版、和移動版) | 30 | ✔️ | |
駿馬坐騎(電腦版、主機版、和移動版) | |||
黑馬坐騎(電腦版、主機版、和移動版) | |||
獨角獸坐騎(電腦版、主機版、和移動版) | 60 | ✔️ | |
山羊坐騎(電腦版、主機版、和移動版) | |||
海盜船坐騎(電腦版、主機版、和移動版) | 100 | ✔️ | |
陰森樹坐騎(電腦版、主機版、和移動版) | 120 | ✔️ | |
蛇蜥怪坐騎(電腦版、主機版、和移動版) | 90 | ✔️ |
礦車
礦車造成的接觸傷害的計算如下:
- 通過礦車 § 備註中的公式計算基礎傷害。
- 應用隨機傷害浮動。
- 應用旗幟的效果。
- (前代主機版、和3DS版) 應用靈液減益的效果。
- 應用盔甲穿透的效果。
- 應用防禦的效果,從傷害中減去
防御对伤害的减免量
。若結果少於 1,將傷害設為 1。 - 如果目標是旋轉中的火月怪,將傷害乘以 3。[17]
另見
參考
- ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Item.cs
中的Prefix()
,Terraria.Player.cs
中的GetWeaponDamage()
,Terraria.Player.cs
中的GrantArmorBenefits()
,Terraria.Player.cs
中的GrantPrefixBenefits()
,Terraria.Player.cs
中的ItemCheck_Shoot()
,和Terraria.Player.cs
中的PickAmmo()
方法。 - ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Mount.cs
中的UpdateEffects()
,Terraria.Player.cs
中的ApplyEquipFunctional()
,Terraria.Player.cs
中的GrantArmorBenefits()
,和Terraria.Player.cs
中的GrantPrefixBenefits()
方法。 - ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Player.cs
中的ItemCheck()
,Terraria.Player.cs
中的GetWeaponDamage()
,和Terraria.Player.cs
中的ItemCheck_OwnerOnlyCode()
方法。 - ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Player.cs
中的ItemCheck()
和Terraria.Player.cs
中的GetWeaponDamage()
方法。 - ↑ 信息來自 電腦版 1.4.3.6 原始碼,
Terraria.Player.cs
中的ItemCheck()
和Terraria.Player.cs
中的GetWeaponDamage()
方法。 - ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Player.cs
中的ItemCheck()
,Terraria.Player.cs
中的GetWeaponDamage()
,Terraria.Player.cs
中的ItemCheck_OwnerOnlyCode()
,Terraria.Player.cs
中的ItemCheck_Shoot()
,和Terraria.Player.cs
中的PickAmmo()
方法。 - ↑ 信息來自 電腦版 1.4.3.6 原始碼,
Terraria.Player.cs
中的ItemCheck()
,Terraria.Player.cs
中的GetWeaponDamage()
,Terraria.Player.cs
中的ItemCheck_Shoot()
,和Terraria.Player.cs
中的PickAmmo()
方法。 - ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Item.cs
中的ResetStats()
方法。 - ↑ 信息來自 電腦版 1.4.3.6 原始碼,
Terraria.Item.cs
中的ResetStats()
方法。 - ↑ 10.0 10.1 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Player.cs
中的PickAmmo()
方法。 - ↑ 11.0 11.1 信息來自 電腦版 1.4.3.6 原始碼,
Terraria.Player.cs
中的PickAmmo()
方法。 - ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Main.cs
中的MouseText_DrawItemTooltip_GetLinesInfo()
方法。 - ↑ 信息來自 電腦版 1.4.3.6 原始碼,
Terraria.Main.cs
中的MouseText_DrawItemTooltip_GetLinesInfo()
方法。 - ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Player.cs
中的ApplyDamageToNPC()
和Terraria.NPC.cs
中的StrikeNPC()
方法。 - ↑ 信息來自 電腦版 1.4.3.6 原始碼,
Terraria.NPC.cs
中的StrikeNPC()
方法。 - ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Player.cs
中的ProcessHitAgainstNPC()
和Terraria.Player.cs
中的Damage()
方法。 - ↑ 17.0 17.1 17.2 17.3 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.NPC.cs
中的AI_003_Fighters()
方法。 - ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Projectile.cs
中的Damage()
,Terraria.Mount.cs
中的CastSuperCartLaser()
,和Terraria.Mount.cs
中的UseAbility()
方法。 - ↑ 信息來自 電腦版 1.4.4.9 原始碼,
Terraria.Player.cs
中的JumpMovement()
和Terraria.Player.cs
中的HorizontalMovement()
方法。