Adds quality selection, all dungeons

This commit is contained in:
2025-08-20 19:52:51 -07:00
parent 8086e9a91f
commit 87c908ca68
20 changed files with 737 additions and 84 deletions

View File

@@ -1,10 +1,15 @@
import type { EquipedItem, Item, ItemId } from "./types";
import type { EquipedItem, Item, ItemId, Quality } from "./types";
export type State = {
equipedItems: EquipedItem[];
bisList: ItemId[];
};
export const emptyState: State = {
equipedItems: [],
bisList: [],
};
export type Action =
| {
action: "equipItem";
@@ -13,6 +18,11 @@ export type Action =
| {
action: "unequipItem";
item: Item;
}
| {
action: "changeQuality";
itemId: ItemId;
quality: Quality;
};
export const reducer = (state: State, action: Action): State => {
@@ -35,6 +45,19 @@ export const reducer = (state: State, action: Action): State => {
(item) => item.id !== action.item.id,
),
};
case "changeQuality":
return {
...state,
equipedItems: state.equipedItems.map((item) => {
if (item.id === action.itemId) {
return {
id: item.id,
quality: action.quality,
};
}
return item;
}),
};
}
};