fix: dpm using adrelaine and tungesten

This commit is contained in:
TrèsAbhi committed 2024-02-16 10:25:15 -06:00
1 parent 2a70602f7e
commit ddf2c2b2ac
2 files changed
+19 -4

No files matched your search

@@ -112,7 +112,14 @@ export function Characteristics() {
<Heading size="5">Fire</Heading> <Heading size="5">Fire</Heading>
<Info name="Gun type">{GUN_TYPE_NAMES[gun.type]}</Info> <Info name="Gun type">{GUN_TYPE_NAMES[gun.type]}</Info>
<InfoWithDelta name="DPM" decimals={0} unit="hp / min"> <InfoWithDelta name="DPM" decimals={0} unit="hp / min">
{resolveDpm(gun, shell, hasRammer, hasShellReloadBoost)} {resolveDpm(
gun,
shell,
hasRammer,
hasShellReloadBoost,
hasAdrenaline,
hasTungsten,
)}
</InfoWithDelta> </InfoWithDelta>
{gun.type === 'autoReloader' && ( {gun.type === 'autoReloader' && (
<> <>
+11 -3
View File
@@ -5,19 +5,27 @@ export function resolveDpm(
shell: ShellDefinition, shell: ShellDefinition,
hasRammer = false, hasRammer = false,
hasShellReloadBoost = false, hasShellReloadBoost = false,
hasAdrenaline = false,
hasTungsten = false,
) { ) {
const alpha = shell.damage.armor * (hasTungsten ? 1.15 : 1);
if (gun.type === 'regular') { 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') { } else if (gun.type === 'autoLoader') {
return ( return (
((shell.damage.armor * gun.count) / ((alpha * gun.count) /
(gun.reload + (gun.reload +
(gun.count - 1) * gun.interClip * (hasShellReloadBoost ? 0.7 : 1))) * (gun.count - 1) * gun.interClip * (hasShellReloadBoost ? 0.7 : 1))) *
60 60
); );
} else { } else {
return ( return (
((shell.damage.armor * gun.count) / ((alpha * gun.count) /
(gun.reload.reduce((a, b) => a + b, 0) + (gun.reload.reduce((a, b) => a + b, 0) +
(gun.count - 1) * gun.interClip)) * (gun.count - 1) * gun.interClip)) *
60 60