src/lib/battle-engine/BattleEngine.ts
CHANGED
@@ -135,9 +135,11 @@ export class BattleEngine {
|
|
135 |
const baseCatchRate = getCatchRateForTier(tier);
|
136 |
|
137 |
// Get status effect for capture bonus
|
138 |
-
let statusEffect:
|
139 |
if (targetPiclet.statusEffects.length > 0) {
|
140 |
-
|
|
|
|
|
141 |
}
|
142 |
|
143 |
return calculateCapturePercentage({
|
@@ -404,10 +406,12 @@ export class BattleEngine {
|
|
404 |
const baseCatchRate = getCatchRateForTier(tier);
|
405 |
|
406 |
// Get status effect for capture bonus
|
407 |
-
let statusEffect:
|
408 |
if (targetPiclet.statusEffects.length > 0) {
|
409 |
// Use the first status effect (most Pokemon games only allow one)
|
410 |
-
|
|
|
|
|
411 |
}
|
412 |
|
413 |
// Calculate capture percentage for display
|
@@ -437,14 +441,14 @@ export class BattleEngine {
|
|
437 |
};
|
438 |
|
439 |
// Log the attempt
|
440 |
-
this.log(`Player
|
441 |
|
442 |
// Log shakes
|
443 |
if (result.shakes === 0) {
|
444 |
-
this.log('The
|
445 |
} else {
|
446 |
const shakeText = result.shakes === 1 ? 'once' : result.shakes === 2 ? 'twice' : 'three times';
|
447 |
-
this.log(`The
|
448 |
}
|
449 |
|
450 |
if (result.success) {
|
|
|
135 |
const baseCatchRate = getCatchRateForTier(tier);
|
136 |
|
137 |
// Get status effect for capture bonus
|
138 |
+
let statusEffect: 'sleep' | 'freeze' | 'poison' | 'burn' | 'paralysis' | 'toxic' | null = null;
|
139 |
if (targetPiclet.statusEffects.length > 0) {
|
140 |
+
const firstStatus = targetPiclet.statusEffects[0];
|
141 |
+
// Cast to proper type (status effects in battle engine match capture service types)
|
142 |
+
statusEffect = firstStatus as 'sleep' | 'freeze' | 'poison' | 'burn' | 'paralysis' | 'toxic';
|
143 |
}
|
144 |
|
145 |
return calculateCapturePercentage({
|
|
|
406 |
const baseCatchRate = getCatchRateForTier(tier);
|
407 |
|
408 |
// Get status effect for capture bonus
|
409 |
+
let statusEffect: 'sleep' | 'freeze' | 'poison' | 'burn' | 'paralysis' | 'toxic' | null = null;
|
410 |
if (targetPiclet.statusEffects.length > 0) {
|
411 |
// Use the first status effect (most Pokemon games only allow one)
|
412 |
+
const firstStatus = targetPiclet.statusEffects[0];
|
413 |
+
// Cast to proper type (status effects in battle engine match capture service types)
|
414 |
+
statusEffect = firstStatus as 'sleep' | 'freeze' | 'poison' | 'burn' | 'paralysis' | 'toxic';
|
415 |
}
|
416 |
|
417 |
// Calculate capture percentage for display
|
|
|
441 |
};
|
442 |
|
443 |
// Log the attempt
|
444 |
+
this.log(`Player took a Pic-ture of ${targetPiclet.definition.name}!`);
|
445 |
|
446 |
// Log shakes
|
447 |
if (result.shakes === 0) {
|
448 |
+
this.log('The Pic-ture broke immediately!');
|
449 |
} else {
|
450 |
const shakeText = result.shakes === 1 ? 'once' : result.shakes === 2 ? 'twice' : 'three times';
|
451 |
+
this.log(`The Pic-ture shook ${shakeText}...`);
|
452 |
}
|
453 |
|
454 |
if (result.success) {
|
src/lib/components/Pages/Battle.svelte
CHANGED
@@ -139,8 +139,12 @@
|
|
139 |
try {
|
140 |
// Create capture action
|
141 |
const captureAction = { type: 'capture' as const, piclet: 'player' as const };
|
142 |
-
//
|
143 |
-
const enemyAction =
|
|
|
|
|
|
|
|
|
144 |
|
145 |
// Get log entries before action to track new messages
|
146 |
const logBefore = battleEngine.getLog();
|
|
|
139 |
try {
|
140 |
// Create capture action
|
141 |
const captureAction = { type: 'capture' as const, piclet: 'player' as const };
|
142 |
+
// Get proper enemy action (same as normal turns)
|
143 |
+
const enemyAction = selectEnemyMove();
|
144 |
+
if (!enemyAction) {
|
145 |
+
processingTurn = false;
|
146 |
+
return;
|
147 |
+
}
|
148 |
|
149 |
// Get log entries before action to track new messages
|
150 |
const logBefore = battleEngine.getLog();
|