feat: reactive armor

This commit is contained in:
TrèsAbhi committed 2024-04-09 10:35:32 -05:00
1 parent 511151e101
commit 69040dc453
3 files changed
+16 -7

No files matched your search

+11 -6
View File
@@ -75,15 +75,20 @@ export default function Page() {
const crewSkills = useCompareTemporary((state) => state.crewSkills);
const stats = useMemo(
() =>
members.map((item) =>
members.map((thisMember) =>
tankCharacteristics(
{
...item,
...thisMember,
crewSkills,
stockEngine: item.tank.engines[0],
stockGun: item.tank.turrets[0].guns[0],
stockTrack: item.tank.tracks[0],
stockTurret: item.tank.turrets[0],
stockEngine: thisMember.tank.engines[0],
stockGun: thisMember.tank.turrets[0].guns[0],
stockTrack: thisMember.tank.tracks[0],
stockTurret: thisMember.tank.turrets[0],
applyReactive: members.some(
(member) =>
member.key !== thisMember.key &&
member.consumables.includes(33),
),
},
{
equipmentDefinitions: awaitedEquipmentDefinitions,
@@ -86,6 +86,7 @@ export function Characteristics() {
stockGun,
stockTrack,
stockTurret,
applyReactive: false,
},
{
equipmentDefinitions: awaitedEquipmentDefinitions,
+4 -1
View File
@@ -38,6 +38,7 @@ export function tankCharacteristics(
stockTrack,
stockTurret,
stockGun,
applyReactive,
}: {
tank: TankDefinition;
turret: TurretDefinition;
@@ -55,6 +56,7 @@ export function tankCharacteristics(
provisions: number[];
crewSkills: Record<string, number>;
camouflage: boolean;
applyReactive: boolean;
},
{
modelDefinitions,
@@ -132,7 +134,8 @@ export function tankCharacteristics(
const crewMemberMastery = commanderMastery * 1.1;
const intraClipCoefficient = coefficient([hasShellReloadBoost, -0.3]);
const damageCoefficient = coefficient([hasTungsten, 0.15]);
const damageCoefficient =
coefficient([hasTungsten, 0.15]) * coefficient([applyReactive, -0.2]);
const reloadCoefficient =
(coefficient([hasRammer, -0.07]) *
coefficient([true, degressiveStat(crewMemberMastery)])) /