diff --git a/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx b/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx
index 888238b00..5e1611491 100644
--- a/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx
+++ b/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx
@@ -112,7 +112,14 @@ export function Characteristics() {
Fire
{GUN_TYPE_NAMES[gun.type]}
- {resolveDpm(gun, shell, hasRammer, hasShellReloadBoost)}
+ {resolveDpm(
+ gun,
+ shell,
+ hasRammer,
+ hasShellReloadBoost,
+ hasAdrenaline,
+ hasTungsten,
+ )}
{gun.type === 'autoReloader' && (
<>
diff --git a/src/core/blitzkrieg/resolveDpm.ts b/src/core/blitzkrieg/resolveDpm.ts
index dba994237..e7faaf51c 100644
--- a/src/core/blitzkrieg/resolveDpm.ts
+++ b/src/core/blitzkrieg/resolveDpm.ts
@@ -5,19 +5,27 @@ export function resolveDpm(
shell: ShellDefinition,
hasRammer = false,
hasShellReloadBoost = false,
+ hasAdrenaline = false,
+ hasTungsten = false,
) {
+ const alpha = shell.damage.armor * (hasTungsten ? 1.15 : 1);
+
if (gun.type === 'regular') {
- return (shell.damage.armor / ((hasRammer ? 0.93 : 1) * gun.reload)) * 60;
+ return (
+ (alpha /
+ ((hasRammer ? 0.93 : 1) * (hasAdrenaline ? 0.8 : 1) * gun.reload)) *
+ 60
+ );
} else if (gun.type === 'autoLoader') {
return (
- ((shell.damage.armor * gun.count) /
+ ((alpha * gun.count) /
(gun.reload +
(gun.count - 1) * gun.interClip * (hasShellReloadBoost ? 0.7 : 1))) *
60
);
} else {
return (
- ((shell.damage.armor * gun.count) /
+ ((alpha * gun.count) /
(gun.reload.reduce((a, b) => a + b, 0) +
(gun.count - 1) * gun.interClip)) *
60