
(character 
  (name "Ryu") 
  (health 100) 
  (jump-velocity 4.8) 
  (speed 1.1) 
  (type Player) 
  (shadow 3) 
  (die-sound players/ryu/die.wav) 
  (hit-sound ./sounds/beat1.wav) 
  (landed sounds/fall.wav) 
  (icon players/ryu/icon.png) 
  (remap players/ryu/idle/ryu-idle02.png players/ryu/map1.png) 
  (remap players/ryu/idle/ryu-idle02.png players/ryu/map2.png) 
  (remap players/ryu/idle/ryu-idle02.png players/ryu/map3.png) 
  (remap players/ryu/idle/ryu-idle02.png players/ryu/map4.png) 
  (anim 
    (name "idle") 
    (basedir players/ryu/idle/) 
    (delay 12) 
    (offset 0 2) 
    (frame ryu-idle01.png) 
    (frame ryu-idle02.png) 
    (frame ryu-idle03.png) 
    (offset 3 2) 
    (frame ryu-idle04.png) 
    (offset -2 2) 
    (frame ryu-idle05.png) 
    (offset 3 2) 
    (frame ryu-idle04.png) 
    (offset 0 2) 
    (frame ryu-idle03.png) 
    (frame ryu-idle02.png) 
    (offset 0 2) 
    (frame ryu-idle01.png) 
    (frame ryu-idle02.png) 
    (frame ryu-idle03.png) 
    (offset 3 2) 
    (frame ryu-idle04.png) 
    (offset -2 2) 
    (frame ryu-idle05.png) 
    (offset 3 2) 
    (frame ryu-idle04.png) 
    (offset 0 2) 
    (frame ryu-idle03.png) 
    (frame ryu-idle02.png) 
    (offset 0 2) 
    (frame ryu-idle01.png) 
    (frame ryu-idle02.png) 
    (frame ryu-idle03.png) 
    (offset 3 2) 
    (frame ryu-idle04.png) 
    (offset -2 2) 
    (frame ryu-idle05.png) 
    (offset 3 2) 
    (frame ryu-idle04.png) 
    (offset 0 2) 
    (frame ryu-idle03.png) 
    (frame ryu-idle02.png) 
    (frame ryu-idle01.png) 
    (frame ryu-idle06.png) 
    (offset 2 2) 
    (frame ryu-idle07.png) 
    (offset 1 1) 
    (frame ryu-idle08.png) 
    (offset 3 1) 
    (frame ryu-idle09.png) 
    (offset 2 2) 
    (frame ryu-idle10.png) 
    (frame ryu-idle11.png) 
    (frame ryu-idle12.png) 
    (frame ryu-idle13.png) 
    (offset 1 2) 
    (frame ryu-idle14.png) 
    (frame ryu-idle15.png)) 
  (anim 
    (name "walk") 
    (basedir players/ryu/walk/) 
    (delay 7) 
    (offset 0 3) 
    (frame ryu-walk01.png) 
    (frame ryu-walk02.png) 
    (offset 3 3) 
    (frame ryu-walk03.png) 
    (frame ryu-walk04.png) 
    (frame ryu-walk05.png) 
    (frame ryu-walk06.png)) 
  (anim 
    (name "get") 
    (keys key_attack1) 
    (basedir players/ryu/get/) 
    (delay 5) 
    (offset 2 4) 
    (frame ryu-get01.png) 
    (delay 10) 
    (frame ryu-get02.png) 
    (frame ryu-get03.png) 
    (delay 5) 
    (offset 2 4) 
    (frame ryu-get03.png) 
    (frame ryu-get02.png) 
    (frame ryu-get01.png)) 
  (anim 
    (name "attacklp") 
    (keys key_attack1) 
    (range 78) 
    (basedir players/ryu/punch1/) 
    (delay 6) 
    (offset 9 4) 
    (attack) 
    (frame ryu-1punch01.png) 
    (attack 
      (x1 70) 
      (y1 15) 
      (x2 107) 
      (y2 30) 
      (force 0) 
      (damage 3)) 
    (offset 24 4) 
    (frame ryu-1punch02.png) 
    (attack) 
    (offset 9 4) 
    (frame ryu-1punch01.png)) 
  (anim 
    (name "attackmp") 
    (sequence "attacklp" junk) 
    (keys key_attack1) 
    (range 74) 
    (basedir players/ryu/punch2/) 
    (delay 7) 
    (offset 20 2) 
    (attack) 
    (frame ryu-2punch01.png) 
    (offset 18 3) 
    (frame ryu-2punch02.png) 
    (attack 
      (x1 70) 
      (y1 20) 
      (x2 110) 
      (y2 32) 
      (force 0) 
      (damage 5)) 
    (frame ryu-2punch03.png) 
    (attack) 
    (frame ryu-2punch02.png) 
    (offset 20 2) 
    (frame ryu-2punch01.png)) 
  (anim 
    (name "attackhp") 
    (sequence "attackmp" junk) 
    (keys key_attack1) 
    (range 74) 
    (basedir players/ryu/punch3/) 
    (delay 10) 
    (offset 10 4) 
    (attack) 
    (frame ryu-3punch01.png) 
    (delay 7) 
    (attack 
      (x1 70) 
      (y1 20) 
      (x2 103) 
      (y2 33) 
      (force 0) 
      (damage 8)) 
    (offset 20 4) 
    (frame ryu-3punch02.png) 
    (attack) 
    (offset 8 4) 
    (frame ryu-3punch03.png) 
    (offset 8 5) 
    (frame ryu-3punch04.png) 
    (frame ryu-3punch05.png)) 
  (anim 
    (name "attacklk") 
    (keys key_attack2) 
    (range 84) 
    (basedir players/ryu/kick1/) 
    (delay 6) 
    (offset 25 3) 
    (shadow -25 0) 
    (attack) 
    (frame ryu-lkick01.png) 
    (offset 25 1) 
    (frame ryu-lkick02.png) 
    (offset 44 2) 
    (frame ryu-lkick03.png) 
    (delay 7) 
    (attack 
      (x1 65) 
      (y1 65) 
      (x2 100) 
      (y2 90) 
      (force 3) 
      (damage 4)) 
    (offset 34 2) 
    (frame ryu-lkick04.png) 
    (attack) 
    (offset 37 2) 
    (frame ryu-lkick05.png) 
    (offset 25 3) 
    (frame ryu-lkick06.png) 
    (frame ryu-lkick07.png)) 
  (anim 
    (name "attackmk") 
    (sequence "attacklk" junk) 
    (keys key_attack2) 
    (range 48) 
    (basedir players/ryu/kick2/) 
    (delay 5) 
    (offset 25 3) 
    (shadow -25 0) 
    (attack) 
    (frame ryu-mkick01.png) 
    (delay 7) 
    (offset 3 3) 
    (frame ryu-mkick02.png) 
    (delay 12) 
    (attack 
      (x1 80) 
      (y1 11) 
      (x2 117) 
      (y2 32) 
      (force 3) 
      (damage 6)) 
    (offset -12 3) 
    (frame ryu-mkick03.png) 
    (attack) 
    (delay 8) 
    (offset 3 4) 
    (frame ryu-mkick02.png) 
    (delay 5) 
    (offset 25 3) 
    (frame ryu-mkick01.png)) 
  (anim 
    (name "attackhk") 
    (sequence "attackmk" junk) 
    (keys key_attack2) 
    (range 89) 
    (basedir players/ryu/kick3/) 
    (delay 5) 
    (offset 25 5) 
    (shadow -25 0) 
    (attack) 
    (frame ryu-kick01.png) 
    (offset 28 6) 
    (frame ryu-kick02.png) 
    (attack 
      (x1 70) 
      (y1 7) 
      (x2 93) 
      (y2 20) 
      (force 3) 
      (damage 9)) 
    (offset 24 5) 
    (frame ryu-kick03.png) 
    (delay 8) 
    (offset 34 5) 
    (attack 
      (x1 80) 
      (y1 4) 
      (x2 110) 
      (y2 30) 
      (force 3) 
      (damage 9)) 
    (frame ryu-kick04.png) 
    (attack) 
    (offset 39 5) 
    (frame ryu-kick05.png) 
    (attack) 
    (offset 46 5) 
    (frame ryu-kick06.png) 
    (offset 25 5) 
    (frame ryu-kick07.png)) 
  (anim 
    (name "spin-kick") 
    (type attack) 
    (keys key_down key_back key_attack2) 
    (range 80) 
    (basedir players/ryu/spinkick/) 
    (delay 5) 
    (offset 0 5) 
    (face reverse) 
    (attack 
      (x1 0) 
      (y1 0) 
      (x2 97) 
      (y2 90) 
      (force 0) 
      (damage 20)) 
    (frame ryu-spinkick01.png) 
    (sound players/ryu/spinkick/spinkick.wav) 
    (offset 0 0) 
    (move 5 0 0) 
    (frame ryu-spinkick02.png) 
    (offset 0 -5) 
    (move 5 0 0) 
    (frame ryu-spinkick03.png) 
    (offset 0 -10) 
    (move 5 0 0) 
    (frame ryu-spinkick06.png) 
    (offset 0 -15) 
    (move 5 0 0) 
    (frame ryu-spinkick05.png) 
    (offset 0 -20) 
    (move 5 0 0) 
    (frame ryu-spinkick04.png) 
    (move 5 0 0) 
    (frame ryu-spinkick07.png) 
    (move 5 0 0) 
    (frame ryu-spinkick06.png) 
    (move 5 0 0) 
    (frame ryu-spinkick05.png) 
    (move 5 0 0) 
    (frame ryu-spinkick04.png) 
    (move 5 0 0) 
    (frame ryu-spinkick07.png) 
    (move 5 0 0) 
    (frame ryu-spinkick06.png) 
    (move 5 0 0) 
    (frame ryu-spinkick05.png) 
    (offset 0 -15) 
    (move 5 0 0) 
    (frame ryu-spinkick04.png) 
    (offset 0 -10) 
    (move 5 0 0) 
    (frame ryu-spinkick11.png) 
    (offset 0 -5) 
    (move 5 0 0) 
    (attack) 
    (frame ryu-spinkick10.png) 
    (offset 0 0) 
    (move 5 0 0) 
    (frame ryu-spinkick09.png) 
    (face reverse)) 
  (anim 
    (name "shoryuken") 
    (type attack) 
    (keys key_forward key_down key_forward key_attack1) 
    (range 42) 
    (basedir players/ryu/shoryuken/) 
    (delay 15) 
    (offset 0 5) 
    (attack) 
    (frame ryu-shoryuken01.png) 
    (sound players/ryu/shoryuken/shoryuken.wav) 
    (offset 0 5) 
    (attack 
      (x1 20) 
      (y1 40) 
      (x2 80) 
      (y2 140) 
      (force 3) 
      (damage 13)) 
    (delay 2) 
    (frame ryu-shoryuken02.png) 
    (attack 
      (x1 30) 
      (y1 10) 
      (x2 70) 
      (y2 100) 
      (force 3) 
      (damage 20)) 
    (offset 0 -5) 
    (move 2 0 0) 
    (frame ryu-shoryuken03.png) 
    (attack 
      (x1 30) 
      (y1 10) 
      (x2 70) 
      (y2 100) 
      (force 3) 
      (damage 20)) 
    (offset 0 -10) 
    (move 2 0 0) 
    (frame ryu-shoryuken03.png) 
    (attack 
      (x1 30) 
      (y1 10) 
      (x2 70) 
      (y2 100) 
      (force 3) 
      (damage 20)) 
    (offset 0 -15) 
    (move 2 0 0) 
    (frame ryu-shoryuken03.png) 
    (attack 
      (x1 30) 
      (y1 10) 
      (x2 70) 
      (y2 100) 
      (force 3) 
      (damage 20)) 
    (offset 0 -20) 
    (move 2 0 0) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -25) 
    (move 2 0 0) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -30) 
    (move 2 0 0) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -35) 
    (move 2 0 0) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -40) 
    (move 2 0 0) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -45) 
    (move 2 0 0) 
    (attack) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -40) 
    (move 2 0 0) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -35) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -30) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -25) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -20) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -15) 
    (frame ryu-shoryuken03.png) 
    (offset 0 -10) 
    (frame ryu-shoryuken04.png) 
    (delay 8) 
    (frame ryu-shoryuken05.png) 
    (offset 0 0) 
    (frame ryu-shoryuken06.png)) 
  (anim 
    (name "haddoken") 
    (keys key_down key_forward key_attack1) 
    (range 170) 
    (basedir players/ryu/haddoken/) 
    (delay 10) 
    (offset 0 2) 
    (attack) 
    (frame ryu-haddoken01.png) 
    (sound players/ryu/haddoken/haddoken.wav) 
    (frame ryu-haddoken02.png) 
    (frame ryu-haddoken03.png) 
    (offset 0 0) 
    (projectile 
      (at 65 -16) 
      (path players/ryu/haddoken/haddoken.txt) 
      (life 50) 
      (speed 2.0 0.0)) 
    (attack 
      (x1 80) 
      (y1 30) 
      (x2 115) 
      (y2 65) 
      (force 3) 
      (damage 20)) 
    (frame ryu-haddoken04.png) 
    (offset 2 2) 
    (frame ryu-haddoken05.png) 
    (offset 0 0) 
    (frame ryu-haddoken04.png) 
    (offset 0 2) 
    (attack) 
    (frame ryu-haddoken03.png)) 
  (anim 
    (name "super-haddoken") 
    (keys key_down key_forward key_down key_forward key_attack1) 
    (range 193) 
    (basedir players/ryu/haddoken/) 
    (delay 7) 
    (offset 0 2) 
    (attack) 
    (frame ryu-haddoken01.png) 
    (sound players/ryu/haddoken/shinku.wav) 
    (offset -20 2) 
    (frame super-haddoken01.png) 
    (frame super-haddoken02.png) 
    (frame super-haddoken03.png) 
    (frame super-haddoken04.png) 
    (frame super-haddoken03.png) 
    (frame super-haddoken04.png) 
    (offset -25 6) 
    (frame super-haddoken05.png) 
    (offset -20 1) 
    (frame super-haddoken06.png) 
    (offset -23 2) 
    (frame super-haddoken07.png) 
    (offset -23 1) 
    (frame super-haddoken08.png) 
    (offset -13 1) 
    (frame super-haddoken09.png) 
    (offset 8 1) 
    (frame super-haddoken10.png) 
    (offset 0 0) 
    (sound players/ryu/haddoken/haddoken.wav) 
    (projectile 
      (at 65 -16) 
      (path players/ryu/haddoken/super-haddoken.txt) 
      (life 60) 
      (speed 2.2 0.0)) 
    (delay 15) 
    (frame ryu-haddoken05.png)) 
  (anim 
    (name "jump") 
    (keys key_jump) 
    (basedir players/ryu/jump/) 
    (status ground) 
    (offset 0 5) 
    (delay 6) 
    (frame ryu-jump01.png) 
    (frame ryu-jump02.png) 
    (frame ryu-jump03.png) 
    (frame ryu-jump04.png) 
    (frame ryu-jump05.png) 
    (frame ryu-jump06.png) 
    (frame ryu-jump07.png) 
    (delay 6) 
    (frame ryu-jump08.png)) 
  (anim 
    (name "jumpattack1") 
    (keys key_attack2) 
    (basedir players/ryu/jumpkick/) 
    (status jump) 
    (offset 20 0) 
    (delay 7) 
    (frame ryu-jumpkick01.png) 
    (frame ryu-jumpkick02.png) 
    (delay 10) 
    (attack 
      (x1 75) 
      (y1 50) 
      (x2 120) 
      (y2 80) 
      (force 0) 
      (damage 11)) 
    (frame ryu-jumpkick03.png) 
    (delay 6) 
    (attack) 
    (frame ryu-jumpkick04.png) 
    (frame ryu-jumpkick05.png)) 
  (anim 
    (name "jumpattack2") 
    (keys key_attack1) 
    (basedir players/ryu/jumppunch/) 
    (status jump) 
    (offset 20 0) 
    (delay 7) 
    (frame ryu-jpunch01.png) 
    (frame ryu-jpunch02.png) 
    (delay 10) 
    (attack 
      (x1 80) 
      (y1 45) 
      (x2 100) 
      (y2 60) 
      (force 0) 
      (damage 11)) 
    (frame ryu-jpunch03.png) 
    (delay 6) 
    (attack) 
    (frame ryu-jpunch02.png) 
    (frame ryu-jpunch01.png)) 
  (anim 
    (name "grab") 
    (basedir players/ryu/grab/) 
    (offset 25 6) 
    (delay 7) 
    (frame ryu-grab01.png) 
    (frame ryu-grab02.png) 
    (frame ryu-grab03.png)) 
  (anim 
    (name "pain") 
    (basedir players/ryu/hurt/) 
    (offset 0 8) 
    (delay 8) 
    (frame ryu-hurt01.png) 
    (delay 40) 
    (sound players/ryu/hurt/hurt.wav) 
    (frame ryu-hurt02.png) 
    (delay 8) 
    (frame ryu-hurt01.png)) 
  (anim 
    (name "fall") 
    (basedir players/ryu/fall/) 
    (offset 0 4) 
    (delay 8) 
    (frame ryu-fall01.png) 
    (frame ryu-fall02.png) 
    (frame ryu-fall03.png) 
    (frame ryu-fall04.png) 
    (frame ryu-fall05.png) 
    (frame ryu-fall06.png) 
    (frame ryu-fall07.png) 
    (frame ryu-fall08.png) 
    (frame ryu-fall09.png) 
    (frame ryu-fall10.png)) 
  (anim 
    (name "rise") 
    (basedir players/ryu/rise/) 
    (offset 0 4) 
    (delay 10) 
    (frame ryu-rise01.png) 
    (frame ryu-rise02.png) 
    (frame ryu-rise03.png)) 
  (anim 
    (name "land") 
    (basedir players/ryu/jump/) 
    (offset 0 2) 
    (delay 25) 
    (frame ryu-jump01.png)) 
  (anim 
    (name "throw") 
    (keys key_back key_attack1) 
    (basedir ./players/ryu/throw/) 
    (status grab) 
    (delay 9) 
    (offset 3 0) 
    (frame 1.png) 
    (frame 2.png) 
    (delay 30) 
    (offset 3 1) 
    (frame 3.png) 
    (delay 9) 
    (frame 4.png) 
    (frame 5.png)))
