ug
Browse files
src/lib/components/Pages/Battle.svelte
CHANGED
|
@@ -153,18 +153,23 @@
|
|
| 153 |
battleEngine.executeActions(captureAction, enemyAction);
|
| 154 |
battleState = battleEngine.getState();
|
| 155 |
|
|
|
|
|
|
|
|
|
|
| 156 |
// Get capture result and new log entries
|
| 157 |
const captureResult = battleState.captureResult;
|
| 158 |
const logAfter = battleEngine.getLog();
|
| 159 |
const newLogEntries = logAfter.slice(logBefore.length);
|
| 160 |
|
| 161 |
-
// Show log messages with proper timing
|
| 162 |
if (newLogEntries.length > 0) {
|
| 163 |
let messageIndex = 0;
|
| 164 |
|
| 165 |
const showNextMessage = () => {
|
| 166 |
if (messageIndex < newLogEntries.length) {
|
| 167 |
currentMessage = newLogEntries[messageIndex];
|
|
|
|
|
|
|
| 168 |
messageIndex++;
|
| 169 |
setTimeout(showNextMessage, 1500); // 1.5s between messages
|
| 170 |
} else {
|
|
@@ -175,6 +180,25 @@
|
|
| 175 |
battleEnded = true;
|
| 176 |
onBattleEnd(currentEnemyPiclet); // Pass captured Piclet to add to roster
|
| 177 |
}, 1000);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 178 |
} else {
|
| 179 |
// Capture failed - continue battle
|
| 180 |
setTimeout(() => {
|
|
|
|
| 153 |
battleEngine.executeActions(captureAction, enemyAction);
|
| 154 |
battleState = battleEngine.getState();
|
| 155 |
|
| 156 |
+
// Update UI state (HP bars, etc.) after the actions
|
| 157 |
+
updateUIFromBattleState();
|
| 158 |
+
|
| 159 |
// Get capture result and new log entries
|
| 160 |
const captureResult = battleState.captureResult;
|
| 161 |
const logAfter = battleEngine.getLog();
|
| 162 |
const newLogEntries = logAfter.slice(logBefore.length);
|
| 163 |
|
| 164 |
+
// Show log messages with proper timing and visual effects
|
| 165 |
if (newLogEntries.length > 0) {
|
| 166 |
let messageIndex = 0;
|
| 167 |
|
| 168 |
const showNextMessage = () => {
|
| 169 |
if (messageIndex < newLogEntries.length) {
|
| 170 |
currentMessage = newLogEntries[messageIndex];
|
| 171 |
+
// Trigger visual effects for this message
|
| 172 |
+
triggerVisualEffectsFromMessage(newLogEntries[messageIndex]);
|
| 173 |
messageIndex++;
|
| 174 |
setTimeout(showNextMessage, 1500); // 1.5s between messages
|
| 175 |
} else {
|
|
|
|
| 180 |
battleEnded = true;
|
| 181 |
onBattleEnd(currentEnemyPiclet); // Pass captured Piclet to add to roster
|
| 182 |
}, 1000);
|
| 183 |
+
} else if (battleState.winner) {
|
| 184 |
+
// Battle ended (player probably fainted from enemy attack)
|
| 185 |
+
battleEnded = true;
|
| 186 |
+
const defeatedPiclet = battleState.winner === 'player' ? currentEnemyPiclet : currentPlayerPiclet;
|
| 187 |
+
|
| 188 |
+
// Show the faint message and trigger animation
|
| 189 |
+
currentMessage = `${defeatedPiclet.nickname} fainted!`;
|
| 190 |
+
|
| 191 |
+
// Trigger faint animation for the defeated Piclet
|
| 192 |
+
if (battleState.winner === 'player') {
|
| 193 |
+
enemyFaint = true;
|
| 194 |
+
} else {
|
| 195 |
+
playerFaint = true;
|
| 196 |
+
}
|
| 197 |
+
|
| 198 |
+
// Wait for faint message, then process battle results
|
| 199 |
+
setTimeout(async () => {
|
| 200 |
+
await handleBattleResults(battleState.winner === 'player');
|
| 201 |
+
}, 2500); // Wait time for faint message and animation
|
| 202 |
} else {
|
| 203 |
// Capture failed - continue battle
|
| 204 |
setTimeout(() => {
|