Throw the blue blockaders into the pit on your left to continue. <div id="won" style="display:none"> [[Continue->BorderS]] </div> <style> #canvas { position: absolute; } </style> <canvas id="canvas" width="500" height="500"> If you can read this on the page then I am very sad </canvas> <script> class Transform { constructor(pos) { this.pos = pos; } get Pos() { return this.pos; } set Pos(_pos) { this.pos = _pos; } } class RectCollider { constructor(transform, size) { this.transform = transform; this.size = size; } get Transform() { return this.transform; } get Size() { return this.size; } set Size(_size) { this.size = _size; } containsPoint(point) { if (point.x >= this.transform.Pos.x - (this.size.x / 2) && point.y >= this.transform.Pos.y - (this.size.y / 2) && point.x <= this.transform.Pos.x + (this.size.x / 2) && point.y <= this.transform.Pos.y + (this.size.y / 2)) { return true; } return false; } insideRect(other) { if (other.containsPoint({ x: this.transform.Pos.x - (this.size.x / 2), y: this.transform.Pos.y - (this.size.y / 2) }) || other.containsPoint({ x: this.transform.Pos.x - (this.size.x / 2), y: this.transform.Pos.y + (this.size.y / 2) }) || other.containsPoint({ x: this.transform.Pos.x + (this.size.x / 2), y: this.transform.Pos.y - (this.size.y / 2) }) || other.containsPoint({ x: this.transform.Pos.x + (this.size.x / 2), y: this.transform.Pos.y + (this.size.y / 2) })) { return true; } return false; } isColliding(other) { if (this.insideRect(other) || other.insideRect(this)) { return true; } return false; } } class RigidBody { constructor(collider, mass, rest, _static, vel = { x: 0, y: 0 }, acc = { x: 0, y: 0 }) { this.collider = collider; this.mass = mass; this.rest = rest; this.static = _static; this.vel = vel; this.acc = acc; this.prevPos = this.collider.Transform.Pos; } get Collider() { return this.collider; } get Mass() { return this.mass; } get Rest() { return this.rest; } get Static() { return this.static; } get Vel() { return this.vel; } set Vel(_vel) { this.vel = _vel; } get Acc() { return this.acc; } set Acc(_acc) { this.acc = _acc; } get PrevPos() { return this.prevPos; } updatePos(timeStep) { if (!this.static) { this.collider.Transform.Pos.x += this.vel.x * timeStep; this.collider.Transform.Pos.y += this.vel.y * timeStep; this.vel.x += this.acc.x * timeStep; this.vel.y += this.acc.y * timeStep; } } } let player = new RigidBody(new RectCollider(new Transform({ x: 0, y: -10 }), { x: 1, y: 1 }), 1, 0.5, false, { x: 0, y: 0 }, { x: 0, y: -9.81 }); let objects = [ new RigidBody(new RectCollider(new Transform({ x: 20, y: 24 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 22 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 20 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 18 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 16 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 14 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 12 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 10 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 8 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 6 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 4 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 2 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: 0 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -24 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -22 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -20 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -18 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -16 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -14 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -12 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -10 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -8 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -6 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -4 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), new RigidBody(new RectCollider(new Transform({ x: 20, y: -2 }), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }), player, ]; let drawables = objects.map((o) => o.Collider); let drawableImages = []; let input = 0; let speed = 0.01; let jumpSpeed = 10; let jump = false; function Timestep(gravity, distanceStep, jumpDistance, currentDistanceInJump) { player.Vel.x += input * 0.1; if (jump == 1) { player.Acc.y = 9.81; } else { player.Acc.y = -9.81; } let collisions = []; for (let i = 0; i < objects.length; i++) { objects[i].updatePos(0.01); } for (let i = 0; i < objects.length; i++) { for (let j = i + 1; j < objects.length; j++) { if (objects[i].Collider.isColliding(objects[j].Collider)) { collisions.push([objects[i], objects[j]]); } } } for (let i = 0; i < collisions.length; i++) { let col = collisions[i]; let cv = { x: col[0].Collider.Transform.Pos.x - col[1].Collider.Transform.Pos.x, y: col[0].Collider.Transform.Pos.y - col[1].Collider.Transform.Pos.y }; let mag = Math.sqrt(cv.x ** 2 + cv.y ** 2); let dir = { x: cv.x / mag, y: cv.y / mag }; let rv = { x: col[0].Vel.x - col[1].Vel.x, y: col[0].Vel.y - col[1].Vel.y }; let dp = (rv.x * dir.x + rv.y * dir.y) * Math.min(col[0].Rest, col[1].Rest); let imp = 2 * dp / (col[0].Mass + col[1].Mass); if (dp < 0) { col[0].Vel = { x: col[0].Vel.x - imp * col[1].Mass * dir.x, y: col[0].Vel.y - imp * col[1].Mass * dir.y }; col[1].Vel = { x: col[1].Vel.x + imp * col[0].Mass * dir.x, y: col[1].Vel.y + imp * col[0].Mass * dir.y }; } } for (let i = 0; i < objects.length; i++) { let width = document.getElementById("canvas").width / 10; let height = document.getElementById("canvas").height / 10; let newVel = { x: objects[i].Vel.x * -0.5, y: objects[i].Vel.y * -0.5 }; if (objects[i].Collider.Transform.Pos.x + (objects[i].Collider.Size.x / 2) >= width / 2) { objects[i].Vel.x = newVel.x; objects[i].Collider.Transform.Pos.x = width / 2 - objects[i].Collider.Size.x / 2; } if (objects[i].Collider.Transform.Pos.x - (objects[i].Collider.Size.x / 2) <= -width / 2) { if (objects[i] != player){ objects.splice(i, 1); i--; break; }else{ objects[i].Vel.x = newVel.x; objects[i].Collider.Transform.Pos.x = -width / 2 + objects[i].Collider.Size.x / 2; } } if (objects[i].Collider.Transform.Pos.y + (objects[i].Collider.Size.y / 2) >= height / 2) { objects[i].Vel.y = newVel.y; objects[i].Collider.Transform.Pos.y = height / 2 - objects[i].Collider.Size.y / 2; } if (objects[i].Collider.Transform.Pos.y - (objects[i].Collider.Size.y / 2) <= -1 * (height / 2)) { objects[i].Vel.y = newVel.y; objects[i].Collider.Transform.Pos.y = -(height / 2) + (objects[i].Collider.Size.y / 2); } } } function Draw() { let canvas = document.getElementById("canvas"); let canvasC = canvas.getContext("2d"); canvasC.clearRect(0, 0, canvas.width, canvas.height); let s = 10; for (let i = 0; i < drawables.length; i++) { drawables[i] == player.Collider ? canvasC.fillStyle = "orange" : canvasC.fillStyle = "blue"; canvasC.fillRect((drawables[i].Transform.Pos.x * s) + canvas.width / 2 - (drawables[i].Size.x * s) / 2, canvas.height - ((drawables[i].Transform.Pos.y * s) + canvas.height / 2 + (drawables[i].Size.y * s / 2)), (drawables[i].Size.x * s), (drawables[i].Size.y * s)); } } function Update(gravity, distanceStep, jumpDistance) { drawables = objects.map((o) => o.Collider); try { let currentDistanceInJump = 0; Timestep(gravity, distanceStep, jumpDistance, /*input, jump,*/ currentDistanceInJump); Draw(); } catch (error) { clearInterval(interval); return; } if (objects.length == 1){ $won = true; document.getElementById("won").style.display = "block"; } } Draw(); document.addEventListener("keydown", (k) => { if (k.keyCode == 65) { input = -1; } else if (k.keyCode == 68) { input = 1; } else if (k.keyCode == 87) { jump = 1; } }); document.addEventListener("keyup", (k) => { if (k.keyCode == 65 || k.keyCode == 68) { input = 0; } else if (k.keyCode == 87) { jump = 0; } }); let interval = setInterval(Update, 1, 1, 0.05, 2, 0, false); </script>Throw the border guards into the pit on your right to continue, but make sure they don't get Yel! { (set: $won2 to false) (set: $lost to false) (set: $resetting to false)} <div id="won" style="display:none"> [[Continue->CastleS]] </div> <div id="reset" style="display:none"> (t8n:"instant")+(link-rerun:"Reset Level")[(set: $resetting to true)] </div>{ <style> #canvas { position: absolute; } </style> <canvas id="canvas" width="500" height="500"> If you can read this on the page then I am very sad </canvas> <script> function game() { class Transform { constructor(pos) { this.pos = pos; } get Pos() { return this.pos; } set Pos(_pos) { this.pos = _pos; } } class RectCollider { constructor(transform, size) { this.transform = transform; this.size = size; } get Transform() { return this.transform; } get Size() { return this.size; } set Size(_size) { this.size = _size; } containsPoint(point) { if (point.x >= this.transform.Pos.x - (this.size.x / 2) && point.y >= this.transform.Pos.y - (this.size.y / 2) && point.x <= this.transform.Pos.x + (this.size.x / 2) && point.y <= this.transform.Pos.y + (this.size.y / 2)) { return true; } return false; } insideRect(other) { if (other.containsPoint({ x: this.transform.Pos.x - (this.size.x / 2), y: this.transform.Pos.y - (this.size.y / 2) }) || other.containsPoint({ x: this.transform.Pos.x - (this.size.x / 2), y: this.transform.Pos.y + (this.size.y / 2) }) || other.containsPoint({ x: this.transform.Pos.x + (this.size.x / 2), y: this.transform.Pos.y - (this.size.y / 2) }) || other.containsPoint({ x: this.transform.Pos.x + (this.size.x / 2), y: this.transform.Pos.y + (this.size.y / 2) })) { return true; } return false; } isColliding(other) { if (this.insideRect(other) || other.insideRect(this)) { return true; } return false; } } class RigidBody { constructor(collider, mass, rest, _static, vel = { x: 0, y: 0 }, acc = { x: 0, y: 0 }) { this.collider = collider; this.mass = mass; this.rest = rest; this.static = _static; this.vel = vel; this.acc = acc; this.prevPos = this.collider.Transform.Pos; } get Collider() { return this.collider; } get Mass() { return this.mass; } get Rest() { return this.rest; } get Static() { return this.static; } get Vel() { return this.vel; } set Vel(_vel) { this.vel = _vel; } get Acc() { return this.acc; } set Acc(_acc) { this.acc = _acc; } get PrevPos() { return this.prevPos; } updatePos(timeStep) { if (!this.static) { this.collider.Transform.Pos.x += this.vel.x * timeStep; this.collider.Transform.Pos.y += this.vel.y * timeStep; this.vel.x += this.acc.x * timeStep; this.vel.y += this.acc.y * timeStep; } } } let player = new RigidBody(new RectCollider(new Transform({ x: 0, y: -10 }), { x: 1, y: 1 }), 1, 0.5, false, { x: 0, y: 0 }, { x: 0, y: -9.81 }); let yel = new RigidBody(new RectCollider(new Transform({ x: -5, y: 0 }), { x: 0.5, y: 0.5 }), 1, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 }); let objects = [player, yel]; let enem = []; for (let i = 24; i >= -24; i -= 2) { enem.push({ x: -20, y: i }); } for (let i = 0; i < enem.length; i++) { objects.push(new RigidBody(new RectCollider(new Transform(enem[i]), { x: 2, y: 2 }), 4, 0.5, false, { x: 0, y: 0 }, { x: 0, y: 0 })); } let drawables = objects.map((o) => o.Collider); let drawableImages = []; let input = 0; let speed = 0.01; let jumpSpeed = 10; let jump = false; function Timestep(gravity, distanceStep, jumpDistance, currentDistanceInJump) { player.Vel.x += input * 0.1; if (jump == 1) { player.Acc.y = 9.81; } else { player.Acc.y = -9.81; } let collisions = []; for (let i = 0; i < objects.length; i++) { objects[i].updatePos(0.01); } for (let i = 0; i < objects.length; i++) { for (let j = i + 1; j < objects.length; j++) { if (objects[i].Collider.isColliding(objects[j].Collider)) { collisions.push([objects[i], objects[j]]); } } } for (let i = 0; i < collisions.length; i++) { let col = collisions[i]; if (col[0] == yel){ if (objects.indexOf(col[1]) > 1){ $won2 = false; $lost = true; document.getElementById("reset").style.display = "block"; } }else if (col[1] == yel) { if (objects.indexOf(col[0]) > 1){ $won2 = false; $lost = true; document.getElementById("reset").style.display = "block"; } } let cv = { x: col[0].Collider.Transform.Pos.x - col[1].Collider.Transform.Pos.x, y: col[0].Collider.Transform.Pos.y - col[1].Collider.Transform.Pos.y }; let mag = Math.sqrt(cv.x ** 2 + cv.y ** 2); let dir = { x: cv.x / mag, y: cv.y / mag }; let rv = { x: col[0].Vel.x - col[1].Vel.x, y: col[0].Vel.y - col[1].Vel.y }; let dp = (rv.x * dir.x + rv.y * dir.y) * Math.min(col[0].Rest, col[1].Rest); let imp = 2 * dp / (col[0].Mass + col[1].Mass); if (dp < 0) { col[0].Vel = { x: col[0].Vel.x - imp * col[1].Mass * dir.x, y: col[0].Vel.y - imp * col[1].Mass * dir.y }; col[1].Vel = { x: col[1].Vel.x + imp * col[0].Mass * dir.x, y: col[1].Vel.y + imp * col[0].Mass * dir.y }; } } for (let i = 0; i < objects.length; i++) { let width = document.getElementById("canvas").width / 10; let height = document.getElementById("canvas").height / 10; let newVel = { x: objects[i].Vel.x * -0.5, y: objects[i].Vel.y * -0.5 }; if (objects[i].Collider.Transform.Pos.x + (objects[i].Collider.Size.x / 2) >= width / 2) { if (objects[i] != player && objects[i] != yel){ objects.splice(i, 1); i--; break; }else{ objects[i].Vel.x = newVel.x; objects[i].Collider.Transform.Pos.x = width / 2 - objects[i].Collider.Size.x / 2; } } if (objects[i].Collider.Transform.Pos.x - (objects[i].Collider.Size.x / 2) <= -width / 2) { objects[i].Vel.x = newVel.x; objects[i].Collider.Transform.Pos.x = -width / 2 + objects[i].Collider.Size.x / 2; } if (objects[i].Collider.Transform.Pos.y + (objects[i].Collider.Size.y / 2) >= height / 2) { objects[i].Vel.y = newVel.y; objects[i].Collider.Transform.Pos.y = height / 2 - objects[i].Collider.Size.y / 2; } if (objects[i].Collider.Transform.Pos.y - (objects[i].Collider.Size.y / 2) <= -1 * (height / 2)) { objects[i].Vel.y = newVel.y; objects[i].Collider.Transform.Pos.y = -(height / 2) + (objects[i].Collider.Size.y / 2); } } } function Draw() { let canvas = document.getElementById("canvas"); let canvasC = canvas.getContext("2d"); canvasC.clearRect(0, 0, canvas.width, canvas.height); let s = 10; for (let i = 0; i < drawables.length; i++) { drawables[i] == player.Collider ? canvasC.fillStyle = "orange" : drawables[i] == yel.Collider ? canvasC.fillStyle = "yellow" : canvasC.fillStyle = "blue"; canvasC.fillRect((drawables[i].Transform.Pos.x * s) + canvas.width / 2 - (drawables[i].Size.x * s) / 2, canvas.height - ((drawables[i].Transform.Pos.y * s) + canvas.height / 2 + (drawables[i].Size.y * s / 2)), (drawables[i].Size.x * s), (drawables[i].Size.y * s)); } } function Update(gravity, distanceStep, jumpDistance) { drawables = objects.map((o) => o.Collider); try { let currentDistanceInJump = 0; Timestep(gravity, distanceStep, jumpDistance, /*input, jump,*/ currentDistanceInJump); Draw(); } catch (error) { clearInterval(interval); return; } if (objects.length == 2 && !$lost){ $won2 = true; document.getElementById("won").style.display = "block"; } if ($resetting == true) { reset(); } } Draw(); document.addEventListener("keydown", (k) => { if (k.keyCode == 65) { input = -1; } else if (k.keyCode == 68) { input = 1; } else if (k.keyCode == 87) { jump = 1; } }); document.addEventListener("keyup", (k) => { if (k.keyCode == 65 || k.keyCode == 68) { input = 0; } else if (k.keyCode == 87) { jump = 0; } }); return setInterval(Update, 1, 1, 0.05, 2, 0, false); } let interval = game(); function reset() { $resetting = false; $lost = false; document.getElementById("reset").style.display = "none"; clearInterval(interval); interval = game(); } </script> }You have broken through the blockade and reached the border of the country, but as you take one last look at Squareland before you leave, you see a small yellow square sliding up to you. Yellow square: Hi, I'm Yel. What's your name? [[Hi Yel, I'm Orangeor. What brings you here?->BorderSR1]] [[Why should I tell you my name? Tell me what you want or leave. ->BorderSR2]] [[Listen, I don't have time to chat right now, I have to be going. Have a nice day! ->Ending1]]Yel: Hi Orangeor! I was just wandering around when I saw you, and I wanted to ask you if you want to help me? [[Sure! What you need help with?->YelHelp]] [[Sorry, I have somewhere to be. ->YelPlead]]Startled and angry, Yel storms off into the distance. A feeling of guilt overcomes you. [[Apologize To Yel->YelApology]] [[Turn around and leave->Ending1]]Yel: Thank you! You continue walking until you reach Gull's castle. There are many guards around it, but you feel that something is off. Regardless, you continue walking toward the castle and reach the entrance. You and Yel get ready, then charge out of your cover and into the castle. You get past the first round of guards, but then, looking around, you don't see Yel anywhere. Your feeling that something is off intensifies. You yell for Yel, but there is no response. Suddenly, you hear movement inside the castle. You look in, and see Yel looking content, but being led by the guards. When they notice that you are looking at them, their expression immediately turns to fear, and they yell out for you to help them. Your feeling that something is off is now flooding into your brain, but you decide to ignore it. The guards take Yel away into another room, leaving the stairway up open. Yel continues to yell for you to help them. [[Go and help Yel->Ending11]] [[Ignore Yel and go up the staircase->CastleTop]]Trusting your impulse, you ignore Yel's pleads and run up the spiral staircase to the top of Gull's castle. It is a very long staircase, and as you slowly ascend, you think about Yel. You remember the look on Yel's face before they pretended to yell for your help, and how they had been reluctant to go back to Squareland. Finally, realization strikes you. //Yel must be working for Gull//. Anger at Yel builds up inside you, but, finally, you reach the top of the spiral staircase and open the door. Tri Anne Gull is sitting on a throne in the middle of a wide open room with an open ledge behind them, looking at something you can't see. Immediately after you open the door, they become startled and look at you. Gull: Wha- But- Wasn't Yel su- Oh nevermind. Would you really leave behind your friend? You: You can stop lying about Yel. I know who they are. Gull: Oh, so you found out? Well, Squarious, it's an honor to meet you. You: How do you know my last name? Gull: Oh Orangeor, how naive of you. I have been tracking you for years. You: Years? Gull: Yes, years. I knew you would be a threat to my rule, so I hired your "friend" Yel to take care of you. [[Try to throw Gull of the ledge->Ending12]] [[Keep listening to Gull->Ending13]]You leave Squareland, still thinking about the small yellow square. Eventually, you settle in a nearby area called The Great Plane. Later, you hear that Gull had died, and their successor was even worse than them, and was planning to invade The Great Plane. When you read their successor's name, you are shocked: //Yel Squareton//. ENDING #1/13 { (set: $ending1unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]Yel: Yeah... You live at the town for a while, but one day, Yel goes outside for a walk, and they never come back. Sad and lonely, you leave the town and settle in a nearby area called The Great Plane. Later, you hear that Gull had died, and their successor was even worse than them, and was planning to invade The Great Plane. When you read their successor's name, you are shocked: //Yel Squareton//. ENDING #10/13 { (set: $ending10unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]You go after the guards, desparate to save Yel. Your feeling that something is off is now at its peak, and as you step into the room, you realize where the feeling came from. The door is slammed close behind you, and you are forced to the ground and tied up by a guard. You struggle to escape, but to no avail. Terrified, you watch as Yel stands in front of you, smirking. Yel: Not as smart as you look, are you? You: But... I thought you were- Yel: You thought I was your friend? You thought I //actually// wanted to "save" these people? You thought wrong. And as for "that Gull person", they are very pleased with the news of your capture. Anyway, this is wasting my time. Goodbye, Orangeor. You: No! Please! Spare Me! Yel, ignoring you, goes up to you and taps you lightly on the back with something pointy, like an asymptote. Everything goes black, and you wake up in an empty room with nothing but a small window. Through the window, you see Yel, laughing mockingly. They pull a lever, and the walls of your room start closing in. Frantically, you try to escape, but it is too late. You have died. ENDING #11/13 { (set: $ending11unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]Realizing that Gull is stalling for time, you run up to them and grab them. Startled, they do not react until after you hurl them off of the tall tower, onto the road below. You hear a scream, then silence. You go down the stairs to see Yel and all of Gull's guards fleeing from the castle. You exit the castle to cheers from the civilians, and you are crowned as the new ruler of Squareland. Later, you learn that Yel Squareton had been a known acquaintance of Gull, and after that, you never hear of Yel Squareton ever again. As the new ruler of Squareland, you live happily ever after. ENDING #12/13 GOOD ENDING #2/2 { (set: $ending12unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]Gull: Anyway, I assume you came here to try to "overthrow" me, but I'd like to inform you that it's a bit too late to do that. You hear the door slam behind you, and realize that Gull had been stalling for time. Gull: Let's not let Orangeor here indulge in any unnecessary frivolities. Take him. You: No! Please! You feel a sharp pain in your back, and hear Gull laughing, then everything goes black. You have died. ENDING #13/13 { (set: $ending13unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]You stand still, but immediately realize that something is wrong. Yel reaches into their pocket and withdraws the pointed object. When you finally get a good look at it and realize what it is, it is too late; as you shatter into hundreds of pieces, you see Yel walking away, laughing, with the knife in his hand. You have died. ENDING #2/13 { (set: $ending2unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]Desparately, you scream out loud, and catch Yel off guard. In the split second they are distracted, you grab the knife from Yel, and throw it at them as you sprint away. You look back, and see the pieces of Yel strewn across the ground. Scared of being caught and running out of time, you run away and take refuge in a nearby area called The Great Plane. You stay there for many years, and eventually, you receive news that Gull had died, and the former ruler of Squareland had been returned to power. Excited, you go to Squareland and return to your old home. ENDING #3/13 GOOD ENDING #1/2 { (set: $ending3unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]You hit Yel straight in the face, knocking them back, and you use the time to run away. Thinking you had lost them, you emerge from behind a binary tree, but immediately realize your mistake, and the last thing you see is Yel slowly walking toward you, with no escape. You have died. ENDING #4/13 { (set: $ending4unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]Guard 1 (Mocking): "they are really nice, so please spare them" Guard 2: Yeah sure, like we're going to just let you go free. Guard 2 (To Guard 3) Take the small one and leave the other one. I will deal with them. You see the guard walking toward you, then everything goes black. You have died. ENDING #5/13 { (set: $ending5unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]Guard 1 (Mocking): "Your friend" Guard 2: You think we would fall for that? Guard 2 (To Guard 3) Take the small one and leave the other one. I will deal with them. You see the guard walking toward you, then everything goes black. You have died. ENDING #6/13 { (set: $ending6unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]Guard 1: Whatever you want. Guard 2 (To Guard 3) Take the small one and leave the other one. I will deal with them. You see the guard walking toward you, and one taking Yel in the distance, then everything goes black. You have died. ENDING #7/13 { (set: $ending7unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]Yel: Ok! Let's go! You and Yel go to where Yel told you, and you see the guards. They are large and pointy squares, like the ones blockading your village. When you go toward them, they immediately notice you and move toward Yel. Telling Yel to stay back, you rush forward and feel something sharp stab you. Everything goes black. You have died. ENDING #8/13 { (set: $ending8unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]Yel: Ok! Let's go! You and Yel go to where Yel told you, and you see the guards. They are large and pointy squares, like the ones blockading your village. They do not notice you, but they are blocking the only path out. Slowly, you creep closer to them, until you decide to attack. You rush out from behind your cover and tackle one of the guards. You thrust another to the ground, and soon only one guard is left, which you tie up. Suddenly, you hear a noise from behind you. You quickly turn around, and see Yel standing with the guard, having freed them. Before you have time to react, Yel goes up to you and taps you lightly on the back with something pointy, like an asymptote. Everything goes black, and you wake up in an empty room with nothing but a small window. Through the window, you see Yel, laughing mockingly. You hear them say something like "bye", then they pull a lever, and the walls of your room start closing in. Frantically, you try to escape, but it is too late. You have died. ENDING #9/13 { (set: $ending9unlocked to true) } [[Replay->Start]] Unlocked endings: (if: $ending1unlocked)[1] (if: $ending2unlocked)[2] (if: $ending3unlocked)[3] (if: $ending4unlocked)[4] (if: $ending5unlocked)[5] (if: $ending6unlocked)[6] (if: $ending7unlocked)[7] (if: $ending8unlocked)[8] (if: $ending9unlocked)[9] (if: $ending10unlocked)[10] (if: $ending11unlocked)[11] (if: $ending12unlocked)[12] (if: $ending13unlocked)[13]Yel: Ok... Are you sure about this? You: Yes, let's go! You and Yel go to the border, planning to break into Gull's castle and overthrow them. [[Continue->BorderGL]]Yel: Ok! Let's go! You and Yel go to where Yel told you, and you see the guards. They are large and pointy squares, like the ones blockading your village. When you go up to them, they immediately notice you and move toward Yel. You: Wait! I have an offer. Guard 1: Get out of the way. We have a job to do. You: Please! Just let me talk. Guard 2: Fine, just do it quickly. You: Ok, [[This is Yel, they are really nice, so please spare them. ->Ending5]] [[This is my friend, please don't take them. ->Ending6]] [[Let Yel through and you can have me. ->Ending7]]Yel: Ok! Let's go! You and Yel go to where Yel told you, and you see the guards. They are large and pointy squares, like the ones blockading your village. They do not notice you, but they are blocking the only path out. You put some branches from a binary tree around Yel, then walk up to the guards. They let you through, and you and Yel flee to a nearby town, where you live for a few days. Yel: I feel bad for the people in Squareland being subject to that Gull person. I wish there were some way we could help them! [[Well, at least we are safe. ->Ending10]] [[Actually, let's go and help them! ->Help]]You are Orangeor Squarious. You were born in Squareland when it was a thriving and succesful country, but now the infamous dictator Tri Anne Gull has taken over, and you must flee the country to survive. First, though, you need to get past the blockade Gull made around your village. [[Continue->BlockadersGL]]Ignore this page I need to set variables... { (set: $ending1unlocked to false) (set: $ending2unlocked to false) (set: $ending3unlocked to false) (set: $ending4unlocked to false) (set: $ending5unlocked to false) (set: $ending6unlocked to false) (set: $ending7unlocked to false) (set: $ending8unlocked to false) (set: $ending9unlocked to false) (set: $ending10unlocked to false) (set: $ending11unlocked to false) (set: $ending12unlocked to false) (set: $ending13unlocked to false) } [[Start]]You run back to the small yellow square, and try to talk to them. Yel: What do you want? [[Hi Yel, I'm so sorry, my name is Orangeor. Why did you want to talk to me?->BorderSR1]] [[Sorry about that, I meant to ask you why you came to talk to me. ->YelApologyR1]]Yel: Why should I tell you? You were the one who was so rude about not telling me your name! [[Please forgive me, I'll do whatever you want!->YelWant]] [[I am so sorry Yel, all I wanted to know is why you came to talk to me. Can you please forgive me?->YelForgive]]Yel: It's OK, I forgive you. Do you still want to talk? [[Yes, my name is Orangeor. Why did you want to talk to me?->BorderSR1]] [[No->Ending1]]Yel: Thank you so much! I was reading the news a few days ago when I heard of that "Gull" person. I got really scared when I read what they had done, so I decided that I wanted to leave to be safe. But, right when I was about to leave, I saw some of Gull's soldiers and they asked me where I was going. Not knowing who they were, I told them that I was going to leave Squareland because of Gull. They tried to take me, but I just barely escaped, and I have been on the run looking for someone to help me ever since. Then, I found you, and you agreed to help me. They are guarding the border looking for me, so I need your help trying to escape. What do you think we should do? [[Take them head on. ->Ending8]] [[Take them by surprise. ->Ending9]] [[Try to negotiate with them. ->Negotiate]] [[Try to sneak past them. ->Sneak]]Yel: Please, I really need help! [[Ok, I'll help you. What do you need help with? ->YelHelp]] [[Sorry, I have to go->Ending1]]Yel: Whatever I want? OK, come here. You glimpse something in Yel's pocket that loooks pointy in the corner of your eye, but think nothing of it, and you go to Yel. Yel: Good, now stand still. [[OK->Ending2]] [[Are you sure about this?->YelWantR1]]You attempt to back up, but-- Yel: I said, STAND STILL. While Yel is talking, you catch another glimpse at the object in Yel's pocket. It is a triangular pointed knife. Horrified, you try as hard as you can to break free from Yel's grip, but to no avail. [[Call for help->Ending3]] [[Hit Yel in the face->Ending4]]