// UT Tip: Diagonal movement, as learnt, makes you go faster. So go fast to finish this level.
// However, at some point, you do need to slow down so you end up hitting a lower time. Find out where!
// Rep. by Pablo
//--- OBJECT WRITE BEGIN ---
new SimGroup(MissionGroup) {

   new ScriptObject(MissionInfo) {
         level = "21";
         startHelpText = "Learn how to use diagonal movement!";
         ultimateTime = "22000";
         name = "Diagonal Training";
         artist = "Andrew";
         music = "Astrolabe.ogg";
         desc = "Learn how to use diagonal movement to make your marble go faster.";
         type = "beginner";
         goldTime = "30000";
   };
   new MissionArea(MissionArea) {
      area = "-360 -648 720 1296";
      flightCeiling = "300";
      flightCeilingRange = "20";
         locked = "true";
   };
   new Sky(Sky) {
      position = "336 136 0";
      rotation = "1 0 0 0";
      scale = "1 1 1";
      cloudHeightPer[0] = "0";
      cloudHeightPer[1] = "0";
      cloudHeightPer[2] = "0";
      cloudSpeed1 = "0.0001";
      cloudSpeed2 = "0.0002";
      cloudSpeed3 = "0.0003";
      visibleDistance = "500";
      useSkyTextures = "1";
      renderBottomTexture = "1";
      SkySolidColor = "0.600000 0.600000 0.600000 1.000000";
      fogDistance = "300";
      fogColor = "0.600000 0.600000 0.600000 1.000000";
      fogVolume1 = "-1 -2.19536e+38 -2.19536e+38";
      fogVolume2 = "-1 -2.2087e+38 -2.19536e+38";
      fogVolume3 = "-1 -2.18196e+38 -2.16867e+38";
      materialList = "~/data/skies/Beginner/Beginner_Sky.dml";
      windVelocity = "1 0 0";
      windEffectPrecipitation = "0";
      noRenderBans = "1";
      fogVolumeColor1 = "128.000000 128.000000 128.000000 -222204871403647643306393613037507444736.000000";
      fogVolumeColor2 = "128.000000 128.000000 128.000000 -219535990253541534601988090029785743360.000000";
      fogVolumeColor3 = "128.000000 128.000000 128.000000 -214193076221289989668889361412515692544.000000";
   };
   new Sun() {
      direction = "0.4817261 0.4817261 -0.7320382";
      color = "1.400000 1.200000 0.400000 1.000000";
      ambient = "0.300000 0.300000 0.400000 1.000000";
   };
   new Trigger(stayhere) {
      position = "-150 120 -10";
      rotation = "1 0 0 0";
      scale = "300 200 160";
      dataBlock = "InBoundsTrigger";
      polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
   };
   new Item() {
      position = "-112.1 22.7 29.5";
      rotation = "1 0 0 0";
      scale = "1 1 1";
      dataBlock = "GemItem";
      collideable = "0";
      static = "1";
      rotate = "1";
   };
   new StaticShape(StartPoint) {
      position = "124.8 0 0.25";
      rotation = "0 0 -1 89.99999";
      scale = "1 1 1";
      dataBlock = "StartPad";
   };
   new Item() {
      position = "48 0 8.8";
      rotation = "1 0 0 0";
      scale = "1 1 1";
      dataBlock = "GemItem";
      collideable = "0";
      static = "1";
      rotate = "1";
   };
   new InteriorInstance() {
      position = "0 0 0";
      rotation = "0 0 -1 89.99999";
      scale = "1 1 1";
      interiorFile = "~/data/interiors_MBP/DiagonalTraining.dif";
      showTerrainInside = "0";
   };
   new StaticShape() {
      position = "-110 94 29.5";
      rotation = "1 0 0 0";
      scale = "1 1 1";
      dataBlock = "SignFinish";
   };
   new StaticShape(EndPoint) {
      position = "-112 93.8 24";
      rotation = "1 0 0 0";
      scale = "1 1 1";
      dataBlock = "EndPad";
   };
   new Trigger(Diag1) {
      position = "106.535 5.29365 0.320804";
      rotation = "1 0 0 0";
      scale = "2 11 2";
      dataBlock = "HelpTrigger";
      polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
         text = "To use diagonal movement, turn the camera 45 degrees to the left or right, and move the marble with both the <func:bind moveforward> and <func:bind moveright> keys or the <func:bind moveforward> and <func:bind moveleft> keys.";
   };
   new Trigger(Diag5) {
      position = "26.852 -48.2234 23.4";
      rotation = "1 0 0 0";
      scale = "2 11 2";
      dataBlock = "HelpTrigger";
      polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
         text = "Catch the Time Travel in mid-air!";
   };
   new Trigger(Diag2) {
      position = "79.0871 5.47226 0.320804";
      rotation = "1 0 0 0";
      scale = "2 11 2";
      dataBlock = "HelpTrigger";
      polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
         text = "Diagonal movement can be used to help you get up steep slopes.";
   };
   new Item() {
      position = "2 -54 33";
      rotation = "1 0 0 0";
      scale = "1 1 1";
      dataBlock = "TimeTravelItem";
      collideable = "0";
      static = "1";
      rotate = "1";
         timeBonus = "5000";
   };
   new Item() {
      position = "-96 -53.5 33.5";
      rotation = "1 0 0 0";
      scale = "1 1 1";
      dataBlock = "GemItem";
      collideable = "0";
      static = "1";
      rotate = "1";
   };
   new Trigger(DIag3) {
      position = "42.0788 -41.5624 23.4";
      rotation = "1 0 0 0";
      scale = "11 2 2";
      dataBlock = "HelpTrigger";
      polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
         text = "Diagonal movement can be used to gain height using slopes.";
   };
   new Item() {
      position = "48 -18.9 14.35";
      rotation = "1 0 0 0";
      scale = "1 1 1";
      dataBlock = "GemItem";
      collideable = "0";
      static = "1";
      rotate = "1";
   };
   new Trigger(Diag4) {
      position = "40.0786 -48.2984 23.4";
      rotation = "1 0 0 0";
      scale = "2 11 2";
      dataBlock = "HelpTrigger";
      polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
         text = "To gain height, get a head start using diagonal movement and jump on the slope.";
   };
   new Trigger(Diag7) {
      position = "-39.649 -48.3179 23.6";
      rotation = "1 0 0 0";
      scale = "2 11 2";
      dataBlock = "HelpTrigger";
      polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
         text = "Jump off the slope to reach the platform above!";
   };
   new Trigger(Diag8) {
      position = "-105.134 -47.9095 33.477";
      rotation = "1 0 0 0";
      scale = "2 11 2";
      dataBlock = "HelpTrigger";
      polyhedron = "0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 0.0000000 -1.0000000 0.0000000 0.0000000 0.0000000 1.0000000";
         text = "Diagonal movement can also be used to cross large gaps.";
   };
   new Item() {
      position = "-123.4 -53.65 41.9";
      rotation = "0 -1 0 57.00001";
      scale = "1 1 1";
      dataBlock = "HelicopterItem";
      collideable = "0";
      static = "1";
      rotate = "1";
   };
   new Item() {
      position = "-123.5 105.75 37.5";
      rotation = "1 0 0 0";
      scale = "1 1 1.25";
      dataBlock = "easterEgg";
      collideable = "0";
      static = "1";
      rotate = "1";
   };
   new StaticShape() {
      position = "48 -53.5 23.5";
      rotation = "0 0 -1 89.99999";
      scale = "1 1 1";
      dataBlock = "checkPoint";
   };
   new SimGroup(PathNodeGroup) {

      new StaticShape(CameraPath1) {
         position = "77.33955 15.42614 21.79552";
         rotation = "-0.09043369 -0.2360525 0.9675232 220.6761";
         scale = "1 1 1";
         dataBlock = "PathNode";
            useRotation = "1";
            timeToNext = "3000";
            usePosition = "1";
            placed = "1";
            reverseRotation = "0";
            useScale = "0";
            nextNode = "CameraPath2";
      };
      new StaticShape(CameraPath2) {
         position = "58.79023 16.40781 22.40879";
         rotation = "0.03656938 -0.1797606 0.9830304 212.6194";
         scale = "1 1 1";
         dataBlock = "PathNode";
            useRotation = "1";
            timeToNext = "3000";
            usePosition = "1";
            placed = "1";
            reverseRotation = "0";
            useScale = "0";
            nextNode = "CameraPath3";
      };
      new StaticShape(CameraPath3) {
         position = "40.31391 12.54744 24.20112";
         rotation = "0.03334085 -0.1710556 0.9846971 158.2707";
         scale = "1 1 1";
         dataBlock = "PathNode";
            useRotation = "1";
            timeToNext = "2650";
            usePosition = "1";
            placed = "1";
            reverseRotation = "0";
            useScale = "0";
            nextNode = "CameraPath4";
      };
      new StaticShape(CameraPath4) {
         position = "29.66351 5.182762 25.70112";
         rotation = "0.07536783 -0.197535 0.9773943 139.0974";
         scale = "1 1 1";
         dataBlock = "PathNode";
            useRotation = "1";
            timeToNext = "0";
            usePosition = "1";
            placed = "1";
            reverseRotation = "0";
            useScale = "0";
            nextNode = "CameraPath5";
      };
      new StaticShape(CameraPath5) {
         position = "47.47581 -44.52478 32.37382";
         rotation = "0.028683 0.04263314 -0.998679 112.2059";
         scale = "1 1 1";
         dataBlock = "PathNode";
            useRotation = "1";
            timeToNext = "6000";
            usePosition = "1";
            placed = "1";
            reverseRotation = "0";
            useScale = "0";
            nextNode = "CameraPath6";
      };
      new StaticShape(CameraPath6) {
         position = "-41.52419 -44.52478 32.37382";
         rotation = "0.028683 0.04263314 -0.998679 112.2059";
         scale = "1 1 1";
         dataBlock = "PathNode";
            useRotation = "1";
            timeToNext = "0";
            usePosition = "1";
            placed = "1";
            reverseRotation = "0";
            useScale = "0";
            nextNode = "CameraPath7";
      };
      new StaticShape(CameraPath7) {
         position = "-115.6579 -30.48397 37.31345";
         rotation = "0.6751241 -0.07733833 0.7336391 17.7496";
         scale = "1 1 1";
         dataBlock = "PathNode";
            useRotation = "1";
            timeToNext = "5600";
            usePosition = "1";
            placed = "1";
            reverseRotation = "0";
            useScale = "0";
            nextNode = "CameraPath8";
      };
      new StaticShape(CameraPath8) {
         position = "-116.0052 43.86613 30.30219";
         rotation = "0.66811 -0.1036694 0.7368051 23.78498";
         scale = "1 1 1";
         dataBlock = "PathNode";
            useRotation = "1";
            timeToNext = "5000";
            usePosition = "1";
            placed = "1";
            reverseRotation = "0";
            useScale = "0";
            nextNode = "CameraPath9";
      };
      new StaticShape(CameraPath9) {
         position = "-116.0052 43.86613 30.30219";
         rotation = "0.66811 -0.1036694 0.7368051 23.78498";
         scale = "1 1 1";
         dataBlock = "PathNode";
            useRotation = "1";
            timeToNext = "0";
            usePosition = "1";
            placed = "1";
            reverseRotation = "0";
            useScale = "0";
            nextNode = "CameraPath1";
      };
   };
   new StaticShape() {
      position = "-112 -53.5 33.5";
      rotation = "1 0 0 0";
      scale = "1 1 1";
      dataBlock = "checkPoint";
   };
   new AudioProfile(MusicProfile) {
      fileName = "~/data/sound/music/Pianoforte (Guitar Remix).ogg";
      description = "AudioMusic";
      preload = "0";
   };
};
//--- OBJECT WRITE END ---
