Fraser commited on
Commit
5c9dd93
·
1 Parent(s): 48e284a

better anim

Browse files
src/lib/components/Battle/BattleField.svelte CHANGED
@@ -41,33 +41,19 @@
41
  const playerXpPercentage = (playerPiclet.xp / 100) * 100; // Simplified, should use actual XP curve
42
 
43
  onMount(() => {
44
- if (showIntro) {
45
- // Intro animation sequence - show battle participants directly
46
- setTimeout(() => {
47
- if (!isWildBattle) {
48
- enemyTrainerVisible = true;
49
- } else {
50
- enemyVisible = true;
51
- }
52
- }, 100);
53
-
54
- setTimeout(() => {
55
- if (!isWildBattle) {
56
- playerTrainerVisible = true;
57
- } else {
58
- playerTrainerVisible = true; // Show player trainer even in wild battles
59
- }
60
- }, 200);
61
- } else {
62
- // Skip intro
63
  playerVisible = true;
64
  enemyVisible = true;
65
  }
 
66
  });
67
 
68
  // Watch for trainer slide-out triggers
69
  $: if (playerTrainerSlideOut && !playerTrainerSliding) {
70
  playerTrainerSliding = true;
 
 
71
  setTimeout(() => {
72
  playerTrainerVisible = false;
73
  // Trigger white flash then show player monster
@@ -81,6 +67,8 @@
81
 
82
  $: if (enemyTrainerSlideOut && !enemyTrainerSliding) {
83
  enemyTrainerSliding = true;
 
 
84
  setTimeout(() => {
85
  enemyTrainerVisible = false;
86
  // Trigger white flash then show enemy monster
 
41
  const playerXpPercentage = (playerPiclet.xp / 100) * 100; // Simplified, should use actual XP curve
42
 
43
  onMount(() => {
44
+ if (!showIntro) {
45
+ // Skip intro - show everything immediately
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  playerVisible = true;
47
  enemyVisible = true;
48
  }
49
+ // For intro mode, trainers will be shown when slide-out is triggered
50
  });
51
 
52
  // Watch for trainer slide-out triggers
53
  $: if (playerTrainerSlideOut && !playerTrainerSliding) {
54
  playerTrainerSliding = true;
55
+ // Show trainer briefly, then slide out
56
+ playerTrainerVisible = true;
57
  setTimeout(() => {
58
  playerTrainerVisible = false;
59
  // Trigger white flash then show player monster
 
67
 
68
  $: if (enemyTrainerSlideOut && !enemyTrainerSliding) {
69
  enemyTrainerSliding = true;
70
+ // Show trainer briefly, then slide out
71
+ enemyTrainerVisible = true;
72
  setTimeout(() => {
73
  enemyTrainerVisible = false;
74
  // Trigger white flash then show enemy monster
src/lib/components/Pages/Battle.svelte CHANGED
@@ -261,7 +261,7 @@
261
  const playerName = stripBattlePrefix(battleState?.playerPiclet?.definition?.name || '');
262
  const enemyName = stripBattlePrefix(battleState?.opponentPiclet?.definition?.name || '');
263
 
264
- // Attack lunge effects - trigger when a Piclet uses a move
265
  if (message.includes(' used ')) {
266
  if (message.includes(playerName)) {
267
  triggerLungeAnimation('player');
@@ -270,7 +270,7 @@
270
  }
271
  }
272
 
273
- // Damage effects
274
  if (message.includes('took') && message.includes('damage')) {
275
  if (message.includes(playerName)) {
276
  triggerDamageFlash('player');
@@ -402,17 +402,19 @@
402
  currentMessageIndex = 0;
403
  continueCallback = callback;
404
 
405
- // Show first message
406
  currentMessage = messageQueue[0];
407
  waitingForContinue = true;
 
 
 
 
 
408
  }
409
 
410
  function handleContinueTap() {
411
  if (!waitingForContinue || !messageQueue.length) return;
412
 
413
- // Trigger visual effects for current message
414
- triggerVisualEffectsFromMessage(currentMessage);
415
-
416
  currentMessageIndex++;
417
 
418
  if (currentMessageIndex >= messageQueue.length) {
@@ -428,6 +430,11 @@
428
  } else {
429
  // Show next message
430
  currentMessage = messageQueue[currentMessageIndex];
 
 
 
 
 
431
  }
432
  }
433
 
 
261
  const playerName = stripBattlePrefix(battleState?.playerPiclet?.definition?.name || '');
262
  const enemyName = stripBattlePrefix(battleState?.opponentPiclet?.definition?.name || '');
263
 
264
+ // Attack lunge effects - trigger immediately when a Piclet uses a move
265
  if (message.includes(' used ')) {
266
  if (message.includes(playerName)) {
267
  triggerLungeAnimation('player');
 
270
  }
271
  }
272
 
273
+ // Damage flash effects - trigger when damage is taken
274
  if (message.includes('took') && message.includes('damage')) {
275
  if (message.includes(playerName)) {
276
  triggerDamageFlash('player');
 
402
  currentMessageIndex = 0;
403
  continueCallback = callback;
404
 
405
+ // Show first message and trigger its effects
406
  currentMessage = messageQueue[0];
407
  waitingForContinue = true;
408
+
409
+ // Trigger visual effects automatically after text appears (with small delay for text animation)
410
+ setTimeout(() => {
411
+ triggerVisualEffectsFromMessage(currentMessage);
412
+ }, 500); // Allow time for typewriter text to complete
413
  }
414
 
415
  function handleContinueTap() {
416
  if (!waitingForContinue || !messageQueue.length) return;
417
 
 
 
 
418
  currentMessageIndex++;
419
 
420
  if (currentMessageIndex >= messageQueue.length) {
 
430
  } else {
431
  // Show next message
432
  currentMessage = messageQueue[currentMessageIndex];
433
+
434
+ // Trigger visual effects automatically after text appears
435
+ setTimeout(() => {
436
+ triggerVisualEffectsFromMessage(currentMessage);
437
+ }, 500); // Allow time for typewriter text to complete
438
  }
439
  }
440