home *** CD-ROM | disk | FTP | other *** search
/ 100 Plus Great Games 2 / 100PLUSV2.BIN / games / 3BillyGoats.dxr / 00009_gameMovie.ls < prev    next >
Encoding:
Text File  |  2002-01-25  |  30.0 KB  |  1,020 lines

  1. global gDeck, gShuffle, gPlayerHand, gCompHand, gPlayerScore, gCompScore, gCardsRemaining, gCardsSelected, gDistance, gLooper, gBridge, gSingleCardSelected1, gSingleCardSelected2, gSingleCardSelected3, gSingleCardSelected4, gSingleCardSelected5, gGoatPos, gOgrePos, gEnemyDistance, gAttack, gCardsUsed, gPaused, gCount, gEnemyCard, gGoatFlyDistance, gMultiple, gGoatScore, gOgreScore, gWait4Rest, gBlockCount, gPegY, gPegX, gTemp, gRestart
  2.  
  3. on startMovie
  4.   gBlockCount = 0
  5.   sprite(206).visible = 1
  6.   sprite(207).visible = 1
  7.   sprite(208).visible = 1
  8.   sprite(46).visible = 0
  9.   sprite(48).visible = 0
  10.   gWait4Rest = 0
  11.   gGoatScore = 0
  12.   member("GoatScoreText").text = string(gGoatScore)
  13.   gOgreScore = 0
  14.   member("OgreScoreText").text = string(gOgreScore)
  15.   gMultiple = 0
  16.   sprite(98).visible = 0
  17.   sprite(100).visible = 0
  18.   gAttack = 0
  19.   gPaused = 0
  20.   sprite(120).visible = 0
  21.   gCardsUsed = 0
  22.   sprite(45).visible = 0
  23.   sprite(34).visible = 0
  24.   gGoatPos = 6
  25.   gOgrePos = 28
  26.   gCardsRemaining = 20
  27.   member("CardsRemaingText").text = string(gCardsRemaining)
  28.   gSingleCardSelected1 = 0
  29.   gSingleCardSelected2 = 0
  30.   gSingleCardSelected3 = 0
  31.   gSingleCardSelected4 = 0
  32.   gSingleCardSelected5 = 0
  33.   sprite(28).visible = 1
  34.   sprite(29).visible = 1
  35.   sprite(30).visible = 1
  36.   sprite(31).visible = 1
  37.   sprite(32).visible = 1
  38.   gCardsSelected = 0
  39.   gLooper = 0
  40.   gDistance = 0
  41.   gDeck = [0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  42.   gPlayerHand = [1, 2, 3, 4, 5]
  43.   gCompHand = [0, 2, 0, 4, 0]
  44.   gBridge = [9, 9, 9, 9, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9, 9, 9, 9, 9]
  45.   repeat with gShuffle = 1 to 20
  46.     gDeck[gShuffle] = random(6) - 1
  47.   end repeat
  48.   repeat with gShuffle = 1 to 5
  49.     gPlayerHand[gShuffle] = random(6) - 1
  50.   end repeat
  51.   repeat with gShuffle = 1 to 5
  52.     if gPlayerHand[gShuffle] = 0 then
  53.       sprite(9 + gShuffle).member = "card_0"
  54.       next repeat
  55.     end if
  56.     if gPlayerHand[gShuffle] = 1 then
  57.       sprite(9 + gShuffle).member = "card_1"
  58.       next repeat
  59.     end if
  60.     if gPlayerHand[gShuffle] = 2 then
  61.       sprite(9 + gShuffle).member = "card_2"
  62.       next repeat
  63.     end if
  64.     if gPlayerHand[gShuffle] = 3 then
  65.       sprite(9 + gShuffle).member = "card_3"
  66.       next repeat
  67.     end if
  68.     if gPlayerHand[gShuffle] = 4 then
  69.       sprite(9 + gShuffle).member = "card_4"
  70.       next repeat
  71.     end if
  72.     if gPlayerHand[gShuffle] = 5 then
  73.       sprite(9 + gShuffle).member = "card_5"
  74.     end if
  75.   end repeat
  76.   repeat with gShuffle = 1 to 5
  77.     gCompHand[gShuffle] = random(6) - 1
  78.   end repeat
  79.   repeat with gShuffle = 1 to 5
  80.     if gCompHand[gShuffle] = 0 then
  81.       sprite(15 + gShuffle).member = "card_0"
  82.       next repeat
  83.     end if
  84.     if gCompHand[gShuffle] = 1 then
  85.       sprite(15 + gShuffle).member = "card_1"
  86.       next repeat
  87.     end if
  88.     if gCompHand[gShuffle] = 2 then
  89.       sprite(15 + gShuffle).member = "card_2"
  90.       next repeat
  91.     end if
  92.     if gCompHand[gShuffle] = 3 then
  93.       sprite(15 + gShuffle).member = "card_3"
  94.       next repeat
  95.     end if
  96.     if gCompHand[gShuffle] = 4 then
  97.       sprite(15 + gShuffle).member = "card_4"
  98.       next repeat
  99.     end if
  100.     if gCompHand[gShuffle] = 5 then
  101.       sprite(15 + gShuffle).member = "card_5"
  102.     end if
  103.   end repeat
  104.   repeat with gPegY = 0 to 4
  105.     repeat with gPegX = 0 to 3
  106.       sprite(125 + gPegX + (gPegY * 4)).loc = point(447 + (18 * gPegX), 122 + (12 * gPegY))
  107.       sprite(125 + gPegX + (gPegY * 4)).visible = 1
  108.     end repeat
  109.   end repeat
  110. end
  111.  
  112. on EnemyAI
  113.   if gPaused = 0 then
  114.     AnyPossibleGoatMoves()
  115.     if (gGoatPos + 12) <= gOgrePos then
  116.       repeat with gCount = 1 to 5
  117.         if gCount = 1 then
  118.           gHighCard = gCompHand[gCount]
  119.           gEnemyCard = gCount
  120.         end if
  121.         if gCount >= 2 then
  122.           if gCompHand[gCount] > gHighCard then
  123.             gHighCard = gCompHand[gCount]
  124.             gEnemyCard = gCount
  125.           end if
  126.         end if
  127.       end repeat
  128.       gCardsUsed = gCardsUsed + 1
  129.       if gEnemyCard = 1 then
  130.         gCompHand[1] = gDeck[gCardsUsed]
  131.         sprite(28).visible = 0
  132.       else
  133.         if gEnemyCard = 2 then
  134.           gCompHand[2] = gDeck[gCardsUsed]
  135.           sprite(29).visible = 0
  136.         else
  137.           if gEnemyCard = 3 then
  138.             gCompHand[3] = gDeck[gCardsUsed]
  139.             sprite(30).visible = 0
  140.           else
  141.             if gEnemyCard = 4 then
  142.               gCompHand[4] = gDeck[gCardsUsed]
  143.               sprite(31).visible = 0
  144.             else
  145.               if gEnemyCard = 5 then
  146.                 gCompHand[5] = gDeck[gCardsUsed]
  147.                 sprite(32).visible = 0
  148.               end if
  149.             end if
  150.           end if
  151.         end if
  152.       end if
  153.       gEnemyDistance = gHighCard
  154.       EnemyAdvance()
  155.       sprite(124 + gCardsUsed).visible = 0
  156.     else
  157.       if (gGoatPos + 5) < gOgrePos then
  158.         gEnemyCard = random(5)
  159.         gHighCard = gCompHand[gEnemyCard]
  160.         gCardsUsed = gCardsUsed + 1
  161.         if gEnemyCard = 1 then
  162.           gCompHand[1] = gDeck[gCardsUsed]
  163.           sprite(28).visible = 0
  164.         else
  165.           if gEnemyCard = 2 then
  166.             gCompHand[2] = gDeck[gCardsUsed]
  167.             sprite(29).visible = 0
  168.           else
  169.             if gEnemyCard = 3 then
  170.               gCompHand[3] = gDeck[gCardsUsed]
  171.               sprite(30).visible = 0
  172.             else
  173.               if gEnemyCard = 4 then
  174.                 gCompHand[4] = gDeck[gCardsUsed]
  175.                 sprite(31).visible = 0
  176.               else
  177.                 if gEnemyCard = 5 then
  178.                   gCompHand[5] = gDeck[gCardsUsed]
  179.                   sprite(32).visible = 0
  180.                 end if
  181.               end if
  182.             end if
  183.           end if
  184.         end if
  185.         gEnemyDistance = gHighCard
  186.         EnemyAdvance()
  187.         sprite(124 + gCardsUsed).visible = 0
  188.       else
  189.         repeat with gCount = 1 to 5
  190.           gAttack = 0
  191.           if (gOgrePos - gGoatPos) = gCompHand[gCount] then
  192.             gEnemyDistance = gCompHand[gCount]
  193.             gAttack = 1
  194.             EnemyAttack()
  195.             exit repeat
  196.           end if
  197.         end repeat
  198.         if gAttack = 0 then
  199.           EnemyRetreat()
  200.           sprite(124 + gCardsUsed).visible = 0
  201.         end if
  202.       end if
  203.     end if
  204.   end if
  205. end
  206.  
  207. on EnemyAdvance
  208.   if gPaused = 0 then
  209.     gBridge[gOgrePos] = 0
  210.     gLooper = 0
  211.     repeat while gLooper < gEnemyDistance
  212.       puppetSound(1, "WormWalk1c")
  213.       sprite(40).member = "badguy_standing2"
  214.       sprite(40).locH = sprite(40).locH - 12
  215.       sprite(40).locV = sprite(40).locV - 4
  216.       repeat with gCount = 72 to 92
  217.         sprite(gCount).locH = sprite(gCount).locH - 12
  218.         sprite(gCount).locV = sprite(gCount).locV - 4
  219.       end repeat
  220.       startTimer()
  221.       repeat while the timer < 8
  222.         updateStage()
  223.       end repeat
  224.       updateStage()
  225.       puppetSound(2, "WormWalk2c")
  226.       sprite(40).member = "badguy_standing1"
  227.       sprite(40).locH = sprite(40).locH - 12
  228.       sprite(40).locV = sprite(40).locV - 4
  229.       repeat with gCount = 72 to 92
  230.         sprite(gCount).locH = sprite(gCount).locH - 12
  231.         sprite(gCount).locV = sprite(gCount).locV - 4
  232.       end repeat
  233.       startTimer()
  234.       repeat while the timer < 8
  235.         updateStage()
  236.       end repeat
  237.       updateStage()
  238.       gOgrePos = gOgrePos - 1
  239.       gLooper = gLooper + 1
  240.     end repeat
  241.     startTimer()
  242.     repeat while the timer < (20 - (gEnemyDistance * 4))
  243.       updateStage()
  244.     end repeat
  245.     gBridge[gOgrePos] = 2
  246.     gEnemyDistance = 0
  247.     gCardsSelected = 0
  248.     gLooper = 0
  249.     if gEnemyCard = 1 then
  250.       sprite(16).member = "card_" & gDeck[gCardsUsed]
  251.     else
  252.       if gEnemyCard = 2 then
  253.         sprite(17).member = "card_" & gDeck[gCardsUsed]
  254.       else
  255.         if gEnemyCard = 3 then
  256.           sprite(18).member = "card_" & gDeck[gCardsUsed]
  257.         else
  258.           if gEnemyCard = 4 then
  259.             sprite(19).member = "card_" & gDeck[gCardsUsed]
  260.           else
  261.             if gEnemyCard = 5 then
  262.               sprite(20).member = "card_" & gDeck[gCardsUsed]
  263.             end if
  264.           end if
  265.         end if
  266.       end if
  267.     end if
  268.     updateStage()
  269.     startTimer()
  270.     repeat while the timer < 8
  271.       updateStage()
  272.     end repeat
  273.     sprite(28).visible = 1
  274.     sprite(29).visible = 1
  275.     sprite(30).visible = 1
  276.     sprite(31).visible = 1
  277.     sprite(32).visible = 1
  278.     gCardsRemaining = gCardsRemaining - 1
  279.     member("CardsRemaingText").text = string(gCardsRemaining)
  280.     sprite(45).visible = 1
  281.     sprite(45).member = "card_" & gDeck[gCardsUsed + 1]
  282.   end if
  283. end
  284.  
  285. on EnemyRetreat
  286.   if gPaused = 0 then
  287.     repeat with gCount = 1 to 5
  288.       gEnemyCard = random(5)
  289.       if gBridge[gOgrePos - gCompHand[gEnemyCard]] = 0 then
  290.         exit repeat
  291.       end if
  292.     end repeat
  293.     if gBridge[gOgrePos - gCompHand[gEnemyCard]] <> 0 then
  294.       repeat with gCount = 1 to 5
  295.         gEnemyCard = random(5)
  296.         if gBridge[gOgrePos + gCompHand[gEnemyCard]] = 0 then
  297.           exit repeat
  298.         end if
  299.       end repeat
  300.       if gBridge[gOgrePos + gCompHand[gEnemyCard]] = 0 then
  301.         put "force forward"
  302.         gHighCard = gCompHand[gEnemyCard]
  303.         gCardsUsed = gCardsUsed + 1
  304.         if gEnemyCard = 1 then
  305.           gCompHand[1] = gDeck[gCardsUsed]
  306.           sprite(28).visible = 0
  307.         else
  308.           if gEnemyCard = 2 then
  309.             gCompHand[2] = gDeck[gCardsUsed]
  310.             sprite(29).visible = 0
  311.           else
  312.             if gEnemyCard = 3 then
  313.               gCompHand[3] = gDeck[gCardsUsed]
  314.               sprite(30).visible = 0
  315.             else
  316.               if gEnemyCard = 4 then
  317.                 gCompHand[4] = gDeck[gCardsUsed]
  318.                 sprite(31).visible = 0
  319.               else
  320.                 if gEnemyCard = 5 then
  321.                   gCompHand[5] = gDeck[gCardsUsed]
  322.                   sprite(32).visible = 0
  323.                 end if
  324.               end if
  325.             end if
  326.           end if
  327.         end if
  328.         gEnemyDistance = gHighCard
  329.         EnemyAdvance()
  330.       else
  331.         put "force Goat Win"
  332.       end if
  333.     end if
  334.     if gBridge[gOgrePos - gCompHand[gEnemyCard]] = 0 then
  335.       gHighCard = gCompHand[gEnemyCard]
  336.       gCardsUsed = gCardsUsed + 1
  337.       if gEnemyCard = 1 then
  338.         gCompHand[1] = gDeck[gCardsUsed]
  339.         sprite(28).visible = 0
  340.       else
  341.         if gEnemyCard = 2 then
  342.           gCompHand[2] = gDeck[gCardsUsed]
  343.           sprite(29).visible = 0
  344.         else
  345.           if gEnemyCard = 3 then
  346.             gCompHand[3] = gDeck[gCardsUsed]
  347.             sprite(30).visible = 0
  348.           else
  349.             if gEnemyCard = 4 then
  350.               gCompHand[4] = gDeck[gCardsUsed]
  351.               sprite(31).visible = 0
  352.             else
  353.               if gEnemyCard = 5 then
  354.                 gCompHand[5] = gDeck[gCardsUsed]
  355.                 sprite(32).visible = 0
  356.               end if
  357.             end if
  358.           end if
  359.         end if
  360.       end if
  361.       gEnemyDistance = gHighCard
  362.     end if
  363.     gLooper = 0
  364.     gBridge[gOgrePos] = 0
  365.     if (gOgrePos + gEnemyDistance) > 28 then
  366.       put "can't go back"
  367.       sprite(120).member = "nomoves_troll"
  368.       sprite(120).visible = 1
  369.       puppetSound(3, "sheepbaa")
  370.       gPaused = 1
  371.       gWait4Rest = 1
  372.       gGoatScore = gGoatScore + 10
  373.       member("GoatScoreText").text = string(gGoatScore)
  374.       exit
  375.     end if
  376.     repeat while gLooper < gEnemyDistance
  377.       puppetSound(1, "WormWalk1c")
  378.       sprite(40).member = "badguy_standing2"
  379.       sprite(40).locH = sprite(40).locH + 12
  380.       sprite(40).locV = sprite(40).locV + 4
  381.       repeat with gCount = 72 to 92
  382.         sprite(gCount).locH = sprite(gCount).locH + 12
  383.         sprite(gCount).locV = sprite(gCount).locV + 4
  384.       end repeat
  385.       startTimer()
  386.       repeat while the timer < 8
  387.         updateStage()
  388.       end repeat
  389.       updateStage()
  390.       puppetSound(2, "WormWalk2c")
  391.       sprite(40).member = "badguy_standing1"
  392.       sprite(40).locH = sprite(40).locH + 12
  393.       sprite(40).locV = sprite(40).locV + 4
  394.       repeat with gCount = 72 to 92
  395.         sprite(gCount).locH = sprite(gCount).locH + 12
  396.         sprite(gCount).locV = sprite(gCount).locV + 4
  397.       end repeat
  398.       startTimer()
  399.       repeat while the timer < 8
  400.         updateStage()
  401.       end repeat
  402.       gOgrePos = gOgrePos + 1
  403.       gLooper = gLooper + 1
  404.     end repeat
  405.     startTimer()
  406.     repeat while the timer < (20 - (gEnemyDistance * 4))
  407.       updateStage()
  408.     end repeat
  409.     gBridge[gOgrePos] = 2
  410.     gEnemyDistance = 0
  411.     gCardsSelected = 0
  412.     gLooper = 0
  413.     if gEnemyCard = 1 then
  414.       sprite(16).member = "card_" & gDeck[gCardsUsed]
  415.     else
  416.       if gEnemyCard = 2 then
  417.         sprite(17).member = "card_" & gDeck[gCardsUsed]
  418.       else
  419.         if gEnemyCard = 3 then
  420.           sprite(18).member = "card_" & gDeck[gCardsUsed]
  421.         else
  422.           if gEnemyCard = 4 then
  423.             sprite(19).member = "card_" & gDeck[gCardsUsed]
  424.           else
  425.             if gEnemyCard = 5 then
  426.               sprite(20).member = "card_" & gDeck[gCardsUsed]
  427.             end if
  428.           end if
  429.         end if
  430.       end if
  431.     end if
  432.     updateStage()
  433.     startTimer()
  434.     repeat while the timer < 8
  435.       updateStage()
  436.     end repeat
  437.     sprite(28).visible = 1
  438.     sprite(29).visible = 1
  439.     sprite(30).visible = 1
  440.     sprite(31).visible = 1
  441.     sprite(32).visible = 1
  442.     gCardsRemaining = gCardsRemaining - 1
  443.     member("CardsRemaingText").text = string(gCardsRemaining)
  444.     sprite(45).visible = 1
  445.     sprite(45).member = "card_" & gDeck[gCardsUsed + 1]
  446.   end if
  447. end
  448.  
  449. on EnemyAttack
  450.   if gPaused = 0 then
  451.     gBridge[gOgrePos] = 0
  452.     gLooper = 0
  453.     repeat while gLooper < gEnemyDistance
  454.       puppetSound(1, "WormWalk1c")
  455.       sprite(40).member = "badguy_standing2"
  456.       sprite(40).locH = sprite(40).locH - 12
  457.       sprite(40).locV = sprite(40).locV - 4
  458.       repeat with gCount = 72 to 92
  459.         sprite(gCount).locH = sprite(gCount).locH - 12
  460.         sprite(gCount).locV = sprite(gCount).locV - 4
  461.       end repeat
  462.       startTimer()
  463.       repeat while the timer < 3
  464.         updateStage()
  465.       end repeat
  466.       puppetSound(2, "WormWalk2c")
  467.       sprite(40).member = "badguy_standing1"
  468.       sprite(40).locH = sprite(40).locH - 12
  469.       sprite(40).locV = sprite(40).locV - 4
  470.       repeat with gCount = 72 to 92
  471.         sprite(gCount).locH = sprite(gCount).locH - 12
  472.         sprite(gCount).locV = sprite(gCount).locV - 4
  473.       end repeat
  474.       startTimer()
  475.       repeat while the timer < 3
  476.         updateStage()
  477.       end repeat
  478.       gOgrePos = gOgrePos - 1
  479.       gLooper = gLooper + 1
  480.     end repeat
  481.     startTimer()
  482.     repeat while the timer < (20 - (gEnemyDistance * 4))
  483.       updateStage()
  484.     end repeat
  485.     MultipleOgre()
  486.     repeat with gCount = 1 to 5
  487.       if gEnemyDistance = gPlayerHand[gCount] then
  488.         gBlockCount = gBlockCount + 1
  489.       end if
  490.     end repeat
  491.     if gBlockCount >= gMultiple then
  492.       sprite(98).locV = sprite(40).locV
  493.       sprite(98).locH = sprite(40).locH
  494.       sprite(98).visible = 1
  495.       if gGoatPos >= 6 then
  496.         gOgreScore = gOgreScore - 10
  497.       end if
  498.       gLooper = 0
  499.       repeat while gLooper < gEnemyDistance
  500.         puppetSound(1, "WormWalk1c")
  501.         sprite(40).member = "badguy_standing2"
  502.         sprite(40).locH = sprite(40).locH + 12
  503.         sprite(40).locV = sprite(40).locV + 4
  504.         repeat with gCount = 72 to 92
  505.           sprite(gCount).locH = sprite(gCount).locH + 12
  506.           sprite(gCount).locV = sprite(gCount).locV + 4
  507.         end repeat
  508.         startTimer()
  509.         repeat while the timer < 3
  510.           updateStage()
  511.         end repeat
  512.         puppetSound(2, "WormWalk2c")
  513.         sprite(40).member = "badguy_standing1"
  514.         sprite(40).locH = sprite(40).locH + 12
  515.         sprite(40).locV = sprite(40).locV + 4
  516.         repeat with gCount = 72 to 92
  517.           sprite(gCount).locH = sprite(gCount).locH + 12
  518.           sprite(gCount).locV = sprite(gCount).locV + 4
  519.         end repeat
  520.         startTimer()
  521.         repeat while the timer < 3
  522.           updateStage()
  523.         end repeat
  524.         gOgrePos = gOgrePos + 1
  525.         gLooper = gLooper + 1
  526.       end repeat
  527.       sprite(98).visible = 0
  528.       startTimer()
  529.       repeat while the timer < 5
  530.         updateStage()
  531.       end repeat
  532.       if gGoatPos >= 6 then
  533.         repeat with gCount = 1 to 5
  534.           if gEnemyDistance = gPlayerHand[gCount] then
  535.             if (gGoatPos - gGoatFlyDistance) < 6 then
  536.               exit repeat
  537.             end if
  538.             if gCount = 1 then
  539.               gPlayerHand[1] = gDeck[gCardsUsed]
  540.               sprite(10).member = "card_" & gDeck[gCardsUsed]
  541.             else
  542.               if gCount = 2 then
  543.                 gPlayerHand[2] = gDeck[gCardsUsed]
  544.                 sprite(11).member = "card_" & gDeck[gCardsUsed]
  545.               else
  546.                 if gCount = 3 then
  547.                   gPlayerHand[3] = gDeck[gCardsUsed]
  548.                   sprite(12).member = "card_" & gDeck[gCardsUsed]
  549.                 else
  550.                   if gCount = 4 then
  551.                     gPlayerHand[4] = gDeck[gCardsUsed]
  552.                     sprite(13).member = "card_" & gDeck[gCardsUsed]
  553.                   else
  554.                     if gCount = 5 then
  555.                       gPlayerHand[5] = gDeck[gCardsUsed]
  556.                       sprite(14).member = "card_" & gDeck[gCardsUsed]
  557.                     end if
  558.                   end if
  559.                 end if
  560.               end if
  561.             end if
  562.             gCardsUsed = gCardsUsed + 1
  563.             sprite(124 + gCardsUsed).visible = 0
  564.             gCardsRemaining = gCardsRemaining - 1
  565.             member("CardsRemaingText").text = string(gCardsRemaining)
  566.             gMultiple = gMultiple - 1
  567.             if gMultiple <= 0 then
  568.               exit repeat
  569.             end if
  570.           end if
  571.         end repeat
  572.       end if
  573.     else
  574.       sprite(100).locV = sprite(40).locV
  575.       sprite(100).locH = sprite(40).locH
  576.       sprite(100).visible = 1
  577.       GoatFlyBack()
  578.     end if
  579.     startTimer()
  580.     repeat while the timer < 5
  581.       updateStage()
  582.     end repeat
  583.     if gGoatPos >= 6 then
  584.       repeat with gCount = 1 to 5
  585.         if gEnemyDistance = gCompHand[gCount] then
  586.           if (gGoatPos - gGoatFlyDistance) < 6 then
  587.             exit repeat
  588.           end if
  589.           if gCount = 1 then
  590.             gCompHand[1] = gDeck[gCardsUsed]
  591.             sprite(16).member = "card_" & gDeck[gCardsUsed]
  592.           else
  593.             if gCount = 2 then
  594.               gCompHand[2] = gDeck[gCardsUsed]
  595.               sprite(17).member = "card_" & gDeck[gCardsUsed]
  596.             else
  597.               if gCount = 3 then
  598.                 gCompHand[3] = gDeck[gCardsUsed]
  599.                 sprite(18).member = "card_" & gDeck[gCardsUsed]
  600.               else
  601.                 if gCount = 4 then
  602.                   gCompHand[4] = gDeck[gCardsUsed]
  603.                   sprite(19).member = "card_" & gDeck[gCardsUsed]
  604.                 else
  605.                   if gCount = 5 then
  606.                     gCompHand[5] = gDeck[gCardsUsed]
  607.                     sprite(20).member = "card_" & gDeck[gCardsUsed]
  608.                   end if
  609.                 end if
  610.               end if
  611.             end if
  612.           end if
  613.           gCardsUsed = gCardsUsed + 1
  614.           sprite(124 + gCardsUsed).visible = 0
  615.           gCardsRemaining = gCardsRemaining - 1
  616.           member("CardsRemaingText").text = string(gCardsRemaining)
  617.         end if
  618.       end repeat
  619.     end if
  620.     gBlockCount = 0
  621.     gBridge[gOgrePos] = 2
  622.     gEnemyDistance = 0
  623.     gCardsSelected = 0
  624.     gLooper = 0
  625.     sprite(28).visible = 1
  626.     sprite(29).visible = 1
  627.     sprite(30).visible = 1
  628.     sprite(31).visible = 1
  629.     sprite(32).visible = 1
  630.     gOgreScore = gOgreScore + 10
  631.     member("OgreScoreText").text = string(gOgreScore)
  632.     if gGoatPos < 6 then
  633.       gOgreScore = gOgreScore + 10
  634.       member("OgreScoreText").text = string(gOgreScore)
  635.       sprite(120).member = "fallengoat"
  636.       sprite(120).visible = 1
  637.       puppetSound(3, "sheepbaa")
  638.       gPaused = 1
  639.       gWait4Rest = 1
  640.     end if
  641.     if gOgreScore >= 100 then
  642.       gPaused = 1
  643.       puppetSound(5, "lose10")
  644.       go(22)
  645.     end if
  646.     scoreTally()
  647.     sprite(45).visible = 1
  648.     sprite(45).member = "card_" & gDeck[gCardsUsed + 1]
  649.   end if
  650. end
  651.  
  652. on GoatFlyBack
  653.   puppetSound(4, "sheep")
  654.   gGoatFlyDistance = 6 + (gEnemyDistance * gMultiple / 2)
  655.   gBridge[gGoatPos] = 0
  656.   sprite(35).member = "goathit"
  657.   gLooper = 0
  658.   repeat while gLooper < gGoatFlyDistance
  659.     sprite(35).locH = sprite(35).locH - 12
  660.     sprite(35).locV = sprite(35).locV - 4
  661.     repeat with pCount = 50 to 70
  662.       sprite(pCount).locH = sprite(pCount).locH - 12
  663.       sprite(pCount).locV = sprite(pCount).locV - 4
  664.     end repeat
  665.     startTimer()
  666.     repeat while the timer < 3
  667.       updateStage()
  668.     end repeat
  669.     updateStage()
  670.     sprite(35).locH = sprite(35).locH - 12
  671.     sprite(35).locV = sprite(35).locV - 4
  672.     repeat with pCount = 50 to 70
  673.       sprite(pCount).locH = sprite(pCount).locH - 12
  674.       sprite(pCount).locV = sprite(pCount).locV - 4
  675.     end repeat
  676.     startTimer()
  677.     repeat while the timer < 3
  678.       updateStage()
  679.     end repeat
  680.     updateStage()
  681.     gGoatPos = gGoatPos - 1
  682.     gLooper = gLooper + 1
  683.   end repeat
  684.   if gGoatPos < 3 then
  685.     gGoatPos = 3
  686.   end if
  687.   gMultiple = 0
  688.   gBridge[gGoatPos] = 1
  689.   sprite(35).member = "goaty2"
  690.   sprite(100).visible = 0
  691.   startTimer()
  692.   repeat while the timer < 5
  693.     updateStage()
  694.   end repeat
  695.   sprite(28).visible = 1
  696.   sprite(29).visible = 1
  697.   sprite(30).visible = 1
  698.   sprite(31).visible = 1
  699.   sprite(32).visible = 1
  700.   if gGoatPos < 6 then
  701.     if sprite(208).visible = 1 then
  702.       sprite(208).visible = 0
  703.     else
  704.       if sprite(207).visible = 1 then
  705.         sprite(207).visible = 0
  706.       else
  707.         if sprite(206).visible = 1 then
  708.           sprite(206).visible = 0
  709.         else
  710.           gPaused = 1
  711.           puppetSound(5, "lose10")
  712.           go(22)
  713.         end if
  714.       end if
  715.     end if
  716.     sprite(120).member = "fallengoat"
  717.     sprite(120).visible = 1
  718.     puppetSound(3, "sheepbaa")
  719.     gPaused = 1
  720.     gWait4Rest = 1
  721.   end if
  722.   if gOgreScore >= 100 then
  723.     sprite(206).visible = 0
  724.     sprite(207).visible = 0
  725.     sprite(208).visible = 0
  726.     gPaused = 1
  727.     puppetSound(5, "lose10")
  728.     go(22)
  729.   end if
  730. end
  731.  
  732. on MultipleOgre
  733.   repeat with gCount = 1 to 5
  734.     if gEnemyDistance = gCompHand[gCount] then
  735.       gMultiple = gMultiple + 1
  736.       sprite(27 + gCount).visible = 0
  737.     end if
  738.   end repeat
  739. end
  740.  
  741. on resetGame
  742.   sprite(35).loc = point(27, 111)
  743.   sprite(40).loc = point(549, 297)
  744.   sprite(50).loc = point(-148, 138)
  745.   sprite(52).loc = point(-148 + (1 * 24), 138 + (1 * 8))
  746.   sprite(54).loc = point(-148 + (2 * 24), 138 + (2 * 8))
  747.   sprite(56).loc = point(-148 + (3 * 24), 138 + (3 * 8))
  748.   sprite(58).loc = point(-148 + (4 * 24), 138 + (4 * 8))
  749.   sprite(60).loc = point(-28, 178)
  750.   sprite(61).loc = point(-28 + (1 * 24), 178 + (1 * 8))
  751.   sprite(63).loc = point(-28 + (2 * 24), 178 + (2 * 8))
  752.   sprite(65).loc = point(-28 + (3 * 24), 178 + (3 * 8))
  753.   sprite(67).loc = point(-28 + (4 * 24), 178 + (4 * 8))
  754.   sprite(69).loc = point(-28 + (5 * 24), 178 + (5 * 8))
  755.   sprite(51).loc = point(-158, 131)
  756.   sprite(53).loc = point(-158 + (1 * 24), 131 + (1 * 8))
  757.   sprite(55).loc = point(-158 + (2 * 24), 131 + (2 * 8))
  758.   sprite(57).loc = point(-158 + (3 * 24), 131 + (3 * 8))
  759.   sprite(59).loc = point(-158 + (4 * 24), 131 + (4 * 8))
  760.   sprite(62).loc = point(-158 + (6 * 24), 131 + (6 * 8))
  761.   sprite(64).loc = point(-158 + (7 * 24), 131 + (7 * 8))
  762.   sprite(66).loc = point(-158 + (8 * 24), 131 + (8 * 8))
  763.   sprite(68).loc = point(-158 + (9 * 24), 131 + (9 * 8))
  764.   sprite(70).loc = point(-158 + (10 * 24), 131 + (10 * 8))
  765.   sprite(72).loc = point(380, 329)
  766.   sprite(74).loc = point(380 + (1 * 24), 329 + (1 * 8))
  767.   sprite(76).loc = point(380 + (2 * 24), 329 + (2 * 8))
  768.   sprite(78).loc = point(380 + (3 * 24), 329 + (3 * 8))
  769.   sprite(80).loc = point(380 + (4 * 24), 329 + (4 * 8))
  770.   sprite(82).loc = point(500, 369)
  771.   sprite(83).loc = point(500 + (1 * 24), 369 + (1 * 8))
  772.   sprite(85).loc = point(500 + (2 * 24), 369 + (2 * 8))
  773.   sprite(87).loc = point(500 + (3 * 24), 369 + (3 * 8))
  774.   sprite(89).loc = point(500 + (4 * 24), 369 + (4 * 8))
  775.   sprite(91).loc = point(500 + (5 * 24), 369 + (5 * 8))
  776.   sprite(73).loc = point(372, 322)
  777.   sprite(75).loc = point(371 + (1 * 24), 322 + (1 * 8))
  778.   sprite(77).loc = point(371 + (2 * 24), 322 + (2 * 8))
  779.   sprite(79).loc = point(371 + (3 * 24), 322 + (3 * 8))
  780.   sprite(81).loc = point(371 + (4 * 24), 322 + (4 * 8))
  781.   sprite(84).loc = point(372 + (6 * 24), 322 + (6 * 8))
  782.   sprite(86).loc = point(372 + (7 * 24), 322 + (7 * 8))
  783.   sprite(88).loc = point(372 + (8 * 24), 322 + (8 * 8))
  784.   sprite(90).loc = point(372 + (9 * 24), 322 + (9 * 8))
  785.   sprite(92).loc = point(372 + (10 * 24), 322 + (10 * 8))
  786.   gMultiple = 0
  787.   sprite(98).visible = 0
  788.   sprite(100).visible = 0
  789.   gAttack = 1
  790.   gPaused = 0
  791.   sprite(120).visible = 0
  792.   gCardsUsed = 0
  793.   sprite(45).visible = 0
  794.   sprite(34).visible = 0
  795.   gGoatPos = 6
  796.   gOgrePos = 28
  797.   gCardsRemaining = 20
  798.   member("CardsRemaingText").text = string(gCardsRemaining)
  799.   gSingleCardSelected1 = 0
  800.   gSingleCardSelected2 = 0
  801.   gSingleCardSelected3 = 0
  802.   gSingleCardSelected4 = 0
  803.   gSingleCardSelected5 = 0
  804.   sprite(28).visible = 1
  805.   sprite(29).visible = 1
  806.   sprite(30).visible = 1
  807.   sprite(31).visible = 1
  808.   sprite(32).visible = 1
  809.   gCardsSelected = 0
  810.   gLooper = 0
  811.   gDistance = 0
  812.   gDeck = [0, 1, 2, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  813.   gPlayerHand = [1, 2, 3, 4, 5]
  814.   gCompHand = [0, 2, 0, 4, 0]
  815.   gBridge = [9, 9, 9, 9, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9, 9, 9, 9, 9]
  816.   repeat with gShuffle = 1 to 20
  817.     gDeck[gShuffle] = random(6) - 1
  818.   end repeat
  819.   repeat with gShuffle = 1 to 5
  820.     gPlayerHand[gShuffle] = random(6) - 1
  821.   end repeat
  822.   repeat with gShuffle = 1 to 5
  823.     if gPlayerHand[gShuffle] = 0 then
  824.       sprite(9 + gShuffle).member = "card_0"
  825.       next repeat
  826.     end if
  827.     if gPlayerHand[gShuffle] = 1 then
  828.       sprite(9 + gShuffle).member = "card_1"
  829.       next repeat
  830.     end if
  831.     if gPlayerHand[gShuffle] = 2 then
  832.       sprite(9 + gShuffle).member = "card_2"
  833.       next repeat
  834.     end if
  835.     if gPlayerHand[gShuffle] = 3 then
  836.       sprite(9 + gShuffle).member = "card_3"
  837.       next repeat
  838.     end if
  839.     if gPlayerHand[gShuffle] = 4 then
  840.       sprite(9 + gShuffle).member = "card_4"
  841.       next repeat
  842.     end if
  843.     if gPlayerHand[gShuffle] = 5 then
  844.       sprite(9 + gShuffle).member = "card_5"
  845.     end if
  846.   end repeat
  847.   repeat with gShuffle = 1 to 5
  848.     gCompHand[gShuffle] = random(6) - 1
  849.   end repeat
  850.   repeat with gShuffle = 1 to 5
  851.     if gCompHand[gShuffle] = 0 then
  852.       sprite(15 + gShuffle).member = "card_0"
  853.       next repeat
  854.     end if
  855.     if gCompHand[gShuffle] = 1 then
  856.       sprite(15 + gShuffle).member = "card_1"
  857.       next repeat
  858.     end if
  859.     if gCompHand[gShuffle] = 2 then
  860.       sprite(15 + gShuffle).member = "card_2"
  861.       next repeat
  862.     end if
  863.     if gCompHand[gShuffle] = 3 then
  864.       sprite(15 + gShuffle).member = "card_3"
  865.       next repeat
  866.     end if
  867.     if gCompHand[gShuffle] = 4 then
  868.       sprite(15 + gShuffle).member = "card_4"
  869.       next repeat
  870.     end if
  871.     if gCompHand[gShuffle] = 5 then
  872.       sprite(15 + gShuffle).member = "card_5"
  873.     end if
  874.   end repeat
  875.   repeat with gPegY = 0 to 4
  876.     repeat with gPegX = 0 to 3
  877.       sprite(125 + gPegX + (gPegY * 4)).loc = point(447 + (18 * gPegX), 122 + (12 * gPegY))
  878.       sprite(125 + gPegX + (gPegY * 4)).visible = 1
  879.     end repeat
  880.   end repeat
  881.   gCardsUsed = 0
  882.   go(1)
  883. end
  884.  
  885. on scoreTally
  886.   if (gGoatPos >= 6) and (gOgrePos <= 28) then
  887.     if (gCardsUsed >= 21) or (gCardsRemaining <= 0) then
  888.       if (gGoatPos - 6) >= (28 - gOgrePos) then
  889.         sprite(120).member = "sign_noCardsGoatWin"
  890.         sprite(120).visible = 1
  891.         puppetSound(3, "sheepbaa")
  892.         gPaused = 1
  893.         gGoatScore = gGoatScore + 10
  894.         member("GoatScoreText").text = string(gGoatScore)
  895.         gWait4Rest = 1
  896.       else
  897.         gOgreScore = gOgreScore + 10
  898.         member("OgreScoreText").text = string(gOgreScore)
  899.         sprite(120).member = "sign_noCardsOgreWin"
  900.         sprite(120).visible = 1
  901.         puppetSound(3, "sheepbaa")
  902.         gPaused = 1
  903.         if sprite(208).visible = 1 then
  904.           sprite(208).visible = 0
  905.         else
  906.           if sprite(207).visible = 1 then
  907.             sprite(207).visible = 0
  908.           else
  909.             if sprite(206).visible = 1 then
  910.               sprite(206).visible = 0
  911.             else
  912.               gPaused = 1
  913.               puppetSound(5, "lose10")
  914.               go(22)
  915.             end if
  916.           end if
  917.         end if
  918.         gWait4Rest = 1
  919.       end if
  920.     end if
  921.     if gGoatScore >= 100 then
  922.       gPaused = 1
  923.       puppetSound(5, "win10")
  924.       go(12)
  925.     else
  926.       if gOgreScore >= 100 then
  927.         puppetSound(5, "lose10")
  928.         gPaused = 1
  929.         go(22)
  930.       end if
  931.     end if
  932.   end if
  933. end
  934.  
  935. on AnyPossibleGoatMoves
  936.   repeat with gTemp = 0 to 5
  937.     if gPlayerHand[1] = gTemp then
  938.       if (gGoatPos + gTemp) < gOgrePos then
  939.         exit
  940.       end if
  941.       if (gGoatPos - gTemp) >= 6 then
  942.         exit
  943.       end if
  944.       if (gGoatPos + gTemp) = gOgrePos then
  945.         exit
  946.       end if
  947.       next repeat
  948.     end if
  949.     if gPlayerHand[2] = gTemp then
  950.       if (gGoatPos + gTemp) < gOgrePos then
  951.         exit
  952.       end if
  953.       if (gGoatPos - gTemp) >= 6 then
  954.         exit
  955.       end if
  956.       if (gGoatPos + gTemp) = gOgrePos then
  957.         exit
  958.       end if
  959.       next repeat
  960.     end if
  961.     if gPlayerHand[3] = gTemp then
  962.       if (gGoatPos + gTemp) < gOgrePos then
  963.         exit
  964.       end if
  965.       if (gGoatPos - gTemp) >= 6 then
  966.         exit
  967.       end if
  968.       if (gGoatPos + gTemp) = gOgrePos then
  969.         exit
  970.       end if
  971.       next repeat
  972.     end if
  973.     if gPlayerHand[4] = gTemp then
  974.       if (gGoatPos + gTemp) < gOgrePos then
  975.         exit
  976.       end if
  977.       if (gGoatPos - gTemp) >= 6 then
  978.         exit
  979.       end if
  980.       if (gGoatPos + gTemp) = gOgrePos then
  981.         exit
  982.       end if
  983.       next repeat
  984.     end if
  985.     if gPlayerHand[5] = gTemp then
  986.       if (gGoatPos + gTemp) < gOgrePos then
  987.         exit
  988.       end if
  989.       if (gGoatPos - gTemp) >= 6 then
  990.         exit
  991.       end if
  992.       if (gGoatPos + gTemp) = gOgrePos then
  993.         exit
  994.       end if
  995.     end if
  996.   end repeat
  997.   sprite(120).member = "nomoves"
  998.   sprite(120).visible = 1
  999.   puppetSound(3, "sheepbaa")
  1000.   gPaused = 1
  1001.   gWait4Rest = 1
  1002.   gGoatScore = gGoatScore + 10
  1003.   member("GoatScoreText").text = string(gGoatScore)
  1004.   if sprite(208).visible = 1 then
  1005.     sprite(208).visible = 0
  1006.   else
  1007.     if sprite(207).visible = 1 then
  1008.       sprite(207).visible = 0
  1009.     else
  1010.       if sprite(206).visible = 1 then
  1011.         sprite(206).visible = 0
  1012.       else
  1013.         gPaused = 1
  1014.         puppetSound(5, "lose10")
  1015.         go(22)
  1016.       end if
  1017.     end if
  1018.   end if
  1019. end
  1020.