'KNIGHT GAME

START:

I=0
N=0

'SPRITES
'0-2 PLAYER AND SWORD/SHIELD
'3-12 ZOMBIES
'13-20 DEMON AND AXE
'21-23 ITEM PICKUPS
'24 DUST EFFECT
'25 BLOOD EFFECT
'26 SOUL EFFECT
'27-31 SCENERY
'32-63 GROUND

DIM GLOBAL PLAYER(17)
'0-X 1-Y 2-X SPEED 3-Y SPEED
'4-HEALTH 5-STAMINA
'6-ARMOR COLOR 7-SWORD COLOR
'8-SHIELD COLOR 9-ACTION
'0=STANDING 1=WALKING
'2=LOOK DOWN 3=KNEELING
'4=ATTACKING 5=BLOCKING
'6=JUMPING 7=CLIMBING
'8=DEAD 9=MENU
'10-DIRECTION
'11-ATTACK DAMAGE 
'12-ATTACK BUILD UP SPEED
'13-ATTACK RECOVER SPEED
'14-ARMOR STRENGTH 15-AGILITY
'16-EQUIPMENT LEVEL
'17-ANIMATION TIMER
PLAYER(4)=100
PLAYER(6)=2
PLAYER(7)=2
PLAYER(11)=1
PLAYER(12)=15
PLAYER(13)=15
PLAYER(14)=1
PLAYER(15)=1
PLAYER(16)=1

DIM GLOBAL ZOMBIE(5,5)
'0-X 1-Y 2-HEALTH 3-ACTION
'0=DISABLED 1=SPAWNING
'2=STANDING 3=WALKING
'4-DIRECTION 5-TIMER
'ZOMBIE SPAWN HEALTH
ZH=3
FOR I=0 TO 4
  ZOMBIE(5,I)=RND(600)+300+(600*I)
  ZOMBIE(4,I)=1
  ZOMBIE(2,I)=ZH
  SPRITE.A (I*2)+3,(2,1,,)
  SPRITE.A (I*2)+4,(2,1,,)
NEXT I

DIM GLOBAL DEMON(5)
'0-X 1-Y 2-HEALTH 3-ACTION
'4-DIRECTION 5-TIMER
'DEMON ACTIONS:
'0=DISABLED 1=STANDING
'2=WALKING 3=JUMPING/CLIMBING
'4=ATTACKING

'FIRE
FX=0
FY=0
'SPRITE
FS=0
GLOBAL FX,FY,FS

'DUST EFFECT
'DUST TIMER
DT=0
DIM DUST(3,2)
'0=X 1=Y 2=XSPEED
SPRITE.A 24,(1,,,,)
DUST(2,0)=0.5
DUST(2,1)=-0.5

'BLOOD EFFECT
'BLOOD TIMER
BT=0
DIM BLOOD(4,3)
'0=X 1=Y 2=XSPEED 3=YSPEED
SPRITE.A 25,(4,,,,)

'SOUL EFFECT
'SOULS TIMER
'SOULS FLY IN RANDOM DIRECTIONS,
'THEN QUICKLY TOWARD THE PLAYER
ST=0
DIM SOULS(4,3)
'0=X 1=Y 2=XSPEED 3=YSPEED
SX=0
SY=0
SPRITE.A 26,(4,,,,)

'MAP GENERATION
'ELEVATION
E=0
'LENGTH
L=0
'LEFTMOST SPRITE
S=0
'SPRITE INDEX TO X POSITION PAIR
DIM GROUND(32,2)
DIM SCENE(2,5)
T=0

'SOUL POINTS
SP=100
'DEMON CHASE TIMER
CHASE=3600
'FIRE DISTANCE
FD=560
'X POSITION OF VIEWPOINT
SCENEX=0
GLOBAL SCENEX

GAMEPAD 1

BG SOURCE ROM(3)
BG 1
BG COPY 0,0,20,20 TO 12,0
BG COPY 0,0,20,20 TO 0,0
ATTR (1,,,,)
BG 0
BG FILL 0,0 TO 32,32 CHAR 55

'CREATE GROUND
E=72
L=6

FOR I=0 TO 31
  SPRITE I+32,I * 8,E,32 + RND(2)
  GROUND(I,0)=I+32
  GROUND(I,1)=I*8
NEXT I

'SHOW PLAYER KNEELING AND A FIRE
SPRITE.A 0,(1,,,,)
SPRITE.A 1,(1,,,,)
SPRITE.A 2,(1,,,,)
PLAYER(0)=32
PLAYER(1)=E - 6
PLAYER(9)=3
SPRITE 0,PLAYER(0),PLAYER(1)-8,4
SPRITE 1,PLAYER(0),PLAYER(1),20

SPRITE.A 30,(4,0,,,)
FX=40
FY=E-8
FS=30
SPRITE FS,FX,FY,49

'WRITE TITLE TEXT
BG 1
TEXT 4,4,"KNIGHT GAME"
TEXT 6,6,"PRESS A"

TITLE:

CALL ANIMATE

IF BUTTON(0) THEN GOTO TITLEA

GOTO TITLE

TITLEA:

'CLEAR TITLE
BG FILL 4,4 TO 14,6 CHAR 0

'STAND PLAYER UP
PLAYER(17)=20

RANDOMIZE TIMER

'.........................
MAIN:

'INPUT..........

IF UP TAP(0) AND PLAYER(9)<2 THEN
  PLAYER(9)=6
  SPRITE 1,,,19
  PLAYER(3)=-4 * PLAYER(15)
  PLAYER(1)=PLAYER(1)-2
END IF

IF DOWN TAP(0) AND PLAYER(9)<2 THEN
  PLAYER(9)=3
  PLAYER(17)=30
  PLAYER(2)=0
  SPRITE 0,,,4
  SPRITE 1,,,20
  'BONFIRE ITEM SELECTION
  IF SPRITE HIT(1,27 TO 31) THEN
    IF SPRITE.C(HIT)=49 OR SPRITE.C(HIT)=50 THEN
      BG 0
      SCROLL 0,0,0
      TEXT 2,5,"CURRENT SOULS: "+STR$(SP)
      TEXT 2,6,"SWORD: "+STR$(PLAYER(11))+"/"+STR$(60-PLAYER(12)+PLAYER(13))
      TEXT 2,7,"ARMOR: %"+STR$(PLAYER(14)*100)+"/%"+STR$(PLAYER(15)*100)
      REPEAT
        WAIT VBL
      UNTIL BUTTON TAP(0,0) OR SP>50
      IF SP>=50 THEN
        N=40
        TEXT 3,1,"TEMPT FATE FOR"
        TEXT 5,2," 50 SOULS"
        SPRITE 21,40,32,52+RND(1)
        SPRITE.A 21,(RND(7),,,)
        SPRITE 22,72,32,52+RND(1)
        SPRITE.A 22,(RND(7),,,)
        SPRITE 23,104,32,52+RND(1)
        SPRITE.A 23,(RND(7),,,)
        REPEAT
          SPRITE 24,N,24,48
          IF RIGHT TAP(0) THEN
            N=N+32
            IF N>104 THEN N=40
          END IF
          IF LEFT TAP(0) THEN
            N=N-32
            IF N<40 THEN N=104
          END IF
          WAIT VBL
        UNTIL BUTTON TAP(0,0)
        BG FILL 0,0 TO 32,32 CHAR 55
        TEXT 2,1,"THE TRADE IS MADE"
        SP=SP-50
        N=(N-8)/32
        IF SPRITE.C(20+N)=52 THEN
          PLAYER(11)=PLAYER(11)+((RND(10)-5)*PLAYER(16)/5)
          PLAYER(12)=PLAYER(12)+((RND(10)-5)*PLAYER(16)/5)
          PLAYER(13)=PLAYER(13)+((RND(10)-5)*PLAYER(16)/5)
          N=SPRITE.A(20+N)
          SPRITE.A 2,N
          SPRITE.A 2,(,PLAYER(10),,)
        ELSE
          PLAYER(14)=PLAYER(14)+((RND(10)-5)/PLAYER(16)/100)
          PLAYER(15)=PLAYER(15)+((RND(10)-5)/PLAYER(16)/100)
          N=SPRITE.A(20+N)
          SPRITE.A 0,N
          SPRITE.A 0,(,PLAYER(10),,)
          SPRITE.A 1,N
          SPRITE.A 1,(,PLAYER(10),,)
        END IF
        INC PLAYER(16)
        TEXT 2,6,"SWORD: "+STR$(PLAYER(11))+"/"+STR$(60-PLAYER(12)+PLAYER(13))
        TEXT 2,7,"ARMOR: %"+STR$(PLAYER(14)*100)+"/%"+STR$(PLAYER(15)*100)
        REPEAT
          WAIT VBL
        UNTIL BUTTON TAP(0,0)
      END IF
      SPRITE OFF 21
      SPRITE OFF 22
      SPRITE OFF 23
      SPRITE OFF 24
      BG FILL 0,0 TO 32,32 CHAR 55
      DUST(0,0)=SPRITE.X(FS)
      DUST(0,1)=SPRITE.X(FS)
      DUST(1,0)=SPRITE.Y(FS)
      DUST(1,1)=SPRITE.Y(FS)
      DT=60
      SPRITE OFF FS
      FS=0
    END IF
  END IF
END IF

IF RIGHT(0) AND PLAYER(9)<2 AND PLAYER(2)<PLAYER(15) THEN
  PLAYER(2)=PLAYER(2)+0.05
  PLAYER(9)=1
  PLAYER(10)=0
  SPRITE.A 0,(,0,,,)
  SPRITE.A 1,(,0,,,)
  IF PLAYER(17)=0 THEN
    PLAYER(17)=11
  END IF
END IF

IF LEFT(0) AND PLAYER(9)<2 AND PLAYER(2)>-PLAYER(15) THEN
  PLAYER(2)=PLAYER(2)-0.05
  PLAYER(9)=1
  PLAYER(10)=1
  SPRITE.A 0,(,1,,,)
  SPRITE.A 1,(,1,,,)
  IF PLAYER(17)=0 THEN
    PLAYER(17)=11
  END IF
END IF

IF NOT RIGHT(0) AND NOT LEFT(0) AND PLAYER(9)=1 THEN
  PLAYER(2)=PLAYER(2) - (SGN(PLAYER(2))/10)
  IF ABS(PLAYER(2))<0.5 THEN
    PLAYER(9)=0
    PLAYER(2)=0
  END IF
END IF

'A BUTTON
IF BUTTON(0,0) AND PLAYER(9)<2 THEN
  PLAYER(9)=4
  PLAYER(17)=PLAYER(12)
  PLAYER(2)=0
  SPRITE 2,PLAYER(0)+(8-(PLAYER(10)*16))-SCENEX,PLAYER(1)-8,5
  SPRITE.A 2,(,PLAYER(10),,)
END IF

'B BUTTON
IF BUTTON(0,1) AND PLAYER(9)<2 THEN
  PLAYER(9)=5
  PLAYER(17)=30
  PLAYER(2)=0
  SPRITE 2,PLAYER(0)+(8-(PLAYER(10)*16))-SCENEX,PLAYER(1)-4,22
  SPRITE.A 2,(,PLAYER(10),,)
END IF

'SPRITE UPDTE.........

SCROLL 1,SCENEX/4,0

SPRITE 0,PLAYER(0)-SCENEX,PLAYER(1)-8,
SPRITE 1,PLAYER(0)-SCENEX,PLAYER(1),

FOR I=0 TO 31
  SPRITE GROUND(I,0),GROUND(I,1)-SCENEX,,
NEXT I

FOR I=0 TO 4
  IF NOT ZOMBIE(3,I)=0 THEN
    SPRITE 3+(I*2),ZOMBIE(0,I)-SCENEX,ZOMBIE(1,I),
    SPRITE 4+(I*2),ZOMBIE(0,I)-SCENEX,ZOMBIE(1,I)+8,
  END IF
NEXT I

'SCENERY
FOR I=0 TO 4
  IF SCENE(0,I)<>0 THEN
    SPRITE SCENE(0,I),SCENE(1,I)-SCENEX,,
    IF SCENE(1,I)<SCENEX-8 THEN
      SPRITE OFF SCENE(0,I)
      SCENE(0,I)=0
    END IF
  END IF
NEXT I

'GROUND GENERATION.........

IF GROUND(S,1)<=SCENEX-8 THEN
  GROUND(S,1)=GROUND(S,1)+256
  SPRITE GROUND(S,0),GROUND(S,1)-SCENEX,E,32 + RND(2)
  'ADD SCENERY
  'IF RND(4)=0 THEN
  IF 1=1 THEN
    I=0
    WHILE I<=4
      IF T<=0 THEN
        'CREATE TREE
        IF SCENE(0,0)=0 AND SCENE(0,1)=0 AND SCENE(0,2)=0 AND SCENE(0,3)=0 AND SCENE(0,4)=0 THEN
          T=15
          SPRITE 27,GROUND(S,1)-SCENEX-8,E-16,13
          SPRITE.A 27,(5,,,,)
          SCENE(0,0)=27
          SPRITE 28,GROUND(S,1)-SCENEX,E-24,14
          SPRITE.A 28,(5,,,,)
          SCENE(0,1)=28
          SPRITE 29,GROUND(S,1)-SCENEX,E-16,14
          SPRITE.A 29,(6,,,,)
          SCENE(0,2)=29
          SPRITE 30,GROUND(S,1)-SCENEX,E-8,22
          SPRITE.A 30,(5,,,,)
          SCENE(0,3)=30
          SPRITE 31,GROUND(S,1)-SCENEX+8,E-16,15
          SPRITE.A 31,(7,,,,)
          SCENE(0,4)=31
          I=5
        END IF
      ELSE
        'CREATE SCENERY
        DEC T
        IF SCENE(0,I)=0 THEN
          SCENE(0,I)=27+I
          SCENE(1,I)=GROUND(S,1)-SCENEX
          SPRITE SCENE(0,I),SCENE(1,I),E-8,
          IF RND(2)=0 THEN
            SPRITE SCENE(0,I),,,13
            SPRITE.A SCENE(0,I),(1,,,,)
          ELSE
            SPRITE SCENE(0,I),,,15
            SPRITE.A SCENE(0,I),(5,,,,)
          END IF
          IF FD<SCENEX THEN
            FD=SCENEX+560
            FX=SCENE(1,I)
            FY=E-8
            SPRITE.A SCENE(0,I),(4,0,,,)
            FS=SCENE(0,I)
            SPRITE FS,FX,FY,49
          END IF
          I=5
        END IF
      END IF
      INC I
    WEND
  END IF
  IF L<=1 THEN
    SPRITE GROUND(S,0),,,35+RND(1)
    SPRITE.A GROUND(S,0),(,0,,,)
  END IF
  INC S
  IF S>31 THEN S=0
  DEC L
  IF L<=0 THEN
    L=3 + RND(15)
    E= E+((RND(5)-2)*8)
    IF E<32 THEN E=40
    IF E>120 THEN E=112
    SPRITE GROUND(S,0),,,35
    SPRITE.A GROUND(S,0),(,1,,,)
  END IF
END IF

'COLLISIONS.........

'PLAYER GROUND COLLISION
IF SPRITE HIT(1,32 TO 63) OR SPRITE HIT(0,32 TO 63) THEN
  IF PLAYER(1)>SPRITE.Y(HIT)-6 THEN
    PLAYER(3)=0
    PLAYER(2)=0
    PLAYER(0)=SPRITE.X(HIT)+SCENEX
    PLAYER(9)=7
    SPRITE 0,,,3
    SPRITE 1,,,19
    DEC PLAYER(1)
  ELSE
    PLAYER(3)=0
    PLAYER(1)=SPRITE.Y(HIT)-6
  END IF
ELSE IF PLAYER(3)<5 THEN
  PLAYER(3)=PLAYER(3)+0.3
  PLAYER(9)=6
  SPRITE 1,,,19
END IF

'PLAYER ZOMBIE COLLISION
IF SPRITE HIT(1,3 TO 12) OR SPRITE HIT(0,3 TO 12) THEN
  PLAYER(1)=PLAYER(1)-2
  PLAYER(2)=SGN(PLAYER(0)-SCENEX-SPRITE.X(HIT))
  PLAYER(3)=-1
  PLAYER(4)=PLAYER(4)-1
  PLAYER(9)=6
  SPRITE 1,,,19
  SPRITE OFF 2
END IF

'ZOMBIE SWORD COLLISION
IF SPRITE HIT(2,3 TO 12) AND SPRITE.C(2)=21 THEN
  FOR I=0 TO 2
    BLOOD(0,I)=SPRITE.X(HIT)+SCENEX
    BLOOD(1,I)=SPRITE.Y(HIT)
    BLOOD(2,I)=(0.5-RND)*3
    BLOOD(3,I)=(0.5-RND)*3
  NEXT I
  BT=30
  N=INT((HIT-3)/2)
  ZOMBIE(2,N)=ZOMBIE(2,N)-PLAYER(11)
  ZOMBIE(5,N)=30
  SPRITE.A (N*2)+3,(4,,,,)
  SPRITE.A (N*2)+4,(4,,,,)
  PLAYER(17)=PLAYER(13) + PLAYER(17)
  SPRITE 2,,PLAYER(1),6
END IF

'ZOMBIE SHIELD COLLISION
IF SPRITE HIT(2,3 TO 12) AND SPRITE.C(2)=22 THEN
  N=INT((HIT-3)/2)
  ZOMBIE(5,N)=120
END IF

'MOVEMENT..........

IF PLAYER(3)=0 AND PLAYER(9)=6 THEN
  PLAYER(9)=3
  PLAYER(17)=20
  PLAYER(2)=0
  SPRITE 0,,,4
  SPRITE 1,,,20
  DUST(0,0)=PLAYER(0)
  DUST(0,1)=PLAYER(0)
  DUST(1,0)=PLAYER(1)
  DUST(1,1)=PLAYER(1)
  DT=60
END IF

PLAYER(0)=PLAYER(0)+PLAYER(2)
PLAYER(1)=PLAYER(1)+PLAYER(3)

IF PLAYER(0)<SCENEX THEN PLAYER(0)=SCENEX

IF PLAYER(0)> SCENEX + 64 THEN
 SCENEX= PLAYER(0)-64
END IF

'ARTIFICIAL INTELLIGENCE.......

'ZOMBIES
FOR I=0 TO 4
  DEC ZOMBIE(5,I)
  'IF ZOMBIE IS DEAD
  IF ZOMBIE(2,I)<=0 THEN
    ZOMBIE(2,I)=ZH
    ZOMBIE(3,I)=0
    ZOMBIE(5,I)=RND(240)+(I*240)
    SPRITE OFF (I*2)+3 TO (I*2)+4
    FOR N=0 TO 2
      SOULS(0,N)=ZOMBIE(0,I)
      SOULS(1,N)=ZOMBIE(1,I)
      SOULS(2,N)=(0.5-RND)*6
      SOULS(3,N)=(0.5-RND)*6
    NEXT N
    ST=60
    SP=SP+1
  END IF
  'SPAWNING RISE
  IF ZOMBIE(3,I)=1 THEN
    ZOMBIE(1,I)=ZOMBIE(1,I)-0.2
  END IF
  IF ZOMBIE(5,I)<=0 THEN
    INC ZOMBIE(3,I)
    SPRITE.A (I*2)+3,(2,,,)
    SPRITE.A (I*2)+4,(2,,,)
    IF ZOMBIE(3,I)>3 THEN ZOMBIE(3,I)=2
    'ZOMBIE SPAWNING
    IF ZOMBIE(3,I)=1 THEN
      ZOMBIE(0,I)=(RND(4)*8) + 40 + PLAYER(0)
      ZOMBIE(4,I)=1
      SPRITE.A (I*2)+3,(,1,,,)
      SPRITE.A (I*2)+4,(,1,,,)
      ZOMBIE(1,I)=120
      SPRITE (I*2)+3,ZOMBIE(0,I)-SCENEX,ZOMBIE(1,I),7 + (I MOD 2)
      WHILE NOT SPRITE HIT((I*2)+3,31 TO 63) AND ZOMBIE(1,I)>16
        ZOMBIE(1,I)=ZOMBIE(1,I)-8
        SPRITE (I*2)+3,,ZOMBIE(1,I),
      WEND
      ZOMBIE(1,I)=ZOMBIE(1,I)-2
      SPRITE (I*2)+3,,ZOMBIE(1,I),
      SPRITE (I*2)+4,ZOMBIE(0,I)-SCENEX,ZOMBIE(1,I)+8,23
      'ZOMBIE(2,I)=ZH
      ZOMBIE(5,I)=60
    END IF
    'ZOMBIE WALKING
    IF ZOMBIE(3,I)=2 THEN
      ZOMBIE(0,I)=ZOMBIE(0,I)+4-(ZOMBIE(4,I)*8)
      ZOMBIE(5,I)=30
      SPRITE (I*2)+4,ZOMBIE(0,I)-SCENEX,,24
    END IF
    IF ZOMBIE(3,I)=3 THEN
      ZOMBIE(0,I)=ZOMBIE(0,I)+4-(ZOMBIE(4,I)*8)
      ZOMBIE(5,I)=30
      SPRITE (I*2)+4,ZOMBIE(0,I)-SCENEX,,23
    END IF
    'ZOMBIE TURN AROUND
    IF ZOMBIE(3,I)>1 AND NOT SPRITE HIT((I*2)+4,31 TO 63) THEN
      ZOMBIE(4,I)=(ZOMBIE(4,I)*-1) + 1
      SPRITE.A (I*2)+3,(,ZOMBIE(4,I),,,)
      SPRITE.A (I*2)+4,(,ZOMBIE(4,I),,,)
    END IF
    'OFFSCREEN RESPAWN
    IF ZOMBIE(3,I)>0 THEN
      IF ZOMBIE(0,I)<SCENEX OR ZOMBIE(0,I)>SCENEX+1600 THEN
        ZOMBIE(3,I)=0
        ZOMBIE(5,I)=60+RND(240)
        SPRITE OFF (I*2)+3 TO (I*2)+4
      END IF
    END IF
  END IF
NEXT I

'DEMON
IF CHASE>0 THEN 
  DEC CHASE
ELSE
  'SPAWN DEMON
  
END IF

'ANIMATION..........

'PLAYER ANIMATION
IF PLAYER(17)=0 THEN GOTO SKIP
IF PLAYER(17)>1 THEN
  DEC PLAYER(17)
  GOTO SKIP
END IF
IF PLAYER(9)=7 THEN
  PLAYER(9)=3
  PLAYER(17)=20
  SPRITE 0,,,4
  SPRITE 1,,,20
  GOTO SKIP
END IF
IF PLAYER(9)=3 THEN
  PLAYER(9)=2
  PLAYER(17)=20
  SPRITE 0,,,3
  SPRITE 1,,,18
  GOTO SKIP
END IF
IF PLAYER(9)=2 THEN
  PLAYER(9)=0
  PLAYER(17)=0
  SPRITE 0,,,2
  SPRITE 1,,,18
  GOTO SKIP
END IF
IF PLAYER(9)=1 THEN
  'PLAYER(9)=0
  PLAYER(17)=11
  SPRITE 0,,,2
  SPRITE 1,,,18 + (TIMER MOD 2)
  GOTO SKIP
END IF
IF PLAYER(9)=0 THEN
  PLAYER(17)=0
  SPRITE 0,,,2
  SPRITE 1,,,18
  GOTO SKIP
END IF
IF PLAYER(9)=4 THEN
  IF SPRITE.C(2)=5 THEN
    PLAYER(17)=5
    SPRITE 2,,PLAYER(1)-4,21
    GOTO SKIP
  END IF
  IF SPRITE.C(2)=21 THEN
    PLAYER(17)=PLAYER(13)
    SPRITE 2,,PLAYER(1),6
    GOTO SKIP
  END IF
  IF SPRITE.C(2)=6 THEN
    PLAYER(17)=0
    PLAYER(9)=0
    SPRITE OFF 2
    GOTO SKIP
  END IF
END IF
IF PLAYER(9)=5 THEN
  PLAYER(9)=0
  PLAYER(17)=0
  'SPRITE 0,,,2
  'SPRITE 1,,,18
  SPRITE OFF 2
  GOTO SKIP
END IF

SKIP:

'ANIMATE DUST
IF DT=1 THEN
 SPRITE OFF 24
 DT=0
END IF
IF DT>1 THEN
  SPRITE 24,DUST(0,DT MOD 2)-SCENEX,DUST(1,DT MOD 2),51
  DUST(0,DT MOD 2)=DUST(0,DT MOD 2) + DUST(2,DT MOD 2)
  DEC DT
END IF

'ANIMATE BLOOD
IF BT=1 THEN
  SPRITE OFF 25
  BT=0
END IF
IF BT>1 THEN
  SPRITE 25,BLOOD(0,BT MOD 3)-SCENEX,BLOOD(1,BT MOD 3),51
  BLOOD(0,BT MOD 3)=BLOOD(0,BT MOD 3) + BLOOD(2,BT MOD 3)
  BLOOD(1,BT MOD 3)=BLOOD(1,BT MOD 3) + BLOOD(3,BT MOD 3)
  DEC BT
END IF

'ANIMATE SOULS
IF ST=1 THEN
  SPRITE OFF 26
  ST=0
END IF
IF ST>1 THEN
  SPRITE 26,SOULS(0,ST MOD 3)-SCENEX,SOULS(1,ST MOD 3),54
  SX=PLAYER(0)-SOULS(0,ST MOD 3)
  SY=PLAYER(1)-SOULS(1,ST MOD 3)
  I=SQR((SX*SX)+(SY*SY))
  SX=SX/I
  SY=SY/I
  SOULS(2,ST MOD 3)=SOULS(2,ST MOD 3) + SX
  SOULS(3,ST MOD 3)=SOULS(3,ST MOD 3) + SY
  SOULS(0,ST MOD 3)=SOULS(0,ST MOD 3) + SOULS(2,ST MOD 3)
  SOULS(1,ST MOD 3)=SOULS(1,ST MOD 3) + SOULS(3,ST MOD 3)
  DEC ST
END IF


CALL ANIMATE

WAIT VBL

GOTO MAIN
'.........................

SUB ANIMATE
'REPEATED EACH FRAME

'SCROLL RAIN
SCROLL 0,TIMER MOD 8,(TIMER MOD 8) * -1

'ANIMATE FIRE
IF FS<>0 THEN
  SPRITE FS,FX-SCENEX,FY,INT((TIMER MOD 10)/5)+49
  SPRITE.A FS,(,INT((TIMER MOD 20)/10),,,)
  IF FX-SCENEX<=-8 THEN 
    SPRITE OFF FS
  END IF
END IF

'WAIT VBL

END SUB

#1:MAIN PALETTES
05192914003F2A150030082400302400
00303C2400080C040008240400382410

#2:MAIN CHARACTERS
00000000000000000000000000000000
0000387EE7003EFF0010000018FFFFFF
1C382C2030384C361C3E323E3C38787C
000E112422304836000E1F3B3D3E7C7C
0000001C302C20200000001C3E323E3C
15152A2A5454A8A8030306060C0C1818
50A8542A150A050280C06030180C0603
1E3260445155F4901E3E7E7B7F75B4E8
0040506060705E501078687A7E7E7E7C
00000000000000000000000001030307
1C7FF010601000041C7FF0F090E8FCFC
4A9191494A4A4440266F6F2726262420
0E101725498F0000000C0813274F8000
1C20495145498282001E372F3F3F7E7E
181834386E563AFD0000080C14386C46
0669944A2523242800066C78323F3C38
0000000EFB6006FF00000040049FFFFF
00000000C73800E70000000200C7FFFF
26301870303C3E007C7C303850707C3E
263018766F787C007C7C3038BEE6F878
4C362E177C6E6F40787C7C7EFED8DE0F
000FF00FF00FF000000000000FFFF000
2CC4CC485810300030F8F07060604000
D040723E40A48022E0706C3E7848CC4C
D0725E2020283054E06E7E3838302828
000001070C011008070703070F0F1F1F
6010C07018C0FA00FCF8F8F0F8F806FE
40404040404040402020202020202020
01020408102040800001020408102040
0103070F1D1B37180000000002062F18
FFFFFFFFFFF7810003113064CE9B3D3C
80C0E0B0D8EC7C300000004060B04C30
FFFF000000FFFFFF0000FFFFFFFFFFFF
FFFF49002277FFFF0000B6FFFFFFFFFF
D8FD7F1E84E1FBFF000080E1FBFFFFFF
FCE20444E2F2F0FC001CF8F8FCFCFCFC
FEFE0606E6E6F0FE0000F8F8F8F8FEFE
FFCF87C7EFF1E7FFFFFFFBB993CFFFFF
FFFFFBE3C78FFFFFFFF3E7DFBFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FAF2FAFAF2E2F2FAFCFCFCFCFCFCFCFC
04030000000C0F071F0F0F0F0F0F0F07
0218E0000030E0E0FEFEF8F0F0F0E0E0
100C0300000C0F071F0F0F0F0F0F0F07
086090000030E0E0F8F8F8F0F0F0E0E0
00000000000000000000000000000000
2C544428242C2CD31C3C3C181C1C142F
00000000000000000000000000000000
7C44444482040810003C3C3C7E7C3810
100C204024583C66000010203C383C66
4400284226183C66000000242C3C3C66
34000580200046103400218802104210
02050A14A85020100103060C18306090
3048449A0921063800303864F6DF7E38
0018245A5A24180000183C66663C1800
00202000040400000000000000000000
00000000000000000000000000000000
070E000000000101070F0F0F1F1F1F0F
E0600000000086C7E0E0F0F0F07CFEFF
07060000000000000707030307070703
E06000000000D8FCE0E0E0E0F070F8FC

#3:MAIN BG
00001410000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000010081008
11000100110810081000010801001100
11081108100801000108110010000100
10001100270827082708270827082708
27082708270827082708270827082700
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270827082708270827082708
27082708270027002700270027002700
27002700270027002700270027002700
27002700270027002700270027002700
27002700270027002700270027002700
27002700270027002700270027002700
27002700

