Combat/Mechanics: Difference between revisions
imported>Apparent1 No edit summary |
imported>Jamophoson |
||
| (27 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
{{For|information about the combat [[Skills|skill]]|Combat|R=This article is about combat mechanics.}} | |||
==Damage== | |||
In Stardew Valley, damage dealt to monsters is determined by a combination of weapon stats, rings, professions, and [[Luck]]. | |||
===Formula overview=== | |||
<code> | <code> | ||
FinalDamage = BaseDamage × CritMultiplier (if crit)<br> | FinalDamage = (BaseDamage × CritMultiplier (if crit)<br> | ||
+ Attack (stat) × 3<br> | + Attack (stat) × 3)<br> | ||
× FighterBonus (×1.1 if active)<br> | × FighterBonus (×1.1 if active)<br> | ||
× BruteBonus (×1.15 if active)<br> | × BruteBonus (×1.15 if active)<br> | ||
| Line 13: | Line 12: | ||
→ Modified by enchantments<br> | → Modified by enchantments<br> | ||
→ Reduced by monster defense</code> | → Reduced by monster defense</code> | ||
===Base damage roll=== | |||
* A random value is rolled between the weapon’s <samp>minDamage</samp> and <samp>maxDamage</samp>. | * A random value is rolled between the weapon’s <samp>minDamage</samp> and <samp>maxDamage</samp>. | ||
* Ruby forging increases | * [[Forge#Weapon forging|Ruby forging]] increases a weapon's <samp>minDamage</samp> and <samp>maxDamage</samp> by 10% per Ruby (up to 3)<ref name="rubyenchantment" />. Three Ruby forges would increase <samp>minDamage</samp> and <samp>maxDamage</samp> by 30% total. | ||
* [[Ruby Ring]]s and [[Iridium Band]]s affect <samp>minDamage</samp> and <samp>maxDamage</samp> by 10% per ring. These effects are multiplicative with the [[Forge#Weapon forging|Ruby forging]] increase<ref name="ringcrit" />. | |||
* This makes the effective <samp>minDamage</samp> and <samp>maxDamage</samp> formula <code>minDamage = weaponMinDamage × (100% + rubyForgeCount × 10%) × (100% + ringBonusPercent)</code>, where <samp>ringBonusPercent</samp> is the sum of all equipped ring effects which increase Attack by a percentage. If a player equipped two combined rings of [[Iridium Band]] and [[Ruby Ring]], <samp>ringBonusPercent</samp> would be <samp>10% (Ruby Ring) + 10% (Iridium Band) + 10% (Ruby Ring) + 10% (Iridium Band) = 40%</samp>. | |||
===Critical Hit Check=== | |||
* | * Base crit multiplier is <code>3x</code> | ||
* If a crit occurs, the base damage is multiplied by critMultiplier, which is calculated as: <code>critMultiplier = | * If a crit occurs, the base damage is multiplied by critMultiplier, which is calculated as: <code>critMultiplier = 3 + (CritPower / 50) × (1 + CriticalPowerMultiplier)</code> | ||
* | * <samp>CritPower</samp> is the total of the [[Crit. Power]] stat from [[Weapons]] and [[Forge#Weapon forging|Jade forging]]. | ||
* <samp>CriticalPowerMultiplier</samp> is the effects of buffs: [[Forge#Enchantments|Innate enchantments]] and [[Jade Ring]] | |||
===Attack Stat Bonus=== | |||
* The player’s Attack stat (from food, gear, enchantments) adds: <code>+3 damage per Attack point</code> | * The player’s Attack stat (from food, gear, and +Attack [[Forge#Enchantments|Innate enchantments]]) adds: <code>+3 damage per Attack point</code> | ||
===Profession Bonuses=== | |||
* Fighter: +10% damage | * Fighter: +10% damage | ||
* Brute: +15% damage | * Brute: +15% damage | ||
* These are applied multiplicatively and stack. | * These are applied multiplicatively and stack, so if both Fighter and Brute are active, the effective damage increase is <code>110% × 115% = 127%</code>. | ||
===Desperado Profession=== | |||
* If the hit is a critical strike and the player has the [[Skills#Combat|Desperado]] profession, damage is doubled. | |||
====Monster defense | ===Enchantments=== | ||
If a weapon is [[Forge#Combat enchantments|enchanted]] with Bug Slayer or Crusader and the damaged monster type matches the enchantment effect, damage is increased by 50%. | |||
===Monster defense=== | |||
Monster defense is subtracted from the damage roll. Damage is always at least 1, even after defense reduction. | Monster defense is subtracted from the damage roll. Damage is always at least 1, even after defense reduction. | ||
==Critical hit chance== | |||
===Calculation=== | |||
Critical hit chance is computed in the following order: | Critical hit chance is computed in the following order: | ||
'''Calculate weapon crit chance''' | |||
In 1.5, the [[Forge#Weapon forging|Aquamarine forging]] increases weapon critical hit chance by 4.6%<ref name="aquamarineenchantment" />. | |||
<code>CritChance = Base weapon crit. chance<ref name="weaponsxnb" /> + (4.6% × number of Aquamarine forges)</code> | |||
If weapon type is [[Weapons#Dagger|dagger]], <code>CritChance = (CritChance + 0.5%) × 1.12</code><ref name="dagger" /> | |||
'''Apply [[Aquamarine Ring]] and [[Forge#Innate enchantments|innate enchantments]]''' | |||
Each [[Aquamarine Ring|aquamarine ring]] equipped gives a 10% bonus.<ref name="ringcrit" /> | |||
If the weapon has a "+X Crit. Chance" [[Forge#Innate enchantments|innate enchantment]], then each enchantment level adds a 2% bonus (up to 6% for a level 3 enchantment). (The tooltip displays "+1 Crit. Chance" for a level 1 enchantment.) | |||
<code>CritChance = (CritChance × (1 + number of Aquamarine rings × 10% + Innate enchantment level × 2%)</code> | |||
'''Apply Blessing of Fangs bonus''' | |||
# | |||
If the Blessing of Fangs buff from [[Statue Of Blessings]] is active, Critical hit chance gets an additive increase of 10%. | |||
# | <code>CritChance = CritChance + 10%</code> | ||
A critical strike does additional damage to an enemy. A special sound plays when hitting a critical strike, and the damage numbers that pop up show the greater damage amount. | '''Apply Scout profession''' | ||
If the player has the Scout Profession, critical hit chance is increased by 50%.<ref name="scoutcode" /> | |||
<code>CritChance = CritChance × 150%</code> | |||
'''Apply Luck''' | |||
Critical hit chance is increased based on the player's [[Luck]]<ref name="luckcrit" />. | |||
<code>CritChance = LuckLevel * CritChance / 40</code> | |||
===Examples=== | |||
'''[[Galaxy Sword]] build''' | |||
* Aquamarine forging x3 | |||
* Aquamarine ring x2 | |||
* Blessing of Fangs | |||
* Scout profession | |||
* 2 Luck | |||
Calculation: | |||
# Weapon crit chance: <code>2% + (4.6% × 3 (Aquamarine forging)) = 15.8%</code> | |||
# Rings & innate enchantment: <code>15.8% × (1 + 10% × 2 (Aquamarine rings)) = 15.8% × 120% = 19.0%</code> | |||
# Blessing of Fangs: <code>19% + 10% = 29%</code> | |||
# Scout profession: <code>29% × 150% = 43.4%</code> | |||
# Luck: <code>43.4% + 2 (Luck) × 43.4% / 40 = 43.4% + 2.2 = 45.6%</code> | |||
==Critical hit damage== | |||
===Calculation=== | |||
A critical strike does additional damage to an enemy. A special sound plays when hitting a critical strike, and the damage numbers that pop up show the greater damage amount. A critical strike effectively multiplies the damage roll by a calculated value called <samp>CritMultiplier</samp>. Default crit multiplier is <code>3x</code> with the formula as follows: <code>CritMultiplier = 3 + (Crit. Power (stat) / 50) × (1 + Crit. Power Bonus)</code> | |||
Crit. Power | The [[Skills#Combat|Desperado]] Profession also affects the damage dealt by a Critical strike, doubling damage after bonus [[Attack]] damage has been added. ([[Attack]] stat is otherwise a "flat" bonus which is not increased by Critical strike bonuses.) | ||
[[Crit. Power]] (stat) can be found on: | |||
* [[Weapons]] | * [[Weapons]] | ||
* [[Forge#Combat enchantments|Jade enchantments]]: +5 Crit. Power per enchantment | * [[Forge#Combat enchantments|Jade enchantments]]: +5 Crit. Power per enchantment | ||
| Line 64: | Line 103: | ||
* [[Forge#Innate enchantments|Innate enchantments]]: +50% per enchantment level. A Crit. Power Innate enchantment shows as +25 "Crit. Power" per level, so a "+75 Crit. Power" tooltip represents a level 3 enchantment and thus increases Crit. Power Bonus by 150%. | * [[Forge#Innate enchantments|Innate enchantments]]: +50% per enchantment level. A Crit. Power Innate enchantment shows as +25 "Crit. Power" per level, so a "+75 Crit. Power" tooltip represents a level 3 enchantment and thus increases Crit. Power Bonus by 150%. | ||
Example: | ===Example=== | ||
* A normal attack using the [[Lava Katana]] can do 55-64 damage. Assume an attack rolls 60 damage. | |||
* A Lava Katana has 25 Crit. Power, so <code>CritMultiplier = 3 + (25 / 50) = 3.5</code> | |||
* If the Lava Katana was forged with 3 Jades, Crit. Power would be increased by 15, for a total of 40 (though it shows up as +39 ingame due to rounding errors). | |||
This means the damage would instead be <code>CritMultiplier = 3 + ((25 + 15) / 50) = 3 + (40 / 50) = 3.8</code>. | |||
* With 2 Jade Rings and a +75 Crit. Power (level 3) innate enchantment, Crit. Power Bonus would equal <code> (2 × 10% (Jade Ring)) + 150% (Innate enchantment) = 170% (1.7x)</code>, | |||
making <code>CritMultiplier = 3.8 × (100% + 170%) or 3.8 × (1 + 1.7) = 3.8 × 2.7 = 10.26</code>. | |||
* A base damage roll of 60 damage that was a critical strike with this setup would deal <code>60 × 10.26 = 615.6</code> damage. | |||
* The [[Skills#Combat|Desperado]] effectively doubles the damage again (after the Attack stat is applied), so the resulting damage would be <code>615.6 × 2 = 1231.2</code>. | |||
==Player defense== | |||
===Damage variance=== | |||
Monster damage varies by a random fluctuation between <samp>7/8</samp>ths and just below <samp>9/8</samp>ths of the [[Monsters|Monster]]'s base damage<ref name="farmerdamage" />. The formula can be expressed as follows: <code>minDamage <= actualDamage < maxDamage</code>, where <code>fluctuationDamage = int(monsterBaseDamage / 8)</code> and <code>minDamage = monsterBaseDamage - fluctuationDamage</code> and <code>maxDamage = monsterBaseDamage + fluctuationDamage</code>. | |||
Example: A [[Shadow Brute]] has a base damage of 18, so <code>fluctationDamage = 18 / 8 = 2.25 => 2</code>, meaning the actual damage ranges between <samp>16</samp> and <samp>19</samp>, because <samp>18 - 2 = 16</samp> and <samp>18 + 2 = 20</samp>, but the upper bound is less than <samp>20</samp> (not less than or equal). | |||
===Determining player defense=== | |||
Applicable defense is the player's [[Defense]] stat total from among [[Boots]], [[Weapons]], [[Rings]], [[Food]] buffs plus 1 if the player has read [[Jack Be Nimble, Jack Be Thick]]<ref name="farmerdamage"/>. | |||
If defense is greater than or equal to half the actual damage being dealt, defense is reduced by up to 20% <ref name="farmerdamage"/>. This causes a slight dampening of the defense stat in low-damage scenarios. If <code>defense >= damage / 2</code>, defense is reduced by either 0%, 10%, or 20% (randomly determined), using the following formula: <code>defenseReduction = int(defense × reductionPercent)</code>, <code>defense = defense - defenseReduction</code>. | |||
Example: A [[Duggy]] has a base damage of 6. If 6 damage would be dealt to a player with a [[Defense]] of 5, half of 6 damage is 3. Since <samp>5 (Defense) >= 3 (half damage)</samp>, defense could be lowered by up to 20%. <code>5 (Defense) × 20% = 1</code>, so in this scenario a player's effective defense could be reduced by up to 1. | |||
===Damage is applied=== | |||
Incoming damage is reduced by the applicable defense, to a minimum of <samp>1</samp><ref name="farmerdamage"/>. | |||
Example: 10 damage is dealt to a player with 6 defense. The player would take 4 damage, because <samp>10 - 6 = 4</samp>. | |||
==References== | |||
<references> | |||
<ref name="weaponsxnb">See <samp>weapons.xnb</samp> file in the game data.</ref> | |||
<ref name="rubyenchantment">See <samp>StardewValley::RubyEnchantment</samp>.</ref> | |||
<ref name="aquamarineenchantment">See <samp>StardewValley::AquamarineEnchantment</samp>.</ref> | |||
<ref name="dagger">See <samp>StardewValley::Tools::MeleeWeapon.DoDamage</samp>; the dagger weapon type is 1.</ref> | |||
<ref name="ringcrit">See <samp>StardewValley::Tools::MeleeWeapon.DoDamage</samp> and <samp>StardewValley::Objects::Ring</samp>.</ref> | |||
<ref name="scoutcode">See <samp>StardewValley::GameLocation.damageMonster</samp>.</ref> | |||
<ref name="luckcrit">See <samp>StardewValley::GameLocation.damageMonster</samp>; the formula does not edit the crit chance but luck level is added in the if statement to check for a crit.</ref> | |||
<ref name="farmerdamage">See <samp>StardewValley::StardewValley::Farmer.takeDamage()</samp>.</ref> | |||
</references> | |||
[[Category:Combat]] | |||
[[de:Kampf/Mechanik]] | |||
[[es:Combate/Mecánica]] | |||
[[fr:Combat/Mécaniques]] | |||
[[it:Combattimento/Meccaniche]] | |||
[[ja:戦闘/メカニクス]] | |||
[[ko:전투/메커니즘]] | |||
[[hu:Harc/Mechanika]] | |||
[[pt:Combate/Mecânica]] | |||
[[ru:Боевые навыки/Механика]] | |||
[[tr:Savaşma/Mekanikler]] | |||
[[zh:战斗/机制]] | |||
Latest revision as of 13:08, 6 September 2026
Damage
In Stardew Valley, damage dealt to monsters is determined by a combination of weapon stats, rings, professions, and Luck.
Formula overview
FinalDamage = (BaseDamage × CritMultiplier (if crit)
+ Attack (stat) × 3)
× FighterBonus (×1.1 if active)
× BruteBonus (×1.15 if active)
× DesperadoBonus (×2 if crit and active)
→ Modified by enchantments
→ Reduced by monster defense
Base damage roll
- A random value is rolled between the weapon’s minDamage and maxDamage.
- Ruby forging increases a weapon's minDamage and maxDamage by 10% per Ruby (up to 3)[1]. Three Ruby forges would increase minDamage and maxDamage by 30% total.
- Ruby Rings and Iridium Bands affect minDamage and maxDamage by 10% per ring. These effects are multiplicative with the Ruby forging increase[2].
- This makes the effective minDamage and maxDamage formula
minDamage = weaponMinDamage × (100% + rubyForgeCount × 10%) × (100% + ringBonusPercent), where ringBonusPercent is the sum of all equipped ring effects which increase Attack by a percentage. If a player equipped two combined rings of Iridium Band and Ruby Ring, ringBonusPercent would be 10% (Ruby Ring) + 10% (Iridium Band) + 10% (Ruby Ring) + 10% (Iridium Band) = 40%.
Critical Hit Check
- Base crit multiplier is
3x - If a crit occurs, the base damage is multiplied by critMultiplier, which is calculated as:
critMultiplier = 3 + (CritPower / 50) × (1 + CriticalPowerMultiplier) - CritPower is the total of the Crit. Power stat from Weapons and Jade forging.
- CriticalPowerMultiplier is the effects of buffs: Innate enchantments and Jade Ring
Attack Stat Bonus
- The player’s Attack stat (from food, gear, and +Attack Innate enchantments) adds:
+3 damage per Attack point
Profession Bonuses
- Fighter: +10% damage
- Brute: +15% damage
- These are applied multiplicatively and stack, so if both Fighter and Brute are active, the effective damage increase is
110% × 115% = 127%.
Desperado Profession
- If the hit is a critical strike and the player has the Desperado profession, damage is doubled.
Enchantments
If a weapon is enchanted with Bug Slayer or Crusader and the damaged monster type matches the enchantment effect, damage is increased by 50%.
Monster defense
Monster defense is subtracted from the damage roll. Damage is always at least 1, even after defense reduction.
Critical hit chance
Calculation
Critical hit chance is computed in the following order:
Calculate weapon crit chance
In 1.5, the Aquamarine forging increases weapon critical hit chance by 4.6%[3].
CritChance = Base weapon crit. chance[4] + (4.6% × number of Aquamarine forges)
If weapon type is dagger, CritChance = (CritChance + 0.5%) × 1.12[5]
Apply Aquamarine Ring and innate enchantments
Each aquamarine ring equipped gives a 10% bonus.[2]
If the weapon has a "+X Crit. Chance" innate enchantment, then each enchantment level adds a 2% bonus (up to 6% for a level 3 enchantment). (The tooltip displays "+1 Crit. Chance" for a level 1 enchantment.)
CritChance = (CritChance × (1 + number of Aquamarine rings × 10% + Innate enchantment level × 2%)
Apply Blessing of Fangs bonus
If the Blessing of Fangs buff from Statue Of Blessings is active, Critical hit chance gets an additive increase of 10%.
CritChance = CritChance + 10%
Apply Scout profession
If the player has the Scout Profession, critical hit chance is increased by 50%.[6]
CritChance = CritChance × 150%
Apply Luck
Critical hit chance is increased based on the player's Luck[7].
CritChance = LuckLevel * CritChance / 40
Examples
Galaxy Sword build
- Aquamarine forging x3
- Aquamarine ring x2
- Blessing of Fangs
- Scout profession
- 2 Luck
Calculation:
- Weapon crit chance:
2% + (4.6% × 3 (Aquamarine forging)) = 15.8% - Rings & innate enchantment:
15.8% × (1 + 10% × 2 (Aquamarine rings)) = 15.8% × 120% = 19.0% - Blessing of Fangs:
19% + 10% = 29% - Scout profession:
29% × 150% = 43.4% - Luck:
43.4% + 2 (Luck) × 43.4% / 40 = 43.4% + 2.2 = 45.6%
Critical hit damage
Calculation
A critical strike does additional damage to an enemy. A special sound plays when hitting a critical strike, and the damage numbers that pop up show the greater damage amount. A critical strike effectively multiplies the damage roll by a calculated value called CritMultiplier. Default crit multiplier is 3x with the formula as follows: CritMultiplier = 3 + (Crit. Power (stat) / 50) × (1 + Crit. Power Bonus)
The Desperado Profession also affects the damage dealt by a Critical strike, doubling damage after bonus Attack damage has been added. (Attack stat is otherwise a "flat" bonus which is not increased by Critical strike bonuses.)
Crit. Power (stat) can be found on:
- Weapons
- Jade enchantments: +5 Crit. Power per enchantment
Crit. Power Bonus is increased by:
- Jade Ring: +10% per ring
- Innate enchantments: +50% per enchantment level. A Crit. Power Innate enchantment shows as +25 "Crit. Power" per level, so a "+75 Crit. Power" tooltip represents a level 3 enchantment and thus increases Crit. Power Bonus by 150%.
Example
- A normal attack using the Lava Katana can do 55-64 damage. Assume an attack rolls 60 damage.
- A Lava Katana has 25 Crit. Power, so
CritMultiplier = 3 + (25 / 50) = 3.5 - If the Lava Katana was forged with 3 Jades, Crit. Power would be increased by 15, for a total of 40 (though it shows up as +39 ingame due to rounding errors).
This means the damage would instead be CritMultiplier = 3 + ((25 + 15) / 50) = 3 + (40 / 50) = 3.8.
- With 2 Jade Rings and a +75 Crit. Power (level 3) innate enchantment, Crit. Power Bonus would equal
(2 × 10% (Jade Ring)) + 150% (Innate enchantment) = 170% (1.7x),
making CritMultiplier = 3.8 × (100% + 170%) or 3.8 × (1 + 1.7) = 3.8 × 2.7 = 10.26.
- A base damage roll of 60 damage that was a critical strike with this setup would deal
60 × 10.26 = 615.6damage. - The Desperado effectively doubles the damage again (after the Attack stat is applied), so the resulting damage would be
615.6 × 2 = 1231.2.
Player defense
Damage variance
Monster damage varies by a random fluctuation between 7/8ths and just below 9/8ths of the Monster's base damage[8]. The formula can be expressed as follows: minDamage <= actualDamage < maxDamage, where fluctuationDamage = int(monsterBaseDamage / 8) and minDamage = monsterBaseDamage - fluctuationDamage and maxDamage = monsterBaseDamage + fluctuationDamage.
Example: A Shadow Brute has a base damage of 18, so fluctationDamage = 18 / 8 = 2.25 => 2, meaning the actual damage ranges between 16 and 19, because 18 - 2 = 16 and 18 + 2 = 20, but the upper bound is less than 20 (not less than or equal).
Determining player defense
Applicable defense is the player's Defense stat total from among Boots, Weapons, Rings, Food buffs plus 1 if the player has read Jack Be Nimble, Jack Be Thick[8].
If defense is greater than or equal to half the actual damage being dealt, defense is reduced by up to 20% [8]. This causes a slight dampening of the defense stat in low-damage scenarios. If defense >= damage / 2, defense is reduced by either 0%, 10%, or 20% (randomly determined), using the following formula: defenseReduction = int(defense × reductionPercent), defense = defense - defenseReduction.
Example: A Duggy has a base damage of 6. If 6 damage would be dealt to a player with a Defense of 5, half of 6 damage is 3. Since 5 (Defense) >= 3 (half damage), defense could be lowered by up to 20%. 5 (Defense) × 20% = 1, so in this scenario a player's effective defense could be reduced by up to 1.
Damage is applied
Incoming damage is reduced by the applicable defense, to a minimum of 1[8].
Example: 10 damage is dealt to a player with 6 defense. The player would take 4 damage, because 10 - 6 = 4.
References
- ↑ See StardewValley::RubyEnchantment.
- ↑ 2.0 2.1 See StardewValley::Tools::MeleeWeapon.DoDamage and StardewValley::Objects::Ring.
- ↑ See StardewValley::AquamarineEnchantment.
- ↑ See weapons.xnb file in the game data.
- ↑ See StardewValley::Tools::MeleeWeapon.DoDamage; the dagger weapon type is 1.
- ↑ See StardewValley::GameLocation.damageMonster.
- ↑ See StardewValley::GameLocation.damageMonster; the formula does not edit the crit chance but luck level is added in the if statement to check for a crit.
- ↑ 8.0 8.1 8.2 8.3 See StardewValley::StardewValley::Farmer.takeDamage().