All files / blacktrigram/src/types/constants animations.ts

100% Statements 68/68
100% Branches 0/0
100% Functions 0/0
100% Lines 68/68

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90          1x   1x 1x 1x 1x     1x 1x 1x 1x 1x     1x 1x 1x 1x     1x 1x 1x 1x     1x 1x 1x 1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x   1x   1x 1x 1x 1x 1x 1x 1x   1x  
/**
 * Animation constants for Black Trigram Korean martial arts
 */
 
// Animation durations (in milliseconds)
export const ANIMATION_DURATIONS = {
  // UI animations
  BUTTON_HOVER: 150,
  BUTTON_PRESS: 100,
  MODAL_FADE: 300,
  SCREEN_TRANSITION: 500,
 
  // Combat animations
  BASIC_ATTACK: 400,
  HEAVY_ATTACK: 600,
  BLOCK: 200,
  DODGE: 300,
  STANCE_CHANGE: 500,
 
  // Effect animations
  HIT_FLASH: 100,
  DAMAGE_NUMBER: 1000,
  STATUS_EFFECT: 2000,
  PARTICLE_LIFE: 800,
 
  // Korean martial arts specific
  TRIGRAM_TRANSITION: 600,
  VITAL_POINT_HIGHLIGHT: 300,
  KI_FLOW_PULSE: 1200,
} as const;
 
// Animation easing curves
export const ANIMATION_EASING = {
  LINEAR: "linear",
  EASE_IN: "ease-in",
  EASE_OUT: "ease-out",
  EASE_IN_OUT: "ease-in-out",
  BOUNCE: "cubic-bezier(0.68, -0.55, 0.265, 1.55)",
  ELASTIC: "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
  BACK: "cubic-bezier(0.6, -0.28, 0.735, 0.045)",
} as const;
 
// Animation frame configurations
export const FRAME_CONFIGS = {
  IDLE: {
    frames: 4,
    duration: 1000,
    loop: true,
  },
  WALK: {
    frames: 6,
    duration: 600,
    loop: true,
  },
  ATTACK: {
    frames: 8,
    duration: 400,
    loop: false,
  },
  BLOCK: {
    frames: 3,
    duration: 200,
    loop: false,
  },
  HIT: {
    frames: 4,
    duration: 300,
    loop: false,
  },
} as const;
 
// Korean martial arts animation sequences
export const KOREAN_MARTIAL_ANIMATIONS = {
  STANCE_TRANSITIONS: {
    GEON_TO_TAE: { frames: 12, duration: 500 },
    TAE_TO_LI: { frames: 10, duration: 450 },
    LI_TO_JIN: { frames: 14, duration: 550 },
    // ... other transitions
  },
 
  TECHNIQUE_ANIMATIONS: {
    PALM_STRIKE: { frames: 8, duration: 400 },
    FLYING_KICK: { frames: 12, duration: 600 },
    PRESSURE_POINT: { frames: 6, duration: 300 },
    VITAL_POINT_STRIKE: { frames: 10, duration: 500 },
  },
} as const;
 
export default ANIMATION_DURATIONS;