'SLAY V4 REMAKE
_TITLE "SLAY V4" 'SET TITLE
_FULLSCREEN 'SET FULLSCREEN
SCREEN 12

'DECLARE VARIABLES
'SAVE DATA VARS
DIM SHARED save.point AS INTEGER
DIM SHARED saveData$(1000)

'PLAYER VARS
DIM SHARED player.name AS STRING
DIM SHARED player.health AS INTEGER
DIM SHARED player.basehealth AS INTEGER
DIM SHARED player.atk AS INTEGER
DIM SHARED player.def AS INTEGER
DIM SHARED player.spd AS INTEGER

'ENEMY DATA HOLDERS
DIM SHARED enemy.name(1000) AS STRING
DIM SHARED enemy.health(1000) AS INTEGER
DIM SHARED enemy.atk(1000) AS INTEGER
DIM SHARED enemy.def(1000) AS INTEGER
DIM SHARED enemy.spd(1000) AS INTEGER
DIM SHARED enemy.index AS INTEGER

'PLAYER STATS
DIM SHARED stats.enemyskilled AS INTEGER
DIM SHARED stats.totaldeaths AS INTEGER

'SCREEN AND FORMATTING VARS
DIM SHARED w AS INTEGER
DIM SHARED h AS INTEGER

'GET THE SCREEN DIMSENSIONS
w = _WIDTH
h = _HEIGHT

'SET THE COLOR
col = _RGBA(255, 255, 255, 255)

'START GAME
LoadData

SUB LoadData
    'LOAD SAVE DATA
    OPEN "SlayV4SaveData.txt" FOR INPUT AS #1
    DO UNTIL EOF(1) 'LOOP UNTIL END OF FILE
        filecount = filecount + 1 'COUNT AMOUNT OF LINES
        LINE INPUT #1, file$
        saveData$(filecount) = file$
    LOOP
    CLOSE #1

    IF filecount = 8 THEN
        'PLAYER
        player.name = UCASE$(saveData$(1)) 'LOAD NAME
        player.basehealth = VAL(saveData$(2)) 'LOAD BASE HEALTH
        player.health = player.basehealth 'SET PLAYER HEALTH
        player.atk = VAL(saveData$(3)) 'LOAD ATTACK
        player.def = VAL(saveData$(4)) 'LOAD DEFENCE
        player.spd = VAL(saveData$(5)) 'LOAD SPEED
        'SAVE DATA
        save.point = VAL(saveData$(6)) 'LOAD SAVE POINT
        'STATS
        stats.enemyskilled = VAL(saveData$(7)) 'ENEMYS KILLED
        stats.totaldeaths = VAL(saveData$(8)) 'TOTAL DEATHS
    ELSE
        'CREATE NEW SAVE FILE
        _PRINTSTRING (w / 2 - 70, h / 2), "Enter your name: "
        LOCATE 18, 35: INPUT "", name$

        'SET VARS
        player.name = UCASE$(name$)
        player.health = 100
        player.atk = 10
        player.def = 10
        player.spd = 10
        save.point = 0
        stats.enemyskilled = 0
        stats.totaldeaths = 0

        'SAVE VARS TO TXT
        OPEN "SlayV4SaveData.txt" FOR OUTPUT AS #1
        'PLAYER
        PRINT #1, name$
        PRINT #1, player.health
        PRINT #1, player.atk
        PRINT #1, player.def
        PRINT #1, player.spd
        'SAVE DATA
        PRINT #1, save.point
        'STATS
        PRINT #1, stats.enemyskilled
        PRINT #1, stats.totaldeaths
        CLOSE #1
        CLS
    END IF

    'LOAD GAME DATA

    'ENEMY DATA
    'NAME
    DATA "Minion","Minion","Minion","Boss"
    FOR n = 1 TO 4
        READ enemy.name(n)
    NEXT n

    'HEALTH
    DATA 15,15,15,25
    FOR n = 1 TO 4
        READ enemy.health(n)
    NEXT n

    'ATK
    DATA 1,2,2,5
    FOR n = 1 TO 4
        READ enemy.atk(n)
    NEXT n

    'DEF
    DATA 5,5,5,10
    FOR n = 1 TO 4
        READ enemy.def(n)
    NEXT n

    'SPD
    DATA 2,5,5,10
    FOR n = 1 TO 4
        READ enemy.spd(n)
    NEXT n

    'START GAME
    _DELAY (1)
    DrawLogo
END SUB

SUB DrawLogo
    'FADE LOGO IN
    FOR n = 0 TO 255
        'LIMIT FPS
        _LIMIT 1000
        'TOP LINE
        LINE (w / 6 * 2, h / 6 * 1.5)-(w / 6 * 4, h / 6 * 2), col, BF
        LINE (w / 6 * 1.8, h / 6 * 1.5)-(w / 6 * 4.25, h / 6 * 1.75), col, BF

        'MIDDLE
        LINE (w / 6 * 3.5, h / 6 * 2)-(w / 6 * 4, h / 6 * 2.5), col, BF
        LINE (w / 6 * 3.25, h / 6 * 2.25)-(w / 6 * 3.75, h / 6 * 3), col, BF
        LINE (w / 6 * 2.75, h / 6 * 2.75)-(w / 6 * 3.5, h / 6 * 3.25), col, BF
        LINE (w / 6 * 2.25, h / 6 * 3)-(w / 6 * 3.25, h / 6 * 3.5), col, BF
        LINE (w / 6 * 2, h / 6 * 3.25)-(w / 6 * 2.5, h / 6 * 3.75), col, BF

        'BOTTOM LINE
        LINE (w / 6 * 1.75, h / 6 * 3.75)-(w / 6 * 4.25, h / 6 * 4.25), col, BF
        LINE (w / 6 * 1.5, h / 6 * 4)-(w / 6 * 4.5, h / 6 * 4.25), col, BF
        col = _RGB(n, n, n)
        _DISPLAY
    NEXT n


    'DRAW LOGO
    LINE (w / 6 * 2, h / 6 * 1.5)-(w / 6 * 4, h / 6 * 2), col, BF
    LINE (w / 6 * 1.8, h / 6 * 1.5)-(w / 6 * 4.25, h / 6 * 1.75), col, BF

    'MIDDLE
    LINE (w / 6 * 3.5, h / 6 * 2)-(w / 6 * 4, h / 6 * 2.5), col, BF
    LINE (w / 6 * 3.25, h / 6 * 2.25)-(w / 6 * 3.75, h / 6 * 3), col, BF
    LINE (w / 6 * 2.75, h / 6 * 2.75)-(w / 6 * 3.5, h / 6 * 3.25), col, BF
    LINE (w / 6 * 2.25, h / 6 * 3)-(w / 6 * 3.25, h / 6 * 3.5), col, BF
    LINE (w / 6 * 2, h / 6 * 3.25)-(w / 6 * 2.5, h / 6 * 3.75), col, BF

    'BOTTOM LINE
    LINE (w / 6 * 1.75, h / 6 * 3.75)-(w / 6 * 4.25, h / 6 * 4.25), col, BF
    LINE (w / 6 * 1.5, h / 6 * 4)-(w / 6 * 4.5, h / 6 * 4.25), col, BF

    _PRINTSTRING (w / 2 - 50, h / 6 * 4.5), "ZEPPELIN GAMES"
    _DISPLAY
    _DELAY (3) 'WAIT A BIT

    'FADE THE LOGO OUT
    FOR n = 0 TO 255
        'LIMIT FPS
        _LIMIT 1000
        'TOP LINE
        LINE (w / 6 * 2, h / 6 * 1.5)-(w / 6 * 4, h / 6 * 2), col, BF
        LINE (w / 6 * 1.8, h / 6 * 1.5)-(w / 6 * 4.25, h / 6 * 1.75), col, BF

        'MIDDLE
        LINE (w / 6 * 3.5, h / 6 * 2)-(w / 6 * 4, h / 6 * 2.5), col, BF
        LINE (w / 6 * 3.25, h / 6 * 2.25)-(w / 6 * 3.75, h / 6 * 3), col, BF
        LINE (w / 6 * 2.75, h / 6 * 2.75)-(w / 6 * 3.5, h / 6 * 3.25), col, BF
        LINE (w / 6 * 2.25, h / 6 * 3)-(w / 6 * 3.25, h / 6 * 3.5), col, BF
        LINE (w / 6 * 2, h / 6 * 3.25)-(w / 6 * 2.5, h / 6 * 3.75), col, BF

        'BOTTOM LINE
        LINE (w / 6 * 1.75, h / 6 * 3.75)-(w / 6 * 4.25, h / 6 * 4.25), col, BF
        LINE (w / 6 * 1.5, h / 6 * 4)-(w / 6 * 4.5, h / 6 * 4.25), col, BF
        col = _RGB(255 - n, 255 - n, 255 - n)
        _DISPLAY
    NEXT n
    CLS
    _DISPLAY
    _DELAY (2)
    DrawMenu
END SUB

SUB DrawMenu
    'FADE IN MENU SCREEN
    FOR n = 0 TO 255
        _LIMIT 1000
        'S
        LINE (w / 10 * 2.75, h / 10 * 1.5)-(w / 10 * 3.5, h / 10 * 1.75), col, BF '1ST ACROSS
        LINE (w / 10 * 2.75, h / 10 * 1.5)-(w / 10 * 3, h / 10 * 2.5), col, BF '1ST DOWN
        LINE (w / 10 * 2.75, h / 10 * 2.5)-(w / 10 * 3.45, h / 10 * 2.75), col, BF '2ND ACROSS
        LINE (w / 10 * 3.2, h / 10 * 2.75)-(w / 10 * 3.45, h / 10 * 2.9), col, BF '2ND DOWN
        LINE (w / 10 * 3.2, h / 10 * 3.35)-(w / 10 * 3.45, h / 10 * 3.75), col, BF 'EXTENDED 2ND DOWN
        LINE (w / 10 * 2.65, h / 10 * 3.75)-(w / 10 * 3.45, h / 10 * 4.1), col, BF '3RD ACROSS

        'L
        LINE (w / 10 * 3.8, h / 10 * 1.5)-(w / 10 * 4.05, h / 10 * 2.65), col, BF '1ST DOWN
        LINE (w / 10 * 3.8, h / 10 * 3.6)-(w / 10 * 4.05, h / 10 * 3.75), col, BF 'EXTENDED 1ST DOWN
        LINE (w / 10 * 3.8, h / 10 * 3.75)-(w / 10 * 4.6, h / 10 * 4.1), col, BF '1ST ACROSS

        'A
        LINE (w / 10 * 4.85, h / 10 * 1.5)-(w / 10 * 5.1, h / 10 * 2.7), col, BF 'LEFT DOWN
        LINE (w / 10 * 4.85, h / 10 * 1.5)-(w / 10 * 5.75, h / 10 * 1.8), col, BF 'TOP LINE
        LINE (w / 10 * 5.5, h / 10 * 1.5)-(w / 10 * 5.75, h / 10 * 2.7), col, BF 'RIGHT DOWN
        LINE (w / 10 * 5.55, h / 10 * 1.5)-(w / 10 * 5.75, h / 10 * 2.9), col, BF 'RIGHT DOWN EDGE
        LINE (w / 10 * 4.85, h / 10 * 2.4)-(w / 10 * 5.75, h / 10 * 2.65), col, BF 'MIDDLE LINE
        LINE (w / 10 * 4.85, h / 10 * 3.5)-(w / 10 * 5.1, h / 10 * 4.1), col, BF 'EXTENDED LEFT DOWN
        LINE (w / 10 * 5.5, h / 10 * 3.5)-(w / 10 * 5.75, h / 10 * 4.1), col, BF 'EXTENDED RIGHT DOWN
        LINE (w / 10 * 5.55, h / 10 * 3.35)-(w / 10 * 5.75, h / 10 * 4.1), col, BF 'EXTENDED RIGHT DOWN EDGE

        'Y
        LINE (w / 10 * 6, h / 10 * 1.5)-(w / 10 * 6.25, h / 10 * 2.75), col, BF 'LEFT DOWN
        LINE (w / 10 * 6.75, h / 10 * 1.5)-(w / 10 * 7, h / 10 * 3), col, BF 'RIGHT DOWN
        LINE (w / 10 * 6, h / 10 * 2.5)-(w / 10 * 7, h / 10 * 2.85), col, BF '1ST ACROSS
        LINE (w / 10 * 6.75, h / 10 * 3.25)-(w / 10 * 7, h / 10 * 4.1), col, BF 'EXTENDED RIGHT DOWN
        LINE (w / 10 * 6, h / 10 * 3.8)-(w / 10 * 7, h / 10 * 4.1), col, BF 'BOTTOM LINE

        'SWORD
        LINE (w / 10 * 3, h / 10 * 3)-(w / 10 * 6.5, h / 10 * 3.25), col, BF 'HILT
        LINE (w / 10 * 3.5, h / 10 * 2.5)-(w / 10 * 3.75, h / 10 * 3.75), col, BF 'Hand Guard
        LINE (w / 10 * 3.75, h / 10 * 2.75)-(w / 10 * 4.75, h / 10 * 3.50), col, BF 'Blade First Layer
        LINE (w / 10 * 4.75, h / 10 * 2.85)-(w / 10 * 5.5, h / 10 * 3.4), col, BF 'Blade 2nd Layer
        LINE (w / 10 * 5.5, h / 10 * 3.10)-(w / 10 * 7, h / 10 * 3.15), col, BF 'Tip of Blade

        col = _RGB(n, n, n)
    NEXT n

    col = _RGB(0, 0, 0)
    LINE (w / 10, h / 10 * 4.7)-(w, h / 10 * 7), col, BF 'CLEAR OPTIONS

    'PRINT MENU OPTIONS
    _PRINTSTRING (w / 2 - 55, h / 10 * 4.75), "SINGLE-PLAYER"
    _PRINTSTRING (w / 2 - 50, h / 10 * 5.25), "MULTI-PLAYER"
    _PRINTSTRING (w / 2 - 35, h / 10 * 5.75), "OPTIONS"
    _PRINTSTRING (w / 2 - 25, h / 10 * 6.25), "QUIT"
    _PRINTSTRING (w / 2 - 200, h / 10 * 9.5), "TIP: USE 'w' AND 's' TO NAVIGATE. PRESS 'ENTER' TO SELCT"

    'PICK MENU OPTION
    opt = 0
    col = _RGB(0, 0, 0)
    DO
        LINE (w / 2 - 58, h / 10 * 4.7)-(w / 2 - 70, h / 10 * 7), col, BF 'CLEAR PAST POINTERS
        _PRINTSTRING (w / 2 - 65, h / 10 * (4.75 + (0.5 * opt))), ">" 'DISPLAY POINTER
        _DISPLAY 'REDUCE FLICKERING

        SELECT CASE INKEY$
            CASE "s" 'MOVE POINTER DOWN
                IF opt + 1 = 4 THEN
                    opt = 0
                ELSE
                    opt = opt + 1
                END IF

            CASE "w" 'MOVE POINTER UP
                IF opt - 1 = -1 THEN
                    opt = 3
                ELSE
                    opt = opt - 1
                END IF

            CASE CHR$(13) 'ENTER KEY
                'SINGLE-PLAYER SELECTED
                IF opt = 0 THEN
                    SinglePlayerMenu
                END IF

                'MULTI-PLAYER SELECTED
                IF opt = 1 THEN
                    MultiplayerGameMenu
                END IF

                'OPTIONS SELETED
                IF opt = 2 THEN
                    OptionsMenu
                END IF

                'QUIT SELECTED
                IF opt = 3 THEN
                    SYSTEM
                END IF
        END SELECT
    LOOP
END SUB


SUB OptionsMenu
    LINE (w / 10, h / 10 * 4.7)-(w, h), col, BF 'CLEAR OPTIONS
    _PRINTSTRING (w / 2 - 28, h / 10 * 4.75), "INFO"
    _PRINTSTRING (w / 2 - 45, h / 10 * 5.25), "RESET GAME"
    _PRINTSTRING (w / 2 - 28, h / 10 * 5.75), "BACK"
    opt = 0
    DO
        LINE (w / 2 - 67, h / 10 * 4.7)-(w / 2 - 85, h / 10 * 7), col, BF 'CLEAR PAST POINTERS
        _PRINTSTRING (w / 2 - 80, h / 10 * (4.75 + (0.5 * opt))), ">" 'DISPLAY POINTER

        _DISPLAY 'REDUCE FLICKERING

        SELECT CASE INKEY$
            CASE "s" 'MOVE POINTER DOWN
                IF opt + 1 = 3 THEN
                    opt = 0
                ELSE
                    opt = opt + 1
                END IF

            CASE "w" 'MOVE POINTER UP
                IF opt - 1 = -1 THEN
                    opt = 2
                ELSE
                    opt = opt - 1
                END IF
            CASE CHR$(13) 'ENTER PRESSED
                IF opt = 0 THEN 'GAME INFO
                    LINE (0, h / 10 * 4.7)-(w, h), col, BF 'CLEAR OPTIONS
                    _PRINTSTRING (w / 2 - 80, h / 10 * 4.75), "ZEPPELIN GAMES 2018"
                    _PRINTSTRING (w / 2 - 40, h / 10 * 5.25), "SLAY V4"
                    _PRINTSTRING (w / 2 - 100, h / 10 * 6.25), "ENEMIES KILLED: " + STR$(stats.enemyskilled)
                    _PRINTSTRING (w / 2 - 100, h / 10 * 6.75), "TOTAL DEATHS: " + STR$(stats.totaldeaths)
                    _PRINTSTRING (w / 2 - 110, h / 10 * 9.25), "PRESS ANY KEY TO CONTINUE"
                    _DISPLAY
                    DO WHILE INKEY$ = ""
                    LOOP
                    OptionsMenu
                END IF
                IF opt = 1 THEN 'RESET GAME
                    OPEN "SlayV4SaveData.txt" FOR OUTPUT AS #1
                    PRINT #1, ""
                    CLOSE #1
                    CLS
                    RUN "SLAY V4.exe"
                END IF
                IF opt = 2 THEN 'BACK
                    DrawMenu
                END IF
        END SELECT
    LOOP



END SUB



SUB SinglePlayerMenu
    LINE (w / 10, h / 10 * 4.7)-(w, h / 10 * 7), col, BF 'CLEAR OPTIONS
    _PRINTSTRING (w / 2 - 45, h / 10 * 4.75), "CAMPAIGN"
    _PRINTSTRING (w / 2 - 65, h / 10 * 5.25), "INFINITE-WAVES"
    _PRINTSTRING (w / 2 - 45, h / 10 * 5.75), "PRACTICE"
    _PRINTSTRING (w / 2 - 28, h / 10 * 6.25), "BACK"
    opt = 0
    DO
        LINE (w / 2 - 67, h / 10 * 4.7)-(w / 2 - 85, h / 10 * 7), col, BF 'CLEAR PAST POINTERS
        _PRINTSTRING (w / 2 - 80, h / 10 * (4.75 + (0.5 * opt))), ">" 'DISPLAY POINTER

        _DISPLAY 'REDUCE FLICKERING

        SELECT CASE INKEY$
            CASE "s" 'MOVE POINTER DOWN
                IF opt + 1 = 4 THEN
                    opt = 0
                ELSE
                    opt = opt + 1
                END IF

            CASE "w" 'MOVE POINTER UP
                IF opt - 1 = -1 THEN
                    opt = 3
                ELSE
                    opt = opt - 1
                END IF
            CASE CHR$(13) 'ENTER PRESSED
                IF opt = 0 THEN
                    Campaign
                END IF
                IF opt = 1 THEN
                    InfiniteWaves
                END IF
                IF opt = 2 THEN
                    Practice
                END IF
                IF opt = 3 THEN
                    DrawMenu
                END IF
        END SELECT
    LOOP
END SUB

'CAMPAIGN - STORY
SUB Campaign

END SUB

SUB CampaignSavePoint1
    'SAVE
    save.point = 1
    OPEN "SlayV4SaveData.txt" FOR OUTPUT AS #1
    PRINT #1, name$
    PRINT #1, player.health
    PRINT #1, player.atk
    PRINT #1, player.def
    PRINT #1, player.spd
    PRINT #1, save.point
    CLOSE #1

    'CUT SCENE 002
    'QUICKTIME EVENT.
    'FIGHT ENEMY
    enemy.index = enemy.index + 1
    FightEnemy

END SUB


'INFINITE WAVES GAME MODE
SUB InfiniteWaves

END SUB

'PRACTICE GAME MODE
SUB Practice
    'RESET VALUES
    p.basehealth = 100
    p.health = 100
    p.atk = 10
    p.def = 10
    p.spd = 5

    col = _RGB(0, 0, 0)
    e.health = 100
    e.atk = 10
    e.def = 10
    e.spd = 5
    CLS

    'DRAW PLAYER STATS
    _PRINTSTRING (w / 10, h / 10 * 2.5), player.name
    _PRINTSTRING (w / 10, h / 10 * 3), "HEALTH: " + STR$(p.health)
    _PRINTSTRING (w / 10, h / 10 * 3.5), "ATK: " + STR$(p.atk)
    _PRINTSTRING (w / 10, h / 10 * 4), "DEF: " + STR$(p.def)
    _PRINTSTRING (w / 10, h / 10 * 4.5), "SPD: " + STR$(p.spd)

    'DRAW ENEMY STATS
    _PRINTSTRING (w / 10 * 7.5, h / 10 * 2.5), "ENEMY"
    _PRINTSTRING (w / 10 * 7.5, h / 10 * 3), "HEALTH: " + STR$(e.health)
    _PRINTSTRING (w / 10 * 7.5, h / 10 * 3.5), "ATK: " + STR$(e.atk)
    _PRINTSTRING (w / 10 * 7.5, h / 10 * 4), "DEF: " + STR$(e.def)
    _PRINTSTRING (w / 10 * 7.5, h / 10 * 4.5), "SPD: " + STR$(e.spd)

    IF p.speed >= e.speed THEN
        playerTurn = 1
    ELSE
        playerTurn = 0
    END IF
    _DISPLAY

    DO
        IF playerTurn = 1 THEN
            _PRINTSTRING (w / 2 - 50, h / 10 * 3), player.name + "'S TURN"
        ELSE
            _PRINTSTRING (w / 2 - 50, h / 10 * 3), "ENEMY'S TURN"
        END IF
        _DISPLAY

        IF playerTurn = 1 THEN
            _PRINTSTRING (w / 2 - 40, h / 10 * 3.75), "ATTACK"
            _PRINTSTRING (w / 2 - 40, h / 10 * 4.25), "DEFEND"
            _PRINTSTRING (w / 2 - 38, h / 10 * 4.75), "HEAL"

            DO
                LINE (w / 2 - 67, h / 10 * 3.7)-(w / 2 - 85, h / 10 * 7), col, BF 'CLEAR PAST POINTERS
                _PRINTSTRING (w / 2 - 80, h / 10 * (3.75 + (0.5 * opt))), ">" 'DISPLAY POINTER

                _DISPLAY 'REDUCE FLICKERING

                SELECT CASE INKEY$
                    CASE "s" 'MOVE POINTER DOWN
                        IF opt + 1 = 3 THEN
                            opt = 0
                        ELSE
                            opt = opt + 1
                        END IF

                    CASE "w" 'MOVE POINTER UP
                        IF opt - 1 = -1 THEN
                            opt = 2
                        ELSE
                            opt = opt - 1
                        END IF
                    CASE CHR$(13) 'ENTER PRESSED
                        IF opt = 0 THEN 'ATTACK
                            'CLEAR OPTIONS
                            LINE (w / 2 - 100, h / 10 * 2)-(w / 2 + 100, h / 10 * 8), col, BF
                            'DEAL DAMAGE
                            n = INT(RND * 10)
                            'CHECK IF CRIT HIT
                            IF n = 5 THEN
                                'CRITICAL HIT
                                patk = INT(RND * p.atk)
                                e.health = e.health - (patk * 2)
                                _PRINTSTRING (w / 2 - 50, h / 10 * 3.75), "ENEMY -" + STR$(patk * 2) + " DMG"
                                _PRINTSTRING (w / 2 - 50, h / 10 * 3.25), "CRITICAL HIT"
                            ELSE
                                'NORMAL HIT
                                patk = INT(RND * p.atk)
                                e.health = e.health - patk
                                _PRINTSTRING (w / 2 - 50, h / 10 * 3.25), "ENEMY -" + STR$(patk) + " DMG"
                            END IF

                            'UPDATE
                            playerTurn = 0
                        END IF
                        IF opt = 1 THEN 'DEFEND
                            'CLEAR OPTIONS
                            LINE (w / 2 - 100, h / 10 * 2)-(w / 2 + 100, h / 10 * 8), col, BF

                        END IF
                        IF opt = 2 THEN 'HEAL
                            'CLEAR OPTIONS
                            LINE (w / 2 - 100, h / 10 * 2)-(w / 2 + 100, h / 10 * 8), col, BF
                            'HEAL
                            p.health = p.health + 10
                            IF p.health > p.basehealth THEN
                                p.health = p.basehealth
                            END IF
                            'PRINT HEALED HEALTH
                            _PRINTSTRING (w / 2 - 40, h / 10 * 3.25), "+10 HP"
                            'UPDATE
                            playerTurn = 0
                        END IF
                END SELECT
            LOOP UNTIL playerTurn = 0
            _PRINTSTRING (w / 2 - 50, h / 10 * 3), player.name + "'S TURN"
            _DISPLAY
            _DELAY (2)
        END IF

        'DRAW PLAYER STATS
        'CLEAR STATS
        LINE (0, h / 10 * 2)-(w / 10 * 2, h / 10 * 5), col, BF
        CLS
        'REDRAW
        _PRINTSTRING (w / 10, h / 10 * 2.5), player.name
        _PRINTSTRING (w / 10, h / 10 * 3), "HEALTH: " + STR$(p.health)
        _PRINTSTRING (w / 10, h / 10 * 3.5), "ATK: " + STR$(p.atk)
        _PRINTSTRING (w / 10, h / 10 * 4), "DEF: " + STR$(p.def)
        _PRINTSTRING (w / 10, h / 10 * 4.5), "SPD: " + STR$(p.spd)

        'DRAW ENEMY STATS
        'CLEAR STATS
        LINE (w / 10 * 7, h / 10 * 2)-(w, h / 10 * 5), col, BF
        'REDRAW
        _PRINTSTRING (w / 10 * 7.5, h / 10 * 2.5), "ENEMY"
        _PRINTSTRING (w / 10 * 7.5, h / 10 * 3), "HEALTH: " + STR$(e.health)
        _PRINTSTRING (w / 10 * 7.5, h / 10 * 3.5), "ATK: " + STR$(e.atk)
        _PRINTSTRING (w / 10 * 7.5, h / 10 * 4), "DEF: " + STR$(e.def)
        _PRINTSTRING (w / 10 * 7.5, h / 10 * 4.5), "SPD: " + STR$(e.spd)
        _DISPLAY

        'CHECK FOR DEATHS
        IF p.health <= 0 OR e.health <= 0 THEN
            'CLEAR SCREEN
            LINE (w / 2 - 100, h / 10 * 1)-(w / 2 + 100, h / 10 * 6), col, BF
            CLS
            'PRINT WINNER
            IF p.health > 0 THEN
                _PRINTSTRING (w / 2 - 50, h / 10 * 3), player.name + " WINS"
                stats.enemyskilled = stats.enemyskilled + 1
            ELSE
                _PRINTSTRING (w / 2 - 50, h / 10 * 3), "ENEMY WINS"
                stats.totaldeaths = stats.totaldeaths + 1
            END IF

            'RETURN
            _DISPLAY
            _DELAY (2)
            DrawMenu
        END IF

        _PRINTSTRING (w / 2 - 50, h / 10 * 3), "ENEMY'S TURN"
        _DISPLAY

        'ENEMY TURN
        IF playerTurn = 0 THEN
            'ATTACK
            IF e.health >= 15 THEN
                LINE (w / 2 - 100, h / 10 * 3)-(w / 2 + 100, h / 10 * 6), col, BF
                'DEAL DAMAGE
                n = INT(RND * 10)
                'CHECK IF CRIT HIT
                IF n = 5 THEN
                    'CRITICAL HIT
                    eatk = INT(RND * e.atk)
                    p.health = p.health - (eatk * 2)
                    _PRINTSTRING (w / 2 - 50, h / 10 * 3.75), player.name + " -" + STR$(eatk * 2) + " DMG"
                    _PRINTSTRING (w / 2 - 40, h / 10 * 3.25), "CRITICAL HIT"
                ELSE
                    'NORMAL HIT
                    eatk = INT(RND * e.atk)
                    p.health = p.health - eatk
                    _PRINTSTRING (w / 2 - 50, h / 10 * 3.25), player.name + " -" + STR$(eatk) + " DMG"
                END IF

                'UPDATE TURN
                playerTurn = 1
            END IF


            'HEAL
            IF playerTurn = 0 THEN
                IF enemy.index > 10 THEN
                    IF e.health < 15 THEN
                        'HEAL
                        'CLEAR OPTIONS
                        LINE (w / 2 - 100, h / 10 * 3)-(w / 2 + 100, h / 10 * 6), col, BF
                        'HEAL
                        e.health = e.health + 10
                        'PRINT HEALED HEALTH
                        _PRINTSTRING (w / 2 - 40, h / 10 * 3.25), "ENEMY +10 HP"
                        'UPDATE
                        playerTurn = 1
                    END IF
                END IF
            END IF


            _PRINTSTRING (w / 2 - 50, h / 10 * 3), "ENEMY'S TURN"
            _DISPLAY
            _DELAY (2)

            'DRAW PLAYER STATS
            'CLEAR STATS
            LINE (0, h / 10 * 2)-(w / 10 * 2, h / 10 * 5), col, BF
            CLS
            'REDRAW
            _PRINTSTRING (w / 10, h / 10 * 2.5), player.name
            _PRINTSTRING (w / 10, h / 10 * 3), "HEALTH: " + STR$(p.health)
            _PRINTSTRING (w / 10, h / 10 * 3.5), "ATK: " + STR$(p.atk)
            _PRINTSTRING (w / 10, h / 10 * 4), "DEF: " + STR$(p.def)
            _PRINTSTRING (w / 10, h / 10 * 4.5), "SPD: " + STR$(p.spd)

            'DRAW ENEMY STATS
            'CLEAR STATS
            LINE (w / 10 * 7, h / 10 * 2)-(w, h / 10 * 5), col, BF
            'REDRAW
            _PRINTSTRING (w / 10 * 7.5, h / 10 * 2.5), "ENEMY"
            _PRINTSTRING (w / 10 * 7.5, h / 10 * 3), "HEALTH: " + STR$(e.health)
            _PRINTSTRING (w / 10 * 7.5, h / 10 * 3.5), "ATK: " + STR$(e.atk)
            _PRINTSTRING (w / 10 * 7.5, h / 10 * 4), "DEF: " + STR$(e.def)
            _PRINTSTRING (w / 10 * 7.5, h / 10 * 4.5), "SPD: " + STR$(e.spd)
            _DISPLAY
        END IF

    LOOP UNTIL p.health <= 0 OR e.health <= 0

    'CLEAR SCREEN
    LINE (w / 2 - 100, h / 10 * 1)-(w / 2 + 100, h / 10 * 8), col, BF
    CLS
    'PRINT WINNER
    IF p.health > 0 THEN
        _PRINTSTRING (w / 2 - 50, h / 10 * 3), player.name + " WINS"
        stats.enemyskilled = stats.enemyskilled + 1
    ELSE
        _PRINTSTRING (w / 2 - 50, h / 10 * 3), "ENEMY WINS"
        stats.totaldeaths = stats.totaldeaths + 1
    END IF

    'RETURN
    _DISPLAY
    _DELAY (2)
    DrawMenu
END SUB

SUB FightEnemy
END SUB

'MULTIPLAYER GAME MENU
SUB MultiplayerGameMenu
    LINE (w / 10, h / 10 * 4.7)-(w, h / 10 * 7), col, BF 'CLEAR OPTIONS
    _PRINTSTRING (w / 2 - 40, h / 10 * 4.75), "LOCAL"
    _PRINTSTRING (w / 2 - 34, h / 10 * 5.25), "LAN"
    _PRINTSTRING (w / 2 - 37, h / 10 * 5.75), "BACK"

    opt = 0
    DO
        LINE (w / 2 - 58, h / 10 * 4.7)-(w / 2 - 70, h / 10 * 7), col, BF 'CLEAR PAST POINTERS
        _PRINTSTRING (w / 2 - 65, h / 10 * (4.75 + (0.5 * opt))), ">" 'DISPLAY POINTER

        _DISPLAY 'REDUCE FLICKERING

        SELECT CASE INKEY$
            CASE "s" 'MOVE POINTER DOWN
                IF opt + 1 = 3 THEN
                    opt = 0
                ELSE
                    opt = opt + 1
                END IF

            CASE "w" 'MOVE POINTER UP
                IF opt - 1 = -1 THEN
                    opt = 2
                ELSE
                    opt = opt - 1
                END IF
            CASE CHR$(13) 'ENTER KEY
                IF opt = 0 THEN
                    LocalMultiplayer
                ELSEIF opt = 1 THEN
                    LANMultiplayer
                ELSEIF opt = 2 THEN
                    DrawMenu
                END IF
        END SELECT
    LOOP UNTIL INKEY$ = CHR$(13)
END SUB


'MULTIPLAYER ON SAME DEVICE
SUB LocalMultiplayer

END SUB

'MULTIPLAYER OVER WIFI CONNECTION
SUB LANMultiplayer


END SUB

SUB SaveGame
    'SAVE VARS TO TXT
    OPEN "SlayV4SaveData.txt" FOR OUTPUT AS #1
    'PLAYER
    PRINT #1, name$
    PRINT #1, player.health
    PRINT #1, player.atk
    PRINT #1, player.def
    PRINT #1, player.spd
    'SAVE DATA
    PRINT #1, save.point
    'STATS
    PRINT #1, stats.enemyskilled
    PRINT #1, stats.totaldeaths
    CLOSE #1
END SUB
