Fraser commited on
Commit
bc13998
Β·
1 Parent(s): bdd30fc
src/lib/battle-engine/BattleEngine.ts CHANGED
@@ -230,21 +230,39 @@ export class BattleEngine {
230
  }
231
 
232
  private executeMove(action: MoveAction & { executor: 'player' | 'opponent' }): void {
 
 
 
 
 
233
  const attacker = action.executor === 'player' ? this.state.playerPiclet : this.state.opponentPiclet;
234
  const defender = action.executor === 'player' ? this.state.opponentPiclet : this.state.playerPiclet;
235
 
 
 
 
 
 
236
  // Check if attacker can act due to status effects
237
  if (!this.canPicletAct(attacker)) {
 
238
  return; // Skip this action
239
  }
240
 
241
  const moveData = attacker.moves[action.moveIndex];
242
  if (!moveData || moveData.currentPP <= 0) {
 
243
  this.log(`${attacker.definition.name} has no PP left for that move!`);
244
  return;
245
  }
246
 
247
  const move = moveData.move;
 
 
 
 
 
 
248
 
249
  // Trigger before move use
250
  this.triggerBeforeMoveUse(attacker, move);
@@ -269,8 +287,20 @@ export class BattleEngine {
269
  const luckyRoll = Math.random() < 0.5;
270
 
271
  // Process effects
272
- for (const effect of move.effects) {
273
- this.processEffect(effect, attacker, defender, move, luckyRoll);
 
 
 
 
 
 
 
 
 
 
 
 
274
  }
275
 
276
  // Trigger after move use
 
230
  }
231
 
232
  private executeMove(action: MoveAction & { executor: 'player' | 'opponent' }): void {
233
+ console.log('πŸš€ executeMove started:', {
234
+ executor: action.executor,
235
+ moveIndex: action.moveIndex
236
+ });
237
+
238
  const attacker = action.executor === 'player' ? this.state.playerPiclet : this.state.opponentPiclet;
239
  const defender = action.executor === 'player' ? this.state.opponentPiclet : this.state.playerPiclet;
240
 
241
+ console.log('πŸ‘₯ Attacker/Defender:', {
242
+ attacker: attacker.definition.name,
243
+ defender: defender.definition.name
244
+ });
245
+
246
  // Check if attacker can act due to status effects
247
  if (!this.canPicletAct(attacker)) {
248
+ console.log('❌ Attacker cannot act due to status effects');
249
  return; // Skip this action
250
  }
251
 
252
  const moveData = attacker.moves[action.moveIndex];
253
  if (!moveData || moveData.currentPP <= 0) {
254
+ console.log('❌ No move data or no PP:', { moveData: !!moveData, pp: moveData?.currentPP });
255
  this.log(`${attacker.definition.name} has no PP left for that move!`);
256
  return;
257
  }
258
 
259
  const move = moveData.move;
260
+ console.log('βœ… Move to execute:', {
261
+ name: move.name,
262
+ type: move.type,
263
+ power: move.power,
264
+ effects: move.effects?.length || 0
265
+ });
266
 
267
  // Trigger before move use
268
  this.triggerBeforeMoveUse(attacker, move);
 
287
  const luckyRoll = Math.random() < 0.5;
288
 
289
  // Process effects
290
+ console.log('πŸ”„ Processing effects:', move.effects.length);
291
+ for (let i = 0; i < move.effects.length; i++) {
292
+ const effect = move.effects[i];
293
+ console.log(`🎭 Processing effect ${i + 1}/${move.effects.length}:`, {
294
+ type: effect.type,
295
+ effect: effect
296
+ });
297
+ try {
298
+ this.processEffect(effect, attacker, defender, move, luckyRoll);
299
+ console.log(`βœ… Effect ${i + 1} completed successfully`);
300
+ } catch (error) {
301
+ console.error(`❌ Effect ${i + 1} failed:`, error);
302
+ throw error; // Re-throw to maintain error behavior
303
+ }
304
  }
305
 
306
  // Trigger after move use