diff --git a/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx b/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx index ff3d44f77..6cf348687 100644 --- a/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx +++ b/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx @@ -40,7 +40,7 @@ export function HeroSection({ id }: HeroSectionProps) { const entries = Object.values(awaitedTankDefinitions); const filtered = entries.filter((thisTank) => thisTank.tier === tank.tier); const value = - filtered.reduce((accumulator, thisTank) => { + (filtered.reduce((accumulator, thisTank) => { return ( accumulator + resolveNearPenetration( @@ -48,7 +48,8 @@ export function HeroSection({ id }: HeroSectionProps) { ) ); }, 0) / - ((4 / 3) * filtered.length); + filtered.length) * + (3 / 4); return { value } satisfies ThicknessRange; }, [tank.tier]); diff --git a/src/app/tools/tankopedia/[id]/components/Thicknesses.tsx b/src/app/tools/tankopedia/[id]/components/Thicknesses.tsx index f80741e32..4c2c289a5 100644 --- a/src/app/tools/tankopedia/[id]/components/Thicknesses.tsx +++ b/src/app/tools/tankopedia/[id]/components/Thicknesses.tsx @@ -50,7 +50,7 @@ export function Thicknesses({ thicknessRange }: ThicknessesProps) { > - {thicknessRange.value.toFixed(0)} + {(thicknessRange.value * 1.5).toFixed(0)} {showPrimaryArmor ? : } @@ -66,7 +66,7 @@ export function Thicknesses({ thicknessRange }: ThicknessesProps) { style={{ borderRadius: 'var(--radius-full)', overflow: 'hidden', - background: `linear-gradient(rgb(255, 0, 0), rgb(0, 255, 0))`, + background: `linear-gradient(rgb(128, 0, 0), rgb(255, 0, 0) 33%, rgb(0, 255, 0))`, }} /> diff --git a/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx b/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx index 2275b069c..ea01afec1 100644 --- a/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx +++ b/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx @@ -32,10 +32,6 @@ import { ArmorType } from '../SpacedArmorScene'; import { SpacedArmorSubExternal } from './components/SpacedArmorSubExternal'; import { SpacedArmorSubSpaced } from './components/SpacedArmorSubSpaced'; -function to255(value: number) { - return Math.round(255 * value); -} - type SpacedArmorSceneComponentProps = { node: Object3D; thickness: number; @@ -100,7 +96,7 @@ export function SpacedArmorSceneComponent({ const camera = useThree((state) => state.camera); if (props.static) { - const x = clamp(thickness / props.thicknessRange.value, 0, 1); + const x = thickness / props.thicknessRange.value; let color: Color; let opacity: number; @@ -108,13 +104,21 @@ export function SpacedArmorSceneComponent({ switch (props.type) { case ArmorType.Primary: - color = new Color(-((1 - x) ** 2) + 1, -(x ** 2) + 1, 0); + if (x > 1) { + color = new Color(Math.max(2 - x, 0.5), 0, 0); + } else { + color = new Color(-((1 - x) ** 2) + 1, -(x ** 2) + 1, 0); + } opacity = 1; break; case ArmorType.Spaced: - color = new Color(1 - (7 / 8) * x, 0, 1 - (1 / 8) * x); - opacity = x + 1 / 2; + color = new Color( + clamp(1 - (7 / 8) * x, 0, 1), + 0, + clamp(1 - (1 / 8) * x, 0, 1), + ); + opacity = clamp(x + 1 / 2, 0, 1); break; case ArmorType.External: