mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 02:37:05 +02:00
feat: move fire to first
This commit is contained in:
1 parent
4206286c21
commit
a8a50ac948
2 files changed
+138
-138
No files matched your search
@@ -69,78 +69,6 @@ export function Characteristics() {
|
||||
|
||||
return (
|
||||
<Flex direction="column" gap="4" style={{ width: '100%' }}>
|
||||
<Flex direction="column" gap="2">
|
||||
<Heading size="5">Survivability</Heading>
|
||||
<InfoWithDelta name="Health" unit="hp">
|
||||
{(tank.health + turret.health) * (hasImprovedAssembly ? 1.06 : 1)}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta name="Fire chance" unit="%" deltaType="lowerIsBetter">
|
||||
{Math.round(engine.fireChance * 100)}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta name="View range" unit="m">
|
||||
{turret.viewRange *
|
||||
(hasImprovedOptics
|
||||
? tank.type === 'tankDestroyer'
|
||||
? 1.05
|
||||
: tank.type === 'heavy'
|
||||
? 1.07
|
||||
: 1.1
|
||||
: 1)}
|
||||
</InfoWithDelta>
|
||||
<Info name="Camouflage" unit="%" />
|
||||
<InfoWithDelta
|
||||
indent
|
||||
name="Still"
|
||||
decimals={2}
|
||||
deltaType="lowerIsBetter"
|
||||
>
|
||||
{tank.camouflage.still *
|
||||
100 *
|
||||
(hasCamouflageNet
|
||||
? tank.type === 'heavy'
|
||||
? 1.03
|
||||
: tank.type === 'tankDestroyer'
|
||||
? 1.07
|
||||
: 1.05
|
||||
: 1)}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta
|
||||
indent
|
||||
name="Moving"
|
||||
decimals={2}
|
||||
deltaType="lowerIsBetter"
|
||||
>
|
||||
{tank.camouflage.moving * 100}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta
|
||||
indent
|
||||
name="Shooting still"
|
||||
decimals={2}
|
||||
deltaType="lowerIsBetter"
|
||||
>
|
||||
{tank.camouflage.still * gun.camouflageLoss * 100}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta
|
||||
indent
|
||||
name="Shooting on move"
|
||||
decimals={2}
|
||||
deltaType="lowerIsBetter"
|
||||
>
|
||||
{tank.camouflage.moving * gun.camouflageLoss * 100}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta
|
||||
indent
|
||||
name="On fire"
|
||||
decimals={2}
|
||||
deltaType="lowerIsBetter"
|
||||
>
|
||||
{tank.camouflage.onFire * tank.camouflage.still * 100}
|
||||
</InfoWithDelta>
|
||||
<Info name="Size" unit="m">
|
||||
{size[0].toFixed(2)} x {size[2].toFixed(2)} x {size[1].toFixed(2)}
|
||||
</Info>
|
||||
</Flex>
|
||||
|
||||
<Flex direction="column" gap="2">
|
||||
<Heading size="5">Fire</Heading>
|
||||
<Info name="Gun type">{GUN_TYPE_NAMES[gun.type]}</Info>
|
||||
@@ -481,6 +409,78 @@ export function Characteristics() {
|
||||
(hasImprovedControl ? 1.1 : 1)}
|
||||
</InfoWithDelta>
|
||||
</Flex>
|
||||
|
||||
<Flex direction="column" gap="2">
|
||||
<Heading size="5">Survivability</Heading>
|
||||
<InfoWithDelta name="Health" unit="hp">
|
||||
{(tank.health + turret.health) * (hasImprovedAssembly ? 1.06 : 1)}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta name="Fire chance" unit="%" deltaType="lowerIsBetter">
|
||||
{Math.round(engine.fireChance * 100)}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta name="View range" unit="m">
|
||||
{turret.viewRange *
|
||||
(hasImprovedOptics
|
||||
? tank.type === 'tankDestroyer'
|
||||
? 1.05
|
||||
: tank.type === 'heavy'
|
||||
? 1.07
|
||||
: 1.1
|
||||
: 1)}
|
||||
</InfoWithDelta>
|
||||
<Info name="Camouflage" unit="%" />
|
||||
<InfoWithDelta
|
||||
indent
|
||||
name="Still"
|
||||
decimals={2}
|
||||
deltaType="lowerIsBetter"
|
||||
>
|
||||
{tank.camouflage.still *
|
||||
100 *
|
||||
(hasCamouflageNet
|
||||
? tank.type === 'heavy'
|
||||
? 1.03
|
||||
: tank.type === 'tankDestroyer'
|
||||
? 1.07
|
||||
: 1.05
|
||||
: 1)}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta
|
||||
indent
|
||||
name="Moving"
|
||||
decimals={2}
|
||||
deltaType="lowerIsBetter"
|
||||
>
|
||||
{tank.camouflage.moving * 100}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta
|
||||
indent
|
||||
name="Shooting still"
|
||||
decimals={2}
|
||||
deltaType="lowerIsBetter"
|
||||
>
|
||||
{tank.camouflage.still * gun.camouflageLoss * 100}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta
|
||||
indent
|
||||
name="Shooting on move"
|
||||
decimals={2}
|
||||
deltaType="lowerIsBetter"
|
||||
>
|
||||
{tank.camouflage.moving * gun.camouflageLoss * 100}
|
||||
</InfoWithDelta>
|
||||
<InfoWithDelta
|
||||
indent
|
||||
name="On fire"
|
||||
decimals={2}
|
||||
deltaType="lowerIsBetter"
|
||||
>
|
||||
{tank.camouflage.onFire * tank.camouflage.still * 100}
|
||||
</InfoWithDelta>
|
||||
<Info name="Size" unit="m">
|
||||
{size[0].toFixed(2)} x {size[2].toFixed(2)} x {size[1].toFixed(2)}
|
||||
</Info>
|
||||
</Flex>
|
||||
</Flex>
|
||||
);
|
||||
}
|
||||
@@ -448,72 +448,6 @@ export function TankSearch({ compact, onSelect = () => {} }: TankSearchProps) {
|
||||
</DropdownMenu.SubContent>
|
||||
</DropdownMenu.Sub>
|
||||
|
||||
<DropdownMenu.Sub>
|
||||
<DropdownMenu.SubTrigger>Survivability</DropdownMenu.SubTrigger>
|
||||
<DropdownMenu.SubContent>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.health'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.health';
|
||||
});
|
||||
}}
|
||||
>
|
||||
Health
|
||||
</DropdownMenu.CheckboxItem>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.viewRange'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.viewRange';
|
||||
});
|
||||
}}
|
||||
>
|
||||
View range
|
||||
</DropdownMenu.CheckboxItem>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.camouflageStill'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.camouflageStill';
|
||||
});
|
||||
}}
|
||||
>
|
||||
Camouflage
|
||||
</DropdownMenu.CheckboxItem>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.camouflageMoving'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.camouflageMoving';
|
||||
});
|
||||
}}
|
||||
>
|
||||
Camouflage moving
|
||||
</DropdownMenu.CheckboxItem>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.camouflageShooting'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.camouflageShooting';
|
||||
});
|
||||
}}
|
||||
>
|
||||
Camouflage shooting
|
||||
</DropdownMenu.CheckboxItem>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.size'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.size';
|
||||
});
|
||||
}}
|
||||
>
|
||||
Size
|
||||
</DropdownMenu.CheckboxItem>
|
||||
</DropdownMenu.SubContent>
|
||||
</DropdownMenu.Sub>
|
||||
|
||||
<DropdownMenu.Sub>
|
||||
<DropdownMenu.SubTrigger>Fire</DropdownMenu.SubTrigger>
|
||||
<DropdownMenu.SubContent>
|
||||
@@ -708,6 +642,72 @@ export function TankSearch({ compact, onSelect = () => {} }: TankSearchProps) {
|
||||
</DropdownMenu.SubContent>
|
||||
</DropdownMenu.Sub>
|
||||
|
||||
<DropdownMenu.Sub>
|
||||
<DropdownMenu.SubTrigger>Survivability</DropdownMenu.SubTrigger>
|
||||
<DropdownMenu.SubContent>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.health'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.health';
|
||||
});
|
||||
}}
|
||||
>
|
||||
Health
|
||||
</DropdownMenu.CheckboxItem>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.viewRange'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.viewRange';
|
||||
});
|
||||
}}
|
||||
>
|
||||
View range
|
||||
</DropdownMenu.CheckboxItem>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.camouflageStill'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.camouflageStill';
|
||||
});
|
||||
}}
|
||||
>
|
||||
Camouflage
|
||||
</DropdownMenu.CheckboxItem>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.camouflageMoving'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.camouflageMoving';
|
||||
});
|
||||
}}
|
||||
>
|
||||
Camouflage moving
|
||||
</DropdownMenu.CheckboxItem>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.camouflageShooting'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.camouflageShooting';
|
||||
});
|
||||
}}
|
||||
>
|
||||
Camouflage shooting
|
||||
</DropdownMenu.CheckboxItem>
|
||||
<DropdownMenu.CheckboxItem
|
||||
checked={sort.by === 'survivability.size'}
|
||||
onClick={() => {
|
||||
mutateTankopediaPersistent((draft) => {
|
||||
draft.sort.by = 'survivability.size';
|
||||
});
|
||||
}}
|
||||
>
|
||||
Size
|
||||
</DropdownMenu.CheckboxItem>
|
||||
</DropdownMenu.SubContent>
|
||||
</DropdownMenu.Sub>
|
||||
|
||||
<DropdownMenu.Separator />
|
||||
|
||||
<DropdownMenu.Label>Direction</DropdownMenu.Label>
|
||||
|
||||
Reference in new issue
Block a user