Cobalt Forest | Multiplayer Platformer

Instructions: This is the final game in the NinjaRun™ series, thank you for playing all of the NinjaRun™ games!!! Enjoy!\nV2Pin] Check this regularly for updates. ↓↓↓↓↓↓↓↓↓↓↓\n1] ↓↓↓↓↓↓↓↓↓↓↓\nWow... We have come so far...\n2] ↓↓↓↓↓↓↓↓↓↓↓\n\nNote: This is my platforming engine, I made this from scratch, and used my own.\n3] ↓↓↓↓↓↓↓↓↓↓↓\n

@Stage\n\nwhen I receive [next level v]\nnext backdrop\n\nwhen flag clicked\nforever\n    play sound [halloween-background-music-royalty-free-instrumental-music-for-videos v] until done\nend\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\n\n@Ghost\n\nwhen I receive [next level v]\nset [yv v] to [0]\nchange [level v] by (1)\nset [xv v] to [0]\ngo to x: (-200) y: (0)\nset [ghost v] effect to (0)\n\nwhen flag clicked\npoint in direction (90)\nset [yv v] to [0]\nset [xv v] to [0]\nforever\n    show\n    switch costume to (hitbox v)\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        change [xv v] by (0.8)\n        point in direction (90)\n    end\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        change [xv v] by (-0.8)\n        point in direction (-90)\n    end\n    set [xv v] to ((Xv) * (0.9))\n    change x by (Xv)\n    if <touching (levels v)?> then\n        if <not <(Ghost) = [1]>> then\n            switch costume to (hitbox v)\n            change y by (1)\n            if <touching (levels v)?> then\n                change y by (1)\n                if <touching (levels v)?> then\n                    change y by (1)\n                    if <touching (levels v)?> then\n                        change y by (1)\n                        if <touching (levels v)?> then\n                            change y by (1)\n                            if <touching (levels v)?> then\n                                change x by ((Xv) * (-1))\n                                change y by (-5)\n                                if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                                    switch costume to (hitbox v)\n                                    if <(Xv) > [0]> then\n                                        set [xv v] to [-5]\n                                    else\n                                        set [xv v] to [5]\n                                    end\n                                    set [yv v] to [10]\n                                else\n                                    set [xv v] to [0]\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    switch costume to (hitbox v)\n    change [yv v] by (-1)\n    set [ghost v] effect to (0)\n    if <<(Yv) < [-3]> and <not <(Ghost) = [1]>>> then\n        set [yv v] to [-3]\n        set [ghost v] effect to (30)\n    end\n    change y by (Yv)\n    if <touching (levels v)?> then\n        if <not <(Ghost) = [1]>> then\n            change y by ((Yv) * (-1))\n            set [yv v] to [0]\n            switch costume to (hitbox v)\n        end\n    end\n    change y by (-1)\n    if <touching (levels v)?> then\n        if <not <(Ghost) = [1]>> then\n            switch costume to (hitbox v)\n            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                set [yv v] to [15]\n            end\n        end\n    end\n    if <(x position) > [230]> then\n        broadcast (next level v)\n    end\n    if <<(y position) < [-180]> or <touching (fire v)?>> then\n        set [yv v] to [0]\n        set [xv v] to [0]\n        go to x: (-200) y: (0)\n        set [ghost v] effect to (0)\n    end\n    change y by (1)\n    switch costume to (ghost v)\nend\n\n\n\nwhen [r v] key pressed\nset [yv v] to [0]\nset [xv v] to [0]\ngo to x: (-200) y: (0)\nset [ghost v] effect to (0)\n\nwhen flag clicked\nswitch costume to (ghost v)\n\nwhen flag clicked\ngo to x: (-200) y: (0)\n\nwhen flag clicked\nforever\n    if <touching (danger v)?> then\n        broadcast (Return v)\n    end\nend\n\nwhen I receive [return v]\ngo to x: (-200) y: (0)\n\nwhen flag clicked\nforever\n    if <touching (bounce v)?> then\n        change [yv v] by (10)\n    end\nend\n\nwhen [p v] key pressed\nbroadcast (Next Level v)\n\n\n\nif <key (s v) pressed?> then\n    set [ghost v] effect to (80)\nend\n\nchange [yv v] by (-0.2)\n\nwhen [o v] key pressed\nchange [level v] by (-2)\nbroadcast (Next Level v)\n\nwhen I receive [die v]\nset [yv v] to [0]\nset [xv v] to [0]\nrepeat (5)\n    set [ghost v] effect to (pick random (0) to (50))\nend\ngo to x: (-200) y: (0)\nset [ghost v] effect to (0)\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\nhide\n\nrepeat until <touching (levels v)?>\nend\n\nwhen flag clicked\nforever\n    set [ghost v] to [0]\n    if <key (s v) pressed?> then\n        set [ghost v] effect to (80)\n        repeat until <not <touching (levels v)?>>\n            set [ghost v] effect to (80)\n            if <(Yv) < [-6]> then\n                set [yv v] to [-6]\n            end\n            set [ghost v] to [1]\n        end\n    end\nend\n\n@Levels\n\nwhen flag clicked\nset [level v] to [1]\nshow\nforever\n    switch costume to (Level)\nend\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\nhide\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\nhide\n\n@Text\n\nwhen flag clicked\ncreate clone of (_myself_ v)\nset [level v] to [1]\nshow\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level)\n    set size to (100) %\nend\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\nhide\n\nwhen I start as a clone\nshow\nforever\n    set [ghost v] effect to (20)\n    set [brightness v] effect to (-75)\n    go to x: (-1) y: (-1)\n    switch costume to (Level)\n    set size to (101) %\nend\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\nhide\n\n@Effects\n\nwhen flag clicked\nshow\nforever\n    go to [back v] layer\n    set [ghost v] effect to (50)\n    go to x: (0) y: (0)\n    glide (8) secs to x: (-500) y: (0)\nend\n\nwhen I receive [next level v]\nstop [other scripts in sprite v]\nforever\n    go to [back v] layer\n    set [ghost v] effect to (50)\n    go to x: (0) y: (0)\n    glide (8) secs to x: (-500) y: (0)\nend\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\nhide\n\n@Candy\n\nwhen flag clicked\nhide\nset size to (60) %\n\nwhen flag clicked\nforever\n    if <touching (ghost v)?> then\n        change [yv v] by (25)\n    end\nend\n\nwhen I receive [next level v]\nhide\ndelete this clone\n\nwhen I start as a clone\nforever\n    if <touching (ghost v)?> then\n        change [yv v] by (25)\n    end\nend\n\nwhen I receive [next level v]\nhide\nwait (0) seconds\nif <(Level) = [8]> then\n    show\n    go to x: (-56) y: (-135)\nend\nif <(Level) = [11]> then\n    show\n    go to x: (50) y: (-145)\nend\nif <(Level) = [12]> then\n    show\n    go to x: (-90) y: (95)\n    create clone of (_myself_ v)\n    go to x: (-20) y: (95)\n    create clone of (_myself_ v)\n    go to x: (50) y: (95)\n    create clone of (_myself_ v)\n    go to x: (125) y: (95)\n    create clone of (_myself_ v)\n    go to x: (200) y: (95)\nend\nif <(Level) = [15]> then\n    show\n    go to x: (-90) y: (-80)\n    create clone of (_myself_ v)\n    go to x: (0) y: (-80)\n    create clone of (_myself_ v)\n    go to x: (90) y: (-80)\n    create clone of (_myself_ v)\n    go to x: (180) y: (-80)\nend\nif <(Level) = [16]> then\n    show\n    go to x: (-90) y: (-150)\n    create clone of (_myself_ v)\n    go to x: (180) y: (-150)\nend\nif <(Level) = [19]> then\n    show\n    go to x: (0) y: (-135)\nend\nif <(Level) = [20]> then\n    show\n    go to x: (0) y: (-150)\nend\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\nhide\n\n@Fire\n\nwhen flag clicked\nhide\nset size to (55) %\n\nswitch costume to (Level)\n\nwhen I receive [next level v]\nhide\ndelete this clone\n\nwhen I start as a clone\n\nwhen flag clicked\npoint in direction (90)\nset rotation style [left-right v]\nforever\n    wait (0.1) seconds\n    point in direction (-90)\n    wait (0.1) seconds\n    point in direction (90)\nend\n\nwhen flag clicked\nforever\n    wait (0.05) seconds\n    next costume\nend\n\nwhen I start as a clone\nshow\nforever\n    wait (0.05) seconds\n    next costume\nend\n\nwhen I start as a clone\npoint in direction (90)\nset rotation style [left-right v]\nforever\n    wait (0.1) seconds\n    point in direction (-90)\n    wait (0.1) seconds\n    point in direction (90)\nend\n\nwhen I receive [next level v]\nhide\nwait (0) seconds\nif <(Level) = [9]> then\n    show\n    go to x: (0) y: (-100)\nend\nif <(Level) = [10]> then\n    show\n    go to x: (80) y: (-100)\n    create clone of (_myself_ v)\n    go to x: (-80) y: (-100)\nend\nif <(Level) = [11]> then\n    show\n    go to x: (-90) y: (-130)\n    create clone of (_myself_ v)\n    go to x: (-20) y: (-130)\n    create clone of (_myself_ v)\n    go to x: (125) y: (-130)\n    create clone of (_myself_ v)\n    go to x: (200) y: (-130)\nend\nif <(Level) = [12]> then\n    show\n    go to x: (-90) y: (-80)\n    create clone of (_myself_ v)\n    go to x: (-20) y: (-80)\n    create clone of (_myself_ v)\n    go to x: (50) y: (-80)\n    create clone of (_myself_ v)\n    go to x: (125) y: (-80)\n    create clone of (_myself_ v)\n    go to x: (200) y: (-80)\nend\nif <(Level) = [16]> then\n    show\n    go to x: (0) y: (-60)\n    create clone of (_myself_ v)\n    go to x: (0) y: (-110)\n    create clone of (_myself_ v)\n    go to x: (0) y: (-160)\nend\nif <(Level) = [20]> then\n    show\n    go to x: (-100) y: (-100)\n    create clone of (_myself_ v)\n    go to x: (100) y: (-100)\nend\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\nhide\n\n@Cut scene\n\nwhen flag clicked\ngo to [front v] layer\nset [brightness v] effect to (-100)\nshow\ngo to x: (0) y: (0)\nswitch costume to (ghost v)\npoint in direction (90)\nrepeat (25)\n    change [brightness v] effect by (4)\nend\nwait until <key (space v) pressed?>\nrepeat (5)\n    turn right (36) degrees\n    change [brightness v] effect by (20)\nend\nnext costume\nrepeat (5)\n    turn right (36) degrees\n    change [brightness v] effect by (-20)\nend\nwait until <key (space v) pressed?>\nrepeat (5)\n    turn right (36) degrees\n    change [brightness v] effect by (20)\nend\nnext costume\nrepeat (5)\n    turn right (36) degrees\n    change [brightness v] effect by (-20)\nend\nwait until <key (space v) pressed?>\nrepeat (5)\n    turn right (36) degrees\n    change [brightness v] effect by (5)\nend\nrepeat (5)\n    change [brightness v] effect by (5)\n    change [ghost v] effect by (20)\n    turn right (36) degrees\nend\nhide\nwait until <(Level) > [20]>\nbroadcast (End v)\nstart sound [Spooky Scary Skeletons \(Remix\) - Extended Mix v]\nswitch costume to (pumpkin2 v)\nshow\nclear graphic effects\nset [ghost v] effect to (100)\nrepeat (5)\n    turn right (36) degrees\n    change [ghost v] effect by (-10)\nend\nrepeat (5)\n    turn right (36) degrees\n    change [ghost v] effect by (-10)\nend\n\ndefine Thumbnail\nswitch costume to (thumbnail v)\nclear graphic effects\ngo to x: (0) y: (0)\npoint in direction (90)\nshow\ngo to [front v] layer\n\n