Adds quality selection, all dungeons
This commit is contained in:
@@ -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;
|
||||
}),
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user