home *** CD-ROM | disk | FTP | other *** search
/ 100 Plus Great Games 2 / 100PLUSV2.BIN / games / Duchess.dxr / Internal_8.ls < prev    next >
Encoding:
Text File  |  2002-01-25  |  7.9 KB  |  252 lines

  1. global points, pootimer, win, tableau, crappo, stock, redeals, basecard, reserve
  2.  
  3. on checkwin arg
  4.   if points = 520 then
  5.     win = "yes"
  6.     pootimer = timeout("poo").new(150, #gotoit)
  7.   else
  8.     if (stock.cards.count = 0) and (redeals = 1) then
  9.       if not voidp(basecard) then
  10.         checklose()
  11.       end if
  12.     end if
  13.   end if
  14. end
  15.  
  16. on checklose
  17.   repeat with shit = 12 to 12
  18.     if sprite(shit).member.name = "empty" then
  19.       next repeat
  20.     end if
  21.     repeat with cakes = 17 to 20
  22.       if sprite(cakes).member.name = "empty" then
  23.         if getValue(sprite(shit).member.name) = getOff(string(basecard)) then
  24.           abort()
  25.         end if
  26.         next repeat
  27.       end if
  28.       if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) + 1)) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
  29.         abort()
  30.         next repeat
  31.       end if
  32.       if (getValue(sprite(shit).member.name) = 1) and (getValue(sprite(cakes).member.name) = 13) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
  33.         abort()
  34.       end if
  35.     end repeat
  36.     repeat with raped = 1 to tableau.count
  37.       if tableau[raped].getcardcount() = 0 then
  38.         if (reserve[1].getcardcount() = 0) and (reserve[2].getcardcount() = 0) and (reserve[3].getcardcount() = 0) and (reserve[4].getcardcount() = 0) then
  39.           abort()
  40.         end if
  41.         next repeat
  42.       end if
  43.       cakes = tableau[raped].getlastcard().spnum
  44.       if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) - 1)) and (getSuitCo(sprite(shit).member.name) <> getSuitCo(sprite(cakes).member.name)) then
  45.         abort()
  46.         next repeat
  47.       end if
  48.       if (getValue(sprite(shit).member.name) = 13) and (getValue(sprite(cakes).member.name) = 1) and (getSuitCo(sprite(shit).member.name) <> getSuit(sprite(cakes).member.name)) then
  49.         abort()
  50.       end if
  51.     end repeat
  52.   end repeat
  53.   repeat with it = 1 to reserve.count
  54.     if reserve[it].getcardcount() = 0 then
  55.       next repeat
  56.     end if
  57.     shit = reserve[it].getlastcard().spnum
  58.     repeat with cakes = 17 to 20
  59.       if sprite(cakes).member.name = "empty" then
  60.         if getValue(sprite(shit).member.name) = getOff(string(basecard)) then
  61.           abort()
  62.         end if
  63.         next repeat
  64.       end if
  65.       if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) + 1)) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
  66.         abort()
  67.         next repeat
  68.       end if
  69.       if (getValue(sprite(shit).member.name) = 1) and (getValue(sprite(cakes).member.name) = 13) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
  70.         abort()
  71.       end if
  72.     end repeat
  73.     repeat with raped = 1 to tableau.count
  74.       if tableau[raped].getcardcount() = 0 then
  75.         abort()
  76.         next repeat
  77.       end if
  78.       cakes = tableau[raped].getlastcard().spnum
  79.       if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) - 1)) and (getSuitCo(sprite(shit).member.name) <> getSuitCo(sprite(cakes).member.name)) then
  80.         abort()
  81.         next repeat
  82.       end if
  83.       if (getValue(sprite(shit).member.name) = 13) and (getValue(sprite(cakes).member.name) = 1) and (getSuitCo(sprite(shit).member.name) <> getSuit(sprite(cakes).member.name)) then
  84.         abort()
  85.       end if
  86.     end repeat
  87.   end repeat
  88.   repeat with it = 1 to tableau.count
  89.     if tableau[it].getcardcount() = 0 then
  90.       next repeat
  91.     end if
  92.     shit = tableau[it].getlastcard().spnum
  93.     repeat with cakes = 17 to 20
  94.       if sprite(cakes).member.name = "empty" then
  95.         if getValue(sprite(shit).member.name) = getOff(string(basecard)) then
  96.           abort()
  97.         end if
  98.         next repeat
  99.       end if
  100.       if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) + 1)) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
  101.         abort()
  102.         next repeat
  103.       end if
  104.       if (getValue(sprite(shit).member.name) = 1) and (getValue(sprite(cakes).member.name) = 13) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
  105.         abort()
  106.       end if
  107.     end repeat
  108.     repeat with raped = 1 to tableau.count
  109.       if tableau[raped].getcardcount() = 0 then
  110.         if (reserve[1].getcardcount() = 0) and (reserve[2].getcardcount() = 0) and (reserve[3].getcardcount() = 0) and (reserve[4].getcardcount() = 0) then
  111.           abort()
  112.         end if
  113.         next repeat
  114.       end if
  115.       cakes = tableau[raped].getlastcard().spnum
  116.       if shit = cakes then
  117.         next repeat
  118.       end if
  119.       if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) - 1)) and (getSuitCo(sprite(shit).member.name) <> getSuitCo(sprite(cakes).member.name)) and not getduplicate(shit - 1, cakes) then
  120.         abort()
  121.         next repeat
  122.       end if
  123.       if (getValue(sprite(shit).member.name) = 13) and (getValue(sprite(cakes).member.name) = 1) and (getSuitCo(sprite(shit).member.name) <> getSuit(sprite(cakes).member.name)) and not getduplicate(shit - 1, cakes) then
  124.         abort()
  125.       end if
  126.     end repeat
  127.     if sprite(tableau[it].getlastcard().spnum).backCardEQ() then
  128.       abort()
  129.     end if
  130.   end repeat
  131.   win = "no"
  132.   pootimer = timeout("THE TIME").new(130, #gotoit)
  133. end
  134.  
  135. on gotoit
  136.   pootimer.forget()
  137.   go("gameover")
  138. end
  139.  
  140. on getValue arg
  141.   if (arg contains "hearts") or (arg contains "spades") then
  142.     return getOff(chars(arg, 1, arg.length - 7))
  143.   else
  144.     if arg contains "diamonds" then
  145.       return getOff(chars(arg, 1, arg.length - 9))
  146.     else
  147.       if arg contains "clubs" then
  148.         return getOff(chars(arg, 1, arg.length - 6))
  149.       end if
  150.     end if
  151.   end if
  152. end
  153.  
  154. on getOff numba
  155.   if numba = "ace" then
  156.     return 1
  157.   else
  158.     if numba = "two" then
  159.       return 2
  160.     else
  161.       if numba = "three" then
  162.         return 3
  163.       else
  164.         if numba = "four" then
  165.           return 4
  166.         else
  167.           if numba = "five" then
  168.             return 5
  169.           else
  170.             if numba = "six" then
  171.               return 6
  172.             else
  173.               if numba = "seven" then
  174.                 return 7
  175.               else
  176.                 if numba = "eight" then
  177.                   return 8
  178.                 else
  179.                   if numba = "nine" then
  180.                     return 9
  181.                   else
  182.                     if numba = "ten" then
  183.                       return 10
  184.                     else
  185.                       if numba = "jack" then
  186.                         return 11
  187.                       else
  188.                         if numba = "queen" then
  189.                           return 12
  190.                         else
  191.                           if numba = "king" then
  192.                             return 13
  193.                           end if
  194.                         end if
  195.                       end if
  196.                     end if
  197.                   end if
  198.                 end if
  199.               end if
  200.             end if
  201.           end if
  202.         end if
  203.       end if
  204.     end if
  205.   end if
  206. end
  207.  
  208. on getSuit arg
  209.   if arg contains "hearts" then
  210.     return #hearts
  211.   else
  212.     if arg contains "diamonds" then
  213.       return #diamonds
  214.     else
  215.       if arg contains "clubs" then
  216.         return #clubs
  217.       else
  218.         if arg contains "spades" then
  219.           return #spades
  220.         end if
  221.       end if
  222.     end if
  223.   end if
  224. end
  225.  
  226. on getSuitCo arg
  227.   if arg contains "hearts" then
  228.     return #red
  229.   else
  230.     if arg contains "diamonds" then
  231.       return #red
  232.     else
  233.       if arg contains "clubs" then
  234.         return #black
  235.       else
  236.         if arg contains "spades" then
  237.           return #black
  238.         end if
  239.       end if
  240.     end if
  241.   end if
  242. end
  243.  
  244. on getduplicate arch, argu
  245.   if (sprite(arch).member.name <> "empty") and (sprite(arch).member.name <> "backofcard") then
  246.     if (getValue(sprite(arch).member.name) = getValue(sprite(argu).member.name)) and (getSuitCo(sprite(arch).member.name) = getSuitCo(sprite(argu).member.name)) then
  247.       return 1
  248.     end if
  249.   end if
  250.   return 0
  251. end
  252.