fix: dispersion traverse

This commit is contained in:
TrèsAbhi committed 2024-10-18 11:20:52 -05:00
1 parent 458915473c
commit f673aefb8f
4 files changed
+13 -18

No files matched your search

@@ -1,4 +1,3 @@
import { createDefaultSkills, fetchSkillDefinitions } from '@blitzkit/core';
import { InfoCircledIcon } from '@radix-ui/react-icons'; import { InfoCircledIcon } from '@radix-ui/react-icons';
import { import {
Button, Button,
@@ -13,20 +12,10 @@ import { TankopediaEphemeral } from '../../../../stores/tankopediaEphemeral';
import { CrewSkillManager } from '../../../CrewSkillManager'; import { CrewSkillManager } from '../../../CrewSkillManager';
import { ConfigurationChildWrapper } from './ConfigurationChildWrapper'; import { ConfigurationChildWrapper } from './ConfigurationChildWrapper';
const skillDefinitions = await fetchSkillDefinitions();
export function Skills() { export function Skills() {
const skillLevels = TankopediaEphemeral.use((state) => state.skills); const skillLevels = TankopediaEphemeral.use((state) => state.skills);
const mutateTankopediaTemporary = TankopediaEphemeral.useMutation(); const mutateTankopediaTemporary = TankopediaEphemeral.useMutation();
if (Object.keys(skillLevels).length === 0) {
mutateTankopediaTemporary((draft) => {
draft.skills = createDefaultSkills(skillDefinitions);
});
return null;
}
return ( return (
<ConfigurationChildWrapper> <ConfigurationChildWrapper>
<Flex gap="4" align="center"> <Flex gap="4" align="center">
@@ -18,7 +18,6 @@ export function HeroSection() {
const isFullScreen = useFullScreen(); const isFullScreen = useFullScreen();
const protagonist = Duel.use((state) => state.protagonist.tank); const protagonist = Duel.use((state) => state.protagonist.tank);
const Icon = classIcons[protagonist.class]; const Icon = classIcons[protagonist.class];
// const [dummyLoader, setDummyLoader] = useState(true);
const treeColor = const treeColor =
protagonist.type === TankType.COLLECTOR protagonist.type === TankType.COLLECTOR
? 'blue' ? 'blue'
@@ -414,7 +414,7 @@ export function tankCharacteristics(
gun.gun_type!.value.base.dispersion_base * dispersionStillCoefficient; gun.gun_type!.value.base.dispersion_base * dispersionStillCoefficient;
const dispersionMoving = track.dispersion_move * dispersionMovingCoefficient; const dispersionMoving = track.dispersion_move * dispersionMovingCoefficient;
const dispersionHullTraversing = const dispersionHullTraversing =
track.traverse_speed * dispersionHullTraverseCoefficient; track.dispersion_traverse * dispersionHullTraverseCoefficient;
const dispersionTurretTraversing = const dispersionTurretTraversing =
gun.gun_type!.value.base.dispersion_traverse * gun.gun_type!.value.base.dispersion_traverse *
dispersionTurretTraverseCoefficient; dispersionTurretTraverseCoefficient;
@@ -1,4 +1,8 @@
import type { ModelDefinition } from '@blitzkit/core'; import {
createDefaultSkills,
fetchSkillDefinitions,
type ModelDefinition,
} from '@blitzkit/core';
import type { Vector3 } from 'three'; import type { Vector3 } from 'three';
import { create } from 'zustand'; import { create } from 'zustand';
import { subscribeWithSelector } from 'zustand/middleware'; import { subscribeWithSelector } from 'zustand/middleware';
@@ -89,15 +93,18 @@ interface TankopediaEphemeral {
xpMultiplier: (typeof XP_MULTIPLIERS)[number]; xpMultiplier: (typeof XP_MULTIPLIERS)[number];
} }
const skillDefinitions = await fetchSkillDefinitions();
export const TankopediaEphemeral = createContextualStore( export const TankopediaEphemeral = createContextualStore(
(model: ModelDefinition) => (model: ModelDefinition) => {
create<TankopediaEphemeral>()( return create<TankopediaEphemeral>()(
subscribeWithSelector<TankopediaEphemeral>(() => ({ subscribeWithSelector<TankopediaEphemeral>(() => ({
editStatic: false, editStatic: false,
skills: {}, skills: createDefaultSkills(skillDefinitions),
model, model,
controlsEnabled: true, controlsEnabled: true,
xpMultiplier: 1, xpMultiplier: 1,
})), })),
), );
},
); );