You choose Brooke to dodge and she counterattacks. The intruder is not able to dodge in time. The intruder faulters. The intruder tries to strike, but stumbles. Do you?\n\n[[Strike Again]]\n\n[[Tackle]]
Just before Brooke decides to kill Jackie. Yubel intervenes and says that she should be brought to justice. They take her to the local authorities.
You are in control of a young ninja, Brooke. She is on her way to her mentor, Elder Jay's house for training with her guardian spirit, Yubel. Brooke is considered to be a ninja prodigy in her village.\n\nElder Jay is the leader of her village and he chose her to be his apprentice. This angered some of her fellow ninjas especially Jackie Duke. Jackie hated Brooke because of Brooke is natural gifted while she isn’t. \n\nElder Jay is the strongest ninja in her village and chooses Brooke to be his apprentice because he sees her as a true prodigy even though Brooke doesn’t consider herself a prodigy. Brooke just want to live a normal life. \n\nJackie hoped that Elder Jay chose her to be his apprentice because of her hard work. The day that Brooke was chosen to be Elder Jay’s apprentice. Jackie’s hatred grew along with her anger. \n\nOver the years, Elder Jay had many students, including Brooke’s parents, but never any of them he considered to be his apprentice. Yubel and Brooke decide to have a race. Which path does Brooke take? \n\n[[Streets]]\n\n[[Rooftops]]\n\n\n\n
Brooke and the intruder start to fight. The intruder strikes first. What do you have Brooke do?\n\n[[Dodge and Counterattack]]\n\n[[Just Attack]]\n\n<<stopsound "Chasing-Perfection_30.mp3">>\n\n<<playsound "Combat-Ready_30.mp3">>
(function () {\n "use strict";\n version.extensions['soundMacros'] = {\n major: 1,\n minor: 1,\n revision: 2\n };\n var p = macros['playsound'] = {\n soundtracks: {},\n handler: function (a, b, c, d) {\n var loop = function (m) {\n if (m.loop == undefined) {\n m.loopfn = function () {\n this.play();\n };\n m.addEventListener('ended', m.loopfn, 0);\n } else m.loop = true;\n m.play();\n };\n var s = eval(d.fullArgs());\n if (s) {\n s = s.toString();\n var m = this.soundtracks[s.slice(0, s.lastIndexOf("."))];\n if (m) {\n if (b == "playsound") {\n m.play();\n } else if (b == "loopsound") {\n loop(m);\n } else if (b == "pausesound") {\n m.pause();\n } else if (b == "unloopsound") {\n if (m.loop != undefined) {\n m.loop = false;\n } else if (m.loopfn) {\n m.removeEventListener('ended', m.loopfn);\n delete m.loopfn;\n }\n } else if (b == "stopsound") {\n m.pause();\n m.currentTime = 0;\n } else if (b == "fadeoutsound" || b == "fadeinsound") {\n if (m.interval) clearInterval(m.interval);\n if (b == "fadeinsound") {\n if (m.currentTime>0) return;\n m.volume = 0;\n loop(m);\n } else {\n if (!m.currentTime) return;\n m.play();\n }\n var v = m.volume;\n m.interval = setInterval(function () {\n v = Math.min(1, Math.max(0, v + 0.005 * (b == "fadeinsound" ? 1 : -1)));\n m.volume = Math.easeInOut(v);\n if (v == 0 || v == 1) clearInterval(m.interval);\n if (v == 0) {\n m.pause();\n m.currentTime = 0;\n m.volume = 1;\n }\n }, 10);\n }\n }\n }\n }\n }\n macros['fadeinsound'] = p;\n macros['fadeoutsound'] = p;\n macros['unloopsound'] = p;\n macros['loopsound'] = p;\n macros['pausesound'] = p;\n macros['stopsound'] = p;\n macros['stopallsound'] = {\n handler: function () {\n var s = macros.playsound.soundtracks;\n for (var j in s) {\n\t\tif (s.hasOwnProperty(j)) {\n s[j].pause();\n if (s[j].currentTime) {\n\t\t s[j].currentTime = 0;\n\t\t }\n\t\t}\n }\n }\n }\n var div = document.getElementById("storeArea").firstChild;\n var fe = ["ogg", "mp3", "wav", "webm"];\n while (div) {\n var b = String.fromCharCode(92);\n var q = '"';\n var re = "['" + q + "]([^" + q + "']*?)" + b + ".(ogg|mp3|wav|webm)['" + q + "]";\n k(new RegExp(re, "gi"));\n div = div.nextSibling;\n }\n\n function k(c, e) {\n do {\n var d = c.exec(div.innerHTML);\n if (d) {\n var a = new Audio();\n if (a.canPlayType) {\n for (var i = -1; i < fe.length; i += 1) {\n if (i >= 0) d[2] = fe[i];\n if (a.canPlayType("audio/" + d[2])) break;\n }\n if (i < fe.length) {\n a.setAttribute("src", d[1] + "." + d[2]);\n a.interval = null;\n macros.playsound.soundtracks[d[1]] = a;\n } else console.log("Browser can't play '" + d[1] + "'");\n }\n }\n } while (d);\n }\n}());
Brooke decides to chase after the intruder alone. She corners the intruder. The intruder attacks.\n\n[[Brooke and The Intruder Fight]]
You decide to have Brooke take the rooftop route. Clearing the rooftops are breeze to her. She wins the race. After the race, they reach Elder Jay's house.\n\n[[Continue]]\n\n<<playsound "A-Promising-Day_30.mp3">>
Brooke tackles the intruder to the ground. They wrestle on the floor. Yubel hears the commotion. \n\nShe rushes to Brooke's side. The intruder attacks, but is stopped by Yubel in the nick of time.\n\nYubel ripps off the intruder's mask. The face of the intruder is revealed. The intruder is Jackie Duke. Brooke and Yubel are shocked by the outcome. \n\nThree choices appear in Brooke's head. While a choice appears in Jackie's head. \n\n[[Ending #1]]\n\n[[Ending #2]]\n\n[[Ending #3]]\n\n<<stopsound "Combat-Ready_30.mp3">>\n\n<<playsound "Tactical-Pause_30.mp3">>
Revenge or Justice
Brooke strikes again. The intruder falls to the ground. Do you?\n\n[[Call for Yubel again]]\n\n\n
Brooke kicks the door with all of her might. *SLAM!* The sound of door scared the only possible clue to Elder Jay's whereabouts.\n\n[[Game Over]]
Brooke calls for Yubel, but the extra time allows for the intruder to escape.\n\n[[Game Over]]
Brooke knocks on Elder Jay's door. *KNOCKS* No one answers the door. *KNOCKS KNOCKS* She knocks again, but still no answer. Two choices:\n\n[[Pick the lock]]\n\n[[Kick the door down]]
The intruder disappears before Yubel and Brooke get to the next room.
You choose Brooke to attack. The intruder's strike hits before she can attack. She stumbles. \n\n[[Game Over again]]
You decide to have Brooke take the street route. Thinking it will be faster, but you are dead wrong and Yubel wins the race. After the race, they reach Elder Jay's house.\n\n[[Continue]]\n\n<<playsound "A-Promising-Day_30.mp3">>
Jackie decides to blindsides the both of them and kills them both.
They search majority of the house until Yubel discover his body. Yubel calls for Brooke to come over. Brooke grabs Elder Jay's hand, but it is ice cold. Brooke asks Yubel to heal him.\n\nYubel tries to heal him, but no response. Yubel senses that he was killed by a natural being and not a supernatural being. Then they hear a crash, Brooke investigate the sound, while Yubel stays with the body.\n \n\n[[Brooke investigates]]
Brooke figures out that Jackie is the one who killed Elder Jay. She decides to kill her to revenge Elder Jay's death.
While searching for the cause of the sound, Brooke spots the intruder. Two choices:\n\n\n[[Chase after the intruder]]\n\n[[Call for Yubel]]\n\n<<stopsound "A-Promising-Day_30.mp3">>\n\n<<playsound "Chasing-Perfection_30.mp3">>
Brooke falls to the ground and the inruder uses this to their advantage and escapes.
Heather Sheridan
Brooke picks the lock with ease. Yubel opens the door. There is no sign of Elder Jay. They start searching for him.\n\n[[Searching]]
Brooke calls for Yubel. The intruder uses this opporunity as a chance to escape. The intruder sucker punches Brooke in the stomach. \n\nBrooke falls to the ground. The intruder escapes.\n\n[[Game Over]]