home *** CD-ROM | disk | FTP | other *** search
/ Top 50 Space / SPACE.bin / data / siege / siege.ace / training / training3.cs < prev    next >
Encoding:
Text File  |  1999-03-19  |  9.7 KB  |  371 lines

  1. $currentWayPoint      = 0;
  2. $playedHercMessage    = false;
  3. $playedTankMessage    = false;
  4. $iTargetCheck         = 0;
  5. $droneDestroyed       = false;
  6. $tank1Destroyed       = false;
  7. $tank2Destroyed       = false;
  8. $herc1Destroyed       = false;
  9. $herc2Destroyed       = false;
  10. $orderedAttackTanks   = false;
  11. $orderedTargetTank    = false;
  12. $orderedTargetDrone   = false;
  13. $playerTargeted       = false;
  14.  
  15. exec("training_fns.cs");
  16.  
  17. DropPoint drop1
  18. {
  19.    name = "Drop Point 1";
  20.    desc = "Drop Point 1";
  21. };
  22.  
  23. function setupTargets()
  24. {
  25.    order("MissionGroup/Targets/Nav Alpha", HoldFire,     true);
  26.    order("MissionGroup/Targets/Nav Alpha", HoldPosition, true);
  27.  
  28.    setHercOwner("MissionGroup\\Targets\\Nav Alpha", $playerId);
  29.    setHercOwner("MissionGroup\\Targets\\Nav Bravo", $playerId);
  30. }
  31.  
  32. function checkForPlayerTargeted()
  33. {
  34.    if ($playerTargeted)
  35.    {
  36.       onArriveNavPoint($charlieId);
  37.       checkForHercsDestroyed();
  38.    }
  39.    else
  40.    {
  41.       schedule("checkForPlayerTargeted();", 1);
  42.    }
  43. }
  44.  
  45. function checkForHercsDestroyed()
  46. {
  47.    %pause = 0;
  48.  
  49.    if ($herc1Destroyed && $herc2Destroyed)
  50.    {
  51.       onMissionCompleted(*IDSTR_TR3_HNTR32, "TR03_HNTR32.WAV");
  52.    }
  53.    else
  54.    {
  55.       if (($herc1Destroyed || $herc2Destroyed) && $playedHercMessage == false)
  56.       {
  57.          %pause             = 4;
  58.          $playedHercMessage = true;
  59.          msay(0, 1234, *IDSTR_TR3_HNTR31, "TR03_HNTR31.WAV");
  60.       }
  61.       schedule("checkForHercsDestroyed();", 1 + %pause);
  62.    }
  63. }
  64.  
  65. function checkForDroneDestroyed()
  66. {
  67.    if ($droneDestroyed == true)
  68.    {
  69.       msay(0, 1234, *IDSTR_TR3_HNTR30, "TR03_HNTR30.WAV");
  70.       schedule("setNavCharlie();", 11);
  71.    }
  72.    else
  73.    {
  74.       schedule("checkForDroneDestroyed();", 1);
  75.    }
  76. }
  77.  
  78. function checkForTanksDestroyed()
  79. {
  80.    %pause = 0;
  81.  
  82.    if ($tank1Destroyed && $tank2Destroyed)
  83.    {
  84.       onArriveNavPoint($alphaId);
  85.  
  86.       if ($orderedAttackTanks)
  87.       {
  88.          msay(0, 1234, *IDSTR_TR3_HNTR22, "TR03_HNTR22.WAV");
  89.       }
  90.       else
  91.       {
  92.          msay(0, 1234, *IDSTR_TRG_HNTRGS, "TR_HNTRGS.WAV");
  93.       }
  94.       schedule("explainSensor();", 2);
  95.    }
  96.    else
  97.    {
  98.       if (($tank1Destroyed || $tank2Destroyed) && $playedTankMessage == false)
  99.       {
  100.          %pause             = 3;
  101.          $playedTankMessage = true;
  102.          msay(0, 1234, *IDSTR_TR3_HNTR21, "TR03_HNTR21.WAV");
  103.       }
  104.       schedule("checkForTanksDestroyed();", 1 + %pause);
  105.    }
  106. }
  107.  
  108. function orderDestroyTanks()
  109. {
  110.    %pause = 0;
  111.  
  112.    if ($tank1Destroyed == false || $tank2Destroyed == false) 
  113.    {
  114.       $orderedAttackTanks = true; 
  115.  
  116.       if ($tank1Destroyed == false && $tank2Destroyed == false)
  117.       {
  118.          %pause = 9;
  119.          msay(0, 1234, *IDSTR_TR3_HNTR20, "TR03_HNTR20.WAV");
  120.       }
  121.       else
  122.       { 
  123.          %pause             = 3;
  124.          $playedTankMessage = true;
  125.          msay(0, 1234, *IDSTR_TR3_HNTR21, "TR03_HNTR21.WAV");
  126.       }
  127.    }
  128.  
  129.    schedule("checkForTanksDestroyed();", 1 + %pause);
  130. }
  131.  
  132. function checkForTargetAcquired(%arg)
  133. {
  134.    %pause       = 0;
  135.    %curTargetID = getCurrentTargetID($playerId);
  136.  
  137.    if (%arg == navAlpha)
  138.    {
  139.       if (%curTargetID == getObjectId("MissionGroup/Targets/Nav Alpha/Tank1") ||
  140.           %curTargetID == getObjectid("MissionGroup/Targets/Nav Alpha/Tank2"))
  141.       {
  142.          $iTargetCheck = 0;
  143.  
  144.          msay(0, 1234, *IDSTR_TR3_HNTR17, "TR03_HNTR17.WAV");
  145.          schedule("msay(0, 1234, *IDSTR_TR3_HNTR18, \"TR03_HNTR18.WAV\");",  8);
  146.          schedule("msay(0, 1234, *IDSTR_TR3_HNTR19, \"TR03_HNTR19.WAV\");", 26);
  147.  
  148.          schedule("orderDestroyTanks();", 31);
  149.       }
  150.       else
  151.       {
  152.          if ($tank1Destroyed && $tank2Destroyed)
  153.          {
  154.             onMissionFailed(0, true);
  155.          }
  156.          else
  157.          {
  158.             $iTargetCheck ++;
  159.  
  160.             if ($iTargetCheck == 10)
  161.             {
  162.                %pause        = 5;
  163.                $iTargetCheck = 0;
  164.                msay(0, 1234, *IDSTR_TR3_HNTR16, "TR03_HNTR16.WAV");
  165.             }
  166.  
  167.             schedule("checkForTargetAcquired(navAlpha);", 1 + %pause);
  168.          }
  169.       }
  170.    }
  171.    else if (%arg == navBravo)
  172.    {
  173.       if (%curTargetId == getObjectId("MissionGroup/Targets/Nav Bravo/Drone1"))
  174.       {
  175.          order(%curTargetId, Retreat, "MissionGroup/Paths/Drone/Retreat");
  176.          $iTargetCheck = 0;
  177.  
  178.          onArriveNavPoint($bravoId);
  179.          msay(0, 1234, *IDSTR_TR3_HNTR28, "TR03_HNTR28.WAV");
  180.  
  181.          schedule("msay(0, 1234, *IDSTR_TR3_HNTR29, \"TR03_HNTR29.WAV\");", 12);
  182.          schedule("checkForDroneDestroyed();", 23);
  183.       }
  184.       else
  185.       {
  186.          if ($orderedTargetDrone)
  187.          {
  188.             $iTargetCheck ++;
  189.  
  190.             if ($iTargetCheck == 10)
  191.             {
  192.                %pause        = 5;
  193.                $iTargetCheck = 0;
  194.                msay(0, 1234, *IDSTR_TR3_HNTR27, "TR03_HNTR27.WAV");
  195.             }
  196.          }
  197.          schedule("checkForTargetAcquired(navBravo);", 1 + %pause);
  198.       }
  199.    }
  200. }
  201.  
  202. function explainSensor()
  203. {
  204.    msay(0, 1234, *IDSTR_TR3_HNTR23, "TR03_HNTR23.WAV");
  205.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR24, \"TR03_HNTR24.WAV\");", 16);
  206.    schedule("setNavBravo();", 28);
  207. }
  208.  
  209. function startHercPatrol()
  210. {
  211.    order("MissionGroup\\Targets\\Nav Charlie", Formation, Wedge);
  212.    order("MissionGroup\\Targets\\Nav Charlie", Guard, "MissionGroup/Paths/Herc");
  213. }
  214.  
  215. function onNearingNavPoint(%arg)
  216. {
  217.    if (%arg == $alphaId)
  218.    {
  219.       %pause       = 0;
  220.       %curTargetID = getCurrentTargetID($playerId);
  221.       %distance    = getDistance($playerId, $alphaId);
  222.  
  223.       $orderedTargetTank = true;
  224.  
  225.       if (%curTargetID == getObjectId("MissionGroup/Targets/Nav Alpha/Tank1") ||
  226.           %curTargetID == getObjectid("MissionGroup/Targets/Nav Alpha/Tank2"))
  227.       {
  228.          %pause = 8;
  229.          msay(0, 1234, *IDSTR_TR3_HNTR15, "TR03_HNTR15.WAV");
  230.       }
  231.       else
  232.       {
  233.          if (%distance > 100)
  234.          {
  235.             %pause = 13;
  236.             msay(0, 1234, *IDSTR_TR3_HNTR13, "TR03_HNTR13.WAV");
  237.          }
  238.          else
  239.          {
  240.             %pause = 11;
  241.             msay(0, 1234, *IDSTR_TR3_HNTR14, "TR03_HNTR14.WAV");
  242.          }
  243.       }
  244.       schedule("checkForTargetAcquired(navAlpha);", %pause);
  245.    }
  246.    else if (%arg == $bravoId)
  247.    {
  248.       if (getCurrentTargetID($playerId) != 
  249.           getObjectId("MissionGroup/Targets/Nav Bravo/Drone1"))
  250.       {
  251.          $orderedTargetDrone = true;
  252.          msay(0, 1234, *IDSTR_TR3_HNTR27, "TR03_HNTR27.WAV");
  253.       }
  254.    }
  255. }
  256.  
  257. function onArriveNavPoint(%arg)
  258. {
  259.    setNavMarker(%arg, false, -1);
  260. }
  261.  
  262. function setNavCharlie()
  263. {
  264.    $currentWayPoint = $charlieId;
  265.    startHercPatrol();
  266.    setNavMarker("MissionGroup/Nav Points/Nav Charlie", true,  -1);
  267.    schedule("monitorProgress("@$charlieId@", 0, 100, 50);", 12);
  268.    schedule("checkForPlayerTargeted();", 1);
  269.    ensureNavPointSet($charlieId);
  270. }
  271.  
  272. function setNavBravo()
  273. {
  274.    $currentWayPoint = $bravoId;
  275.    order("MissionGroup\\Targets\\Nav Bravo", Guard, "MissionGroup/Paths/Drone/Patrol");
  276.    setNavMarker("MissionGroup/Nav Points/Nav Bravo", true,  -1);
  277.    msay(0, 1234, *IDSTR_TR3_HNTR25, "TR03_HNTR25.WAV");
  278.    schedule("monitorProgress("@$bravoId@", 900, 100, 50);", 3);
  279.    schedule("checkForTargetAcquired(navBravo);", 1);
  280.    ensureNavPointSet($bravoId);
  281. }
  282.  
  283. function setNavAlpha()
  284. {
  285.    $currentWayPoint = $alphaId;
  286.    setNavMarker("MissionGroup/Nav Points/Nav Alpha", true, -1);
  287.    msay(0, 1234, *IDSTR_TR3_HNTR12, "TR03_HNTR12.WAV");
  288.    schedule("monitorProgress("@$alphaId@", 900, 100, 50);", 5);
  289.    ensureNavPointSet($alphaId);
  290. }
  291.  
  292. function initTrainer()
  293. {
  294.    setupTargets();
  295.    say(0, 1234, "", "TR_INTR01.WAV");
  296.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR01, \"TR03_HNTR01.WAV\");",   4);
  297.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR02, \"TR03_HNTR02.WAV\");",  14);
  298.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR03, \"TR03_HNTR03.WAV\");",  31);
  299.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR04, \"TR03_HNTR04.WAV\");",  43);
  300.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR05, \"TR03_HNTR05.WAV\");",  54);
  301.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR06, \"TR03_HNTR06.WAV\");",  70);
  302.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR07, \"TR03_HNTR07.WAV\");",  88);
  303.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR08, \"TR03_HNTR08.WAV\");",  100);
  304.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR09, \"TR03_HNTR09.WAV\");", 111);
  305.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR10, \"TR03_HNTR10.WAV\");", 122);
  306.    schedule("msay(0, 1234, *IDSTR_TR3_HNTR11, \"TR03_HNTR11.WAV\");", 136);
  307.    schedule("setNavAlpha();", 152);
  308. }
  309.  
  310. function tank1::vehicle::onDestroyed(%this, %who)
  311. {
  312.    $tank1Destroyed = true;
  313.  
  314.    if ($currentWayPoint != $alphaId || $orderedTargetTank == false)
  315.    {
  316.       onMissionFailed(0, true);
  317.    }
  318. }
  319.  
  320. function tank2::vehicle::onDestroyed(%this, %who)
  321. {
  322.    $tank2Destroyed = true;
  323.  
  324.    if ($currentWayPoint != $alphaId || $orderedTargetTank == false)
  325.    {
  326.       onMissionFailed(0, true);
  327.    }
  328. }
  329.  
  330. function drone1::vehicle::onDestroyed(%this, %who)
  331. {
  332.    $droneDestroyed = true;
  333.  
  334.    if ($currentWayPoint != $bravoId)
  335.    {
  336.       onMissionFailed(0, true);
  337.    }
  338. }
  339.  
  340. function herc1::vehicle::onDestroyed(%this, %who)
  341. {
  342.    $herc1Destroyed = true;
  343.  
  344.    if ($currentWayPoint != $charlieId)
  345.    {
  346.       onMissionFailed(0, true);
  347.    }
  348. }
  349.  
  350. function herc2::vehicle::onDestroyed(%this, %who)
  351. {
  352.    $herc2Destroyed = true;
  353.  
  354.    if ($currentWayPoint != $charlieId)
  355.    {
  356.       onMissionFailed(0, true);
  357.    }
  358. }
  359.  
  360. function vehicle::onTargeted(%this, %who)
  361. {
  362.    if (%this == $playerId && $currentWayPoint == $charlieId && $playerTargeted == false)
  363.    {
  364.       if (%who == getObjectId("MissionGroup/Targets/Nav Charlie/Herc1") ||
  365.           %who == getObjectId("MissionGroup/Targets/Nav Charlie/Herc2"))
  366.       {
  367.          $playerTargeted = true;
  368.       }
  369.    }
  370. }
  371.