feat: quick actions

This commit is contained in:
TrèsAbhi committed 2024-03-31 22:14:14 -05:00
1 parent 7b0465322d
commit 7727e64931
6 files changed
+114 -11

No files matched your search

@@ -1,4 +1,4 @@
import { Flex, Heading } from '@radix-ui/themes';
import { Button, Flex, Heading } from '@radix-ui/themes';
import { use } from 'react';
import { ConsumableButton } from '../../../../../../../components/ModuleButtons/ConsumableButton';
import { checkConsumableProvisionInclusivity } from '../../../../../../../core/blitzkrieg/checkConsumableProvisionInclusivity';
@@ -27,7 +27,20 @@ export function Consumables() {
return (
<ConfigurationChildWrapper>
<Heading size="4">Consumables</Heading>
<Flex gap="4" align="center">
<Heading size="4">Consumables</Heading>
<Button
variant="ghost"
color="red"
onClick={() => {
mutateDuel((draft) => {
draft.protagonist!.consumables = [];
});
}}
>
Clear
</Button>
</Flex>
<Flex wrap="wrap">
{consumablesList.map((consumable, index) => {
@@ -1,4 +1,4 @@
import { Flex, Heading } from '@radix-ui/themes';
import { Button, Flex, Heading } from '@radix-ui/themes';
import { use } from 'react';
import { EquipmentButton } from '../../../../../../../components/ModuleButtons/EquipmentButton';
import { equipmentDefinitions } from '../../../../../../../core/blitzkrieg/equipmentDefinitions';
@@ -14,7 +14,24 @@ export function Equipment() {
return (
<ConfigurationChildWrapper>
<Heading size="4">Equipment</Heading>
<Flex gap="4" align="center">
<Heading size="4">Equipment</Heading>
<Button
variant="ghost"
color="red"
onClick={() => {
mutateDuel((draft) => {
draft.protagonist!.equipment.forEach((row) => {
row.forEach((_, index) => {
row[index] = 0;
});
});
});
}}
>
Clear
</Button>
</Flex>
<Flex direction="column" gap="2">
{equipmentRows.map((equipmentRow, rowIndex) => (
@@ -1,4 +1,4 @@
import { Flex, Heading } from '@radix-ui/themes';
import { Button, Flex, Heading } from '@radix-ui/themes';
import { ModuleButton } from '../../../../../../../components/ModuleButtons/ModuleButton';
import { TIER_ROMAN_NUMERALS } from '../../../../../../../core/blitzkrieg/tankDefinitions/constants';
import { mutateDuel, useDuel } from '../../../../../../../stores/duel';
@@ -10,7 +10,40 @@ export function Modules() {
return (
<ConfigurationChildWrapper>
<Heading size="4">Modules</Heading>
<Flex gap="4" align="center">
<Heading size="4">Modules</Heading>
<Button
variant="ghost"
color="red"
onClick={() => {
mutateDuel((draft) => {
draft.protagonist!.turret = draft.protagonist!.tank.turrets[0];
draft.protagonist!.gun = draft.protagonist!.turret.guns[0];
draft.protagonist!.shell = draft.protagonist!.gun.shells[0];
draft.protagonist!.engine = draft.protagonist!.tank.engines[0];
draft.protagonist!.track = draft.protagonist!.tank.tracks[0];
});
}}
>
Stock
</Button>
<Button
variant="ghost"
onClick={() => {
mutateDuel((draft) => {
draft.protagonist!.turret =
draft.protagonist!.tank.turrets.at(-1)!;
draft.protagonist!.gun = draft.protagonist!.turret.guns.at(-1)!;
draft.protagonist!.shell = draft.protagonist!.gun.shells.at(-1)!;
draft.protagonist!.engine =
draft.protagonist!.tank.engines.at(-1)!;
draft.protagonist!.track = draft.protagonist!.tank.tracks.at(-1)!;
});
}}
>
Upgrade
</Button>
</Flex>
<Flex gap="2" wrap="wrap">
<Flex>
@@ -1,4 +1,4 @@
import { Flex, Heading } from '@radix-ui/themes';
import { Button, Flex, Heading } from '@radix-ui/themes';
import { use } from 'react';
import { ProvisionButton } from '../../../../../../../components/ModuleButtons/ProvisionButton';
import { availableProvisions } from '../../../../../../../core/blitzkrieg/availableProvisions';
@@ -18,7 +18,20 @@ export function Provisions() {
return (
<ConfigurationChildWrapper>
<Heading size="4">Provisions</Heading>
<Flex gap="4" align="center">
<Heading size="4">Provisions</Heading>
<Button
variant="ghost"
color="red"
onClick={() => {
mutateDuel((draft) => {
draft.protagonist!.provisions = [];
});
}}
>
Clear
</Button>
</Flex>
<Flex wrap="wrap">
{provisionsList.map((provision, index) => {
@@ -1,5 +1,5 @@
import { InfoCircledIcon } from '@radix-ui/react-icons';
import { Flex, Heading, Text } from '@radix-ui/themes';
import { Button, Flex, Heading, Text } from '@radix-ui/themes';
import { use } from 'react';
import { GenericTankComponentButton } from '../../../../../../../../components/ModuleButtons/GenericTankComponentButton';
import { asset } from '../../../../../../../../core/blitzkrieg/asset';
@@ -31,7 +31,34 @@ export function Skills() {
return (
<ConfigurationChildWrapper>
<Heading size="4">Crew skills</Heading>
<Flex gap="4" align="center">
<Heading size="4">Crew skills</Heading>
<Button
variant="ghost"
color="red"
onClick={() => {
mutateTankopediaTemporary((draft) => {
Object.keys(draft.skills).forEach((skill) => {
draft.skills[skill] = 0;
});
});
}}
>
Clear
</Button>
<Button
variant="ghost"
onClick={() => {
mutateTankopediaTemporary((draft) => {
Object.keys(draft.skills).forEach((skill) => {
draft.skills[skill] = 7;
});
});
}}
>
Maximize all
</Button>
</Flex>
<Text>
<InfoCircledIcon /> Skills in yellow only apply under special
+1 -1
View File
@@ -90,7 +90,7 @@ export default function Page({ params }: { params: { id: string } }) {
<TankSandbox />
<AntagonistBar />
<Flex direction="column" gap="4">
<Flex direction="column" gap="5">
<Modules />
<Provisions />
<Equipment />