protected override void Build() { DeathTaunts.Add(null, "What a shame, I had such high hopes for you"); const double STEP_WIDTH = 1.2; Add(Platform.Concrete(new Point2(2.5, 4), width: STEP_WIDTH)); Platforms.Last().OnActorStanding += actor => LevelContext.DisplayHint(JUMP_HINT); for (int i = 1; i < 5; i++) { Add(Platform.Concrete(new Point2(3 + i * i / 2.8 + 2 * i, 4 + i), width: STEP_WIDTH)); } Platforms[2].OnActorStanding += actor => { if (actor.Velocity.IsZero) { LevelContext.DisplayHint(MOMENTUM_HINT); } }; Platforms[3].OnActorStanding += actor => LevelContext.DisplayHint(HOLD_JUMP_HINT); DeathTaunts.Add(Platforms[Platforms.Count - 2], "You snooze, you lose"); Platforms.Last().OnActorStanding += actor => LevelContext.DisplayMessage("You're not too old for this after all!"); }
protected override void Build() { Add(Platform.PassThrough(new Point2(8, 13), width: 3)); Platforms[0].OnActorLanding += actor => LevelContext.DisplayMessage("That doesn't look too bad..."); Add(Platform.Concrete(new Point2(15.35, 8.8), width: 0.5, height: 0.5)); Platforms.Last().OnActorStanding += actor => LevelContext.DisplayMessage("If it fits, I sits"); DeathTaunts.Add(Platforms.Last(), "Well yes, but actually no"); Add(Platform.Concrete(new Point2(18, 7.4), width: 2, height: 2.2)); DeathTaunts.Add(Platforms.Last(), "Absolutely but not really"); Add(Platform.Concrete(new Point2(19.5, 7.5), width: 0.5, height: 0.1)); DeathTaunts.Add(Platforms.Last(), "Maybe this isn't the right game for you"); _boop = Add(Platform.Concrete(new Point2(18.8, 10.4), width: 0.9, height: 0.9)); Platforms.Last().OnActorLanding += actor => LevelContext.DisplayMessage("This is exciting! Or is it..."); DeathTaunts.Add(Platforms.Last(), "So cautious. Yet so dead"); Add(Platform.Concrete(new Point2(13.1, 3), width: 1, height: 1)); Platforms.Last().OnActorLanding += actor => LevelContext.DisplayMessage("Captain obvious to the rescue!"); DeathTaunts.Add(Platforms.Last(), "LOL you knew this would fail"); Add(Platform.Concrete(new Point2(22.0, 13.0), width: 0.3, height: 8.0)); Add(Platform.Concrete(new Point2(18.3, 3), width: 2.5)); Platforms.Last().OnActorLanding += actor => LevelContext.DisplayMessage("Deep in my heart I have always believed in you"); }
protected override void Build() { Add(Platform.Concrete(new Point2(6, 3), width: 2)); Add(Platform.PassThrough(new Point2(9, 5), width: 1)); Add(Platform.PassThrough(new Point2(9, 4), width: 1)); Add(Platform.OneWay(new Point2(9, 6), width: 8)); Platforms.Last().OnActorLanding += actor => { if (actor.Size == 1) { LevelContext.DisplayHint(SPLITTER_HINT); } }; Add(Platform.Flipper(new Point2(9, 6.9))); _splitter = Add(Platform.Splitter(new Point2(5, 5.7))); Add(Platform.Concrete(new Point2(3, 3.0), width: 1)); Add(Platform.Concrete(new Point2(10, 6), width: 0.3, height: 1.4)); Add(Platform.Concrete(new Point2(17.9, 7.3), width: 1.1)); Add(Platform.Concrete(new Point2(10, 3), width: 4)); Add(Platform.Concrete(new Point2(19, 7.0), height: 4, width: 0.3)); Add(Platform.Concrete(new Point2(16, 3), width: 3)); }
private void AddPlatforms() { Platform lastPlatform = Platforms.Last(); while (lastPlatform.Position.X + lastPlatform.Width < Global.ScreenWidth * 2) { Platform newPlatform = new Platform(lastPlatform); Platforms.Add(newPlatform); lastPlatform = newPlatform; } }
protected override void Build() { for (int i = 0; i < 2; i++) { Add(Platform.PassThrough(new Point2(3, 5 + i * 2), width: i + i * i / 6.0 + 3)); } var runDownPlatform = Platforms.Last(); runDownPlatform.OnActorStanding += actor => LevelContext.DisplayHint(RUN_DOWN_HINT); Add(Platform.Concrete(runDownPlatform.Box.TopRight + new Vector2(0.3, 3.7), width: 1, height: 3)); Platforms.Last().OnActorStanding += actor => LevelContext.DisplayMessage("Was it especially important to reach here?"); Add(Platform.Concrete(runDownPlatform.Box.TopRight + new Vector2(0.5, -2), width: 0.6)); _checkpoint = Add(Platform.Concrete(new Point2(12, 5), width: 3.5)); Platforms.Last().OnActorStanding += actor => { LevelContext.SuppressHint(RUN_DOWN_HINT); LevelContext.DisplayMessage("Good!", seconds: 1); }; Add(Platform.PassThrough(new Point2(12, 7), width: 3)); Add(Platform.PassThrough(new Point2(12, 8), width: 3)); Platforms.Last().OnActorStanding += actor => LevelContext.DisplayMessage("Aren't you a genius..."); Add(Platform.PassThrough(new Point2(12, 9), width: 3)); Platforms.Last().OnActorStanding += actor => LevelContext.DisplayHint(ONE_WAY_HINT); Add(Platform.OneWay(new Point2(11, 10), width: 9)); Add(Platform.OneWay(new Point2(10, 11), width: 12)); _highOneWayPlatform = Platforms.Last(); _highOneWayPlatform.OnActorStanding += actor => { _steppedOnHighOneWay = true; LevelContext.SuppressHint(ONE_WAY_HINT); LevelContext.DisplayMessage("But it may disappoint you"); }; Add(Platform.PassThrough(new Point2(21, 8), width: 1)); }
protected override void PostBuild(Level level) { level.Munches.Add(new Munch(new Point2(21.15, 9.9))); level.Door.Size = 2; _checkpoint.OnActorLanding += actor => { if (actor.Size == 2) { level.SaveCheckpoint(); } }; Platforms.Last().OnActorLanding += actor => { if (actor.Size == level.Door.Size) { LevelContext.DisplayMessage("Or a woman of culture.\n" + "I don't know, I can't really see..."); } else { LevelContext.DisplayMessage("You're too small for this world"); } }; level.OnActorMunch += (actor, munch) => { actor.Location += new Vector2(-actor.Width / 2, actor.Height / 2); LevelContext.DisplayMessage("Yum! Big boys can jump higher!"); actor.Velocity = Vector2.ZERO; }; level.OnActorJump += actor => { if (actor.Size == 2) { LevelContext.DisplayMessage("Jumping higher is a good thing! Right?..."); } }; }
protected override void Build() { Add(Platform.Concrete(new Point2(1, 9.5), width: 2)); for (int i = 0; i < 5; i++) { Add(Platform.Concrete(new Point2(3 + i * i / 6.5 + i * 2, 9.5 - i), width: 1.3)); } Platforms[0].OnActorStanding += actor => LevelContext.DisplayHint(RIGHT_HINT); Platforms[2].OnActorStanding += actor => { LevelContext.SuppressHint(RIGHT_HINT); LevelContext.DisplayMessage("Good. Was just making sure you have pulse", seconds: 2); }; DeathTaunts.Add(Platforms[4], "Stop being so insecure!"); DeathTaunts.Add(Platforms[5], "You're a goner"); Platforms.Last().OnActorStanding += actor => LevelContext.DisplayHint(DOOR_HINT); }
protected override void Build() { Add(Platform.Concrete(new Point2(7, 3), width: 1, height: 0.3)); Platforms.Last().OnActorLanding += actor => LevelContext.DisplayMessage("Find your inner peace"); _checkpoint = Add(Platform.OneWay(new Point2(7, 7), width: 4.5)); Add(Platform.PassThrough(new Point2(16.9, 8), width: 0.3)); Add(Platform.OneWay(new Point2(18.3, 5), width: 1.5)); DeathTaunts.Add(Platforms.Last(), "Such lack of creativity"); Add(Platform.OneWay(new Point2(10, 9), width: 3.7)); Add(Platform.OneWay(new Point2(15.6, 9), width: 5.4)); Platforms.Last().OnActorLanding += actor => { if (actor.Size == 1) { LevelContext.DisplayMessage("Just do it"); } }; Add(Platform.PassThrough(new Point2(19, 8), width: 1.3)); Platforms.Last().OnActorLanding += actor => { if (actor.Size == 2) { LevelContext.DisplayMessage("Ah! I see you are a man of culture"); } }; Add(Platform.OneWay(new Point2(14.3, 7), width: 2)); Add(Platform.PassThrough(new Point2(9, 4), width: 1.5)); Add(Platform.PassThrough(new Point2(10.5, 8), width: 2.6)); Add(Platform.PassThrough(new Point2(20, 7), width: 1)); Add(Platform.PassThrough(new Point2(12.9, 4), width: 1.5)); Add(Platform.OneWay(new Point2(13.2, 5), width: 1.5)); DeathTaunts.Add(Platforms.Last(), "You should use your head for thinking"); Add(Platform.Concrete(new Point2(14.5, 3), width: 1.3, height: 0.3)); DeathTaunts.Add(Platforms.Last(), "Suicide is never the answer"); Add(Platform.Concrete(new Point2(16, 5.3), width: 0.3, height: 0.3)); Add(Platform.Concrete(new Point2(18, 5.3), width: 0.3, height: 0.3)); DeathTaunts.Add(Platforms.Last(), "Epic fail"); Add(Platform.Concrete(new Point2(14, 7), width: 0.3, height: 0.3)); Add(Platform.Concrete(new Point2(13.7, 9.3), width: 0.3, height: 0.3)); Add(Platform.Concrete(new Point2(17.8, 3), width: 1, height: 0.3)); Add(Platform.Concrete(new Point2(20.2, 3.8), width: 0.3)); DeathTaunts.Add(Platforms.Last(), "Wow, you really blew it this time!"); Add(Platform.Concrete(new Point2(21, 8), width: 0.3, height: 0.5)); Add(Platform.Concrete(new Point2(21, 16.5), width: 0.3, height: 4)); Add(Platform.Concrete(new Point2(21, 10.8), width: 0.3, height: 0.8)); Add(Platform.Concrete(new Point2(15.1, 11.2), width: 0.3, height: 0.3)); Add(Platform.Concrete(new Point2(17.5, 11.5), width: 0.3, height: 0.3)); Add(Platform.OneWay(new Point2(10, 12), width: 11)); Add(Platform.Concrete(new Point2(23.5, 4), width: 4, height: 0.3)); }
protected override void Build() { _checkpoint2 = Add(Platform.OneWay(new Point2(2, 8), width: 9)); Platforms.Last().OnActorStanding += actor => { if (actor.Size == 1) { LevelContext.DisplayHint(POINT_HINT); } else { LevelContext.DisplayMessage("Don't think twice, it's alright"); } }; Add(Platform.OneWay(new Point2(2, 9), width: 2)); Platforms.Last().OnActorStanding += actor => LevelContext.DisplayHint(POINT_HINT); Add(Platform.Flipper(bottomLeft: new Point2(4.5, 9.9))); var lowVelocityFails = 0; var verticalVelocityUnnecessaryFails = 0; Platforms.Last().OnActorColliding += actor => { if (actor.Orientation == ActorOrientation.FLAT) { LevelContext.DisplayMessage("You're flat out missing the point.\n" + "There were two puns in that sentence.", seconds: 7); } else if (actor.Velocity.Y < -2) { if (verticalVelocityUnnecessaryFails == 0) { LevelContext.DisplayMessage("You're heading in the wrong direction! I mean, generally in life, it's not a clue or anything", seconds: 7); } else { LevelContext.DisplayMessage("What are your expectations from doing this?"); } verticalVelocityUnnecessaryFails++; } else if (actor.Velocity.Y > 0) { LevelContext.DisplayMessage("Not like this!"); } else if (actor.Velocity.X > 2.0) { if (lowVelocityFails == 0) { LevelContext.DisplayMessage("Have you forgotten your breakfast?\n" + "They are STRONGLY recommended!", seconds: 10); } else { LevelContext.DisplayMessage("It's not about hitting the point as much as it's about hitting yourself with the point", seconds: 10); } lowVelocityFails++; } }; Platforms.Last().OnActorChangedOrientation += actor => { LevelContext.SuppressHint(POINT_HINT); if (actor.Size == 1) { LevelContext.DisplayMessage("VROOM VROOM! All aboard on the bullet... ehm... brain?", seconds: 7); } else if (actor.Orientation == ActorOrientation.FLAT) { LevelContext.DisplayMessage("I'll just assume that was by mistake. Wink, wink"); } else { LevelContext.DisplayMessage("You were once so naive.\n" + "Now you think you've got everything sorted out.", seconds: 7); } }; Add(Platform.OneWay(new Point2(8, 9), width: 1.5)); Add(Platform.OneWay(new Point2(7, 10), width: 3)); Add(Platform.Concrete(new Point2(19, 2), width: 2)); Platforms.Last().OnActorStanding += actor => { if (actor.Orientation == ActorOrientation.FLAT) { LevelContext.DisplayMessage("Are you f****d or what? Am I right guys?"); } }; Add(Platform.Flipper(bottomLeft: new Point2(18.5, 2.9))); Platforms.Last().OnActorChangedOrientation += actor => { if (actor.Size == 1) { LevelContext.DisplayMessage("That was soooo down to earth man"); } else { LevelContext.DisplayMessage("Do you have De ja vu?", seconds: 2); } }; Add(Platform.PassThrough(new Point2(20, 4), width: 1)); Add(Platform.PassThrough(new Point2(20, 6), width: 1)); Add(Platform.OneWay(new Point2(18, 8), width: 12)); _checkpoint1 = Add(Platform.Flipper(bottomLeft: new Point2(26, 10.4))); Platforms.Last().OnActorChangedOrientation += actor => { if (actor.Size == 1) { LevelContext.DisplayMessage("You grew up so fast... sniff"); } else { LevelContext.DisplayMessage("Do you have De ja vu again??"); } }; Add(Platform.PassThrough(new Point2(8, 4), width: 2)); Platforms.Last().OnActorStanding += actor => LevelContext.DisplayMessage( "If you liked this game so far, well... be prepared to hate your own life as well", seconds: 7); Add(Platform.Concrete(new Point2(2, 1), width: 9)); Platforms.Last().OnActorStanding += actor => { if (actor.Orientation == ActorOrientation.FLAT) { LevelContext.DisplayMessage("It is possible that you will begin losing your mind just about... now", seconds: 7); } }; Add(Platform.Flipper(bottomLeft: new Point2(4, 2))); Platforms.Last().OnActorChangedOrientation += actor => { LevelContext.DisplayMessage("You've figured something out on your own! That's new!"); }; Add(Platform.Concrete(new Point2(12.8, 10), width: 0.2, height: 0.5)); Platforms.Last().OnActorStanding += actor => { if (actor.Size == 1) { LevelContext.DisplayMessage("You have just unlocked a new ability: Uselesness", seconds: 7); } else if (actor.Orientation == ActorOrientation.FLAT) { LevelContext.DisplayMessage("Well well well. Look who's back in town"); } }; Platforms.Last().OnActorColliding += actor => { if (actor.Velocity.X >= 0) { LevelContext.DisplayMessage("Yes, yes, but why?"); } else { LevelContext.DisplayMessage("It's a shame to see you go"); } }; Add(Platform.Concrete(new Point2(12.8, 16), width: 0.2, height: 0.2)); Add(Platform.Concrete(new Point2(12.8, 15), width: 0.2, height: 2.7)); Platforms.Last().OnActorColliding += actor => { if (actor.Velocity.X < 0) { LevelContext.DisplayMessage("I would pity you but I'm not human"); } }; Add(Platform.PassThrough(new Point2(21.5, 9.5), width: 4.5)); Add(Platform.OneWay(new Point2(21, 11), width: 5)); Platforms.Last().OnActorStanding += actor => { if (actor.Size == 1) { LevelContext.DisplayMessage("Did you lose something here?"); } }; Add(Platform.OneWay(new Point2(5, 10), width: 5)); Add(Platform.OneWay(new Point2(7.25, 10.75), width: 0.5)); Add(Platform.OneWay(new Point2(6.5, 12), width: 2.1)); Add(Platform.PassThrough(new Point2(3, 12.9), width: 6)); Add(Platform.OneWay(new Point2(2.5, 13.6), width: 7)); Add(Platform.OneWay(new Point2(2, 14), width: 8)); Platforms.Last().OnActorStanding += actor => { if (actor.Size == 1) { LevelContext.DisplayMessage("Remind me of your strategy..."); } else if (actor.Orientation == ActorOrientation.TALL) { LevelContext.DisplayMessage("The cake was a lie"); } }; Add(Platform.Concrete(new Point2(5, 12.3), width: 0.3, height: 1.8)); Add(Platform.Concrete(new Point2(10, 12.8), width: 0.3, height: 0.6)); Platforms.Last().OnActorStanding += actor => { if (actor.Size == 1) { LevelContext.DisplayMessage("Define 'pointless'"); } }; Add(Platform.Concrete(new Point2(10, 15.1), width: 0.3, height: 0.2)); Platforms.Last().OnActorColliding += actor => { if (actor.Size == 2) { LevelContext.DisplayMessage("Muhahahaha"); } }; Add(Platform.Concrete(new Point2(2, 17.3), width: 10)); Add(Platform.Concrete(new Point2(10.8, 11.3), width: 1.5)); Platforms.Last().OnActorStanding += actor => { if (actor.Size == 1) { LevelContext.DisplayMessage("It's nice think that being a KNOB should be enough to open this door, isn't it?", seconds: 7); } else if (actor.Orientation == ActorOrientation.FLAT) { LevelContext.DisplayMessage("May I help you?"); } }; }