fix bat
Browse files
src/lib/components/Pages/Encounters.svelte
CHANGED
|
@@ -140,19 +140,35 @@
|
|
| 140 |
|
| 141 |
async function startBattle(encounter: Encounter) {
|
| 142 |
try {
|
| 143 |
-
// Get
|
| 144 |
-
const
|
| 145 |
-
.where('isInRoster')
|
| 146 |
-
.equals(1)
|
| 147 |
-
.toArray();
|
| 148 |
|
| 149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 150 |
|
| 151 |
if (healthyPiclets.length === 0) {
|
| 152 |
alert('You need at least one healthy piclet in your roster to battle!');
|
| 153 |
return;
|
| 154 |
}
|
| 155 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
// Generate enemy piclet for battle
|
| 157 |
const enemyPiclet = await generateEnemyPiclet(encounter);
|
| 158 |
if (!enemyPiclet) return;
|
|
|
|
| 140 |
|
| 141 |
async function startBattle(encounter: Encounter) {
|
| 142 |
try {
|
| 143 |
+
// Get all piclet instances
|
| 144 |
+
const allPiclets = await db.picletInstances.toArray();
|
|
|
|
|
|
|
|
|
|
| 145 |
|
| 146 |
+
// Filter piclets that have a roster position (0-5)
|
| 147 |
+
const rosterPiclets = allPiclets.filter(p =>
|
| 148 |
+
p.rosterPosition !== undefined &&
|
| 149 |
+
p.rosterPosition !== null &&
|
| 150 |
+
p.rosterPosition >= 0 &&
|
| 151 |
+
p.rosterPosition <= 5
|
| 152 |
+
);
|
| 153 |
+
|
| 154 |
+
// Sort by roster position
|
| 155 |
+
rosterPiclets.sort((a, b) => (a.rosterPosition ?? 0) - (b.rosterPosition ?? 0));
|
| 156 |
+
|
| 157 |
+
// Get healthy piclets
|
| 158 |
+
const healthyPiclets = rosterPiclets.filter(p => p.currentHp > 0);
|
| 159 |
|
| 160 |
if (healthyPiclets.length === 0) {
|
| 161 |
alert('You need at least one healthy piclet in your roster to battle!');
|
| 162 |
return;
|
| 163 |
}
|
| 164 |
|
| 165 |
+
// Check if there's at least one piclet in position 0
|
| 166 |
+
const hasPosition0 = rosterPiclets.some(p => p.rosterPosition === 0);
|
| 167 |
+
if (!hasPosition0) {
|
| 168 |
+
alert('You need a piclet in the first roster slot (position 0) to battle!');
|
| 169 |
+
return;
|
| 170 |
+
}
|
| 171 |
+
|
| 172 |
// Generate enemy piclet for battle
|
| 173 |
const enemyPiclet = await generateEnemyPiclet(encounter);
|
| 174 |
if (!enemyPiclet) return;
|
src/lib/components/Pages/Pictuary.svelte
CHANGED
|
@@ -36,8 +36,19 @@
|
|
| 36 |
try {
|
| 37 |
const allInstances = await getAllPicletInstances();
|
| 38 |
|
| 39 |
-
|
| 40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
|
| 42 |
const allMonsters = await getAllMonsters();
|
| 43 |
|
|
|
|
| 36 |
try {
|
| 37 |
const allInstances = await getAllPicletInstances();
|
| 38 |
|
| 39 |
+
// Filter based on rosterPosition instead of isInRoster
|
| 40 |
+
rosterPiclets = allInstances.filter(p =>
|
| 41 |
+
p.rosterPosition !== undefined &&
|
| 42 |
+
p.rosterPosition !== null &&
|
| 43 |
+
p.rosterPosition >= 0 &&
|
| 44 |
+
p.rosterPosition <= 5
|
| 45 |
+
);
|
| 46 |
+
storagePiclets = allInstances.filter(p =>
|
| 47 |
+
p.rosterPosition === undefined ||
|
| 48 |
+
p.rosterPosition === null ||
|
| 49 |
+
p.rosterPosition < 0 ||
|
| 50 |
+
p.rosterPosition > 5
|
| 51 |
+
);
|
| 52 |
|
| 53 |
const allMonsters = await getAllMonsters();
|
| 54 |
|
src/lib/db/piclets.ts
CHANGED
|
@@ -129,10 +129,15 @@ export async function getAllPicletInstances(): Promise<PicletInstance[]> {
|
|
| 129 |
|
| 130 |
// Get roster PicletInstances
|
| 131 |
export async function getRosterPiclets(): Promise<PicletInstance[]> {
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
.
|
| 135 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 136 |
}
|
| 137 |
|
| 138 |
// Update roster position
|
|
@@ -185,10 +190,13 @@ export async function moveToStorage(id: number): Promise<void> {
|
|
| 185 |
|
| 186 |
// Get storage piclets
|
| 187 |
export async function getStoragePiclets(): Promise<PicletInstance[]> {
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
.
|
| 191 |
-
.
|
|
|
|
|
|
|
|
|
|
| 192 |
}
|
| 193 |
|
| 194 |
// Delete a PicletInstance
|
|
|
|
| 129 |
|
| 130 |
// Get roster PicletInstances
|
| 131 |
export async function getRosterPiclets(): Promise<PicletInstance[]> {
|
| 132 |
+
const allPiclets = await db.picletInstances.toArray();
|
| 133 |
+
return allPiclets
|
| 134 |
+
.filter(p =>
|
| 135 |
+
p.rosterPosition !== undefined &&
|
| 136 |
+
p.rosterPosition !== null &&
|
| 137 |
+
p.rosterPosition >= 0 &&
|
| 138 |
+
p.rosterPosition <= 5
|
| 139 |
+
)
|
| 140 |
+
.sort((a, b) => (a.rosterPosition ?? 0) - (b.rosterPosition ?? 0));
|
| 141 |
}
|
| 142 |
|
| 143 |
// Update roster position
|
|
|
|
| 190 |
|
| 191 |
// Get storage piclets
|
| 192 |
export async function getStoragePiclets(): Promise<PicletInstance[]> {
|
| 193 |
+
const allPiclets = await db.picletInstances.toArray();
|
| 194 |
+
return allPiclets.filter(p =>
|
| 195 |
+
p.rosterPosition === undefined ||
|
| 196 |
+
p.rosterPosition === null ||
|
| 197 |
+
p.rosterPosition < 0 ||
|
| 198 |
+
p.rosterPosition > 5
|
| 199 |
+
);
|
| 200 |
}
|
| 201 |
|
| 202 |
// Delete a PicletInstance
|