home *** CD-ROM | disk | FTP | other *** search
/ Classic Fond 52 / ClassicFond52.iso / GAMES / DROIDW.RAR / DWCD.GOB / mission_cog_cc_jawatalk.cog < prev    next >
Text File  |  1998-11-04  |  21KB  |  832 lines

  1. # CC_JawaTalk.cog
  2. #    
  3. # CommuniCog for the Jawa in the Crystal Cave Puzzle.
  4. #
  5. # Desc:                   +               _----_
  6. #   ==============================    . / _  _ \                  .
  7. #     ABANDON HOPE ALL YE WHO ENTER.      |/_\/_\|
  8. #     ==============================       \ || /
  9. # ??/??/98 DGS    Created.          .      ++++         .              .
  10. #                                        \__/                    +
  11. #-----------------------------------------------------------------------------
  12.  
  13. symbols
  14. message        arrived
  15. message        converse
  16. message       startup
  17. message        arrived
  18. message        timer
  19. message        arrived
  20.  
  21. cog                crystal1_c
  22. cog                crystal2_c
  23. cog                crystal3_c
  24. cog             laser_c
  25. thing            gonk                 linkid=2
  26. thing             elevator             linkid=1       
  27. surface            top_adjoin    
  28. surface            Bottom_adjoin    
  29. thing              player                           local
  30. flex            e_speed=5.0                        local
  31. int                Met=0                            local
  32. flex            g_speed=2.0                        local
  33. int                Joke=0                            local
  34. int                spoken_1=0                       local
  35. int                gears=0                            local
  36. int                ConversationActive=0            local
  37. int             gonkcurframe=0                  local
  38. int                ResponseID                        local
  39. int                e_moving=0                        local
  40. flex            set = 0.00                        local
  41. int                bye=0                            local
  42. int                add_crystal=0                    local
  43. int                destframe=0                        local
  44. int                walkmode=0                        local
  45. int                donttalk=0                        local
  46. flex            wait_time=1.3                    local
  47. int                 MattTateishi=0                local
  48. end
  49.  
  50.  
  51. code
  52. startup:
  53.     # The varaible Add_crystal is used to deturmine what crystal has been (or is going to be) placed by Gonk.
  54.     # If it's set to 0, that means none have been placed yet. If it's set to 3 then all 3 three crystals have been 
  55.     # placed.  
  56.  
  57.     # HACK! 6/26/98
  58.     # This verb sets the availability of the crystals based on which missions
  59.     # the player has completed...
  60.     dwSetupCrystalInventory();
  61.      player=getlocalplayerthing();
  62.     walkmode = 1;
  63.     destframe = 1;
  64.     call goframe;
  65.     
  66.     hastalked = 0;
  67.     return;
  68.  
  69. timer:
  70.     if (walkmode == 1)
  71.         {
  72.         if (destframe == 3)
  73.             {
  74.             walkmode = 2;
  75.             destframe = 1;
  76.             call goframe;
  77.             }
  78.         if (destframe == 5)
  79.             {
  80.             walkmode = 2;
  81.             destframe = 1;
  82.             call goframe;
  83.             }
  84.         }
  85.     else if (walkmode == 2)
  86.         {
  87.         if (destframe == 1)
  88.             {
  89.             walkmode = 1;
  90.             destframe = 1;
  91.             call goframe;
  92.             }
  93.         }
  94.     else if (walkmode == 10)
  95.         {
  96.         if (destframe == 16)
  97.             {
  98.             print("CREATE FIRST CRYSTAL");
  99.             sendmessage(crystal1_c,user0);        //Create crystal
  100.             sendmessage(laser_c,user1);            //tell the laser cog there's another crystal added
  101.             walkmode = 11;
  102.             destframe = 14;
  103.             call goframe;
  104.             }
  105.         }
  106.     else if (walkmode == 20)
  107.         {
  108.         if (destframe == 28)
  109.             {
  110.             print("CREATE SECOND CRYSTAL");
  111.             sendmessage(crystal2_c,user0);
  112.             sendmessage(laser_c,user1);            //tell the laser cog there's another crystal added
  113.             walkmode = 21;
  114.             destframe = 26;
  115.             call goframe;
  116.             }
  117.         }
  118.     
  119.     else if (walkmode == 30)
  120.         {
  121.         if (destframe == 38)
  122.             {
  123.             print("CREATE THIRD CRYSTAL");
  124.             sendmessage(crystal3_c,user0);
  125.             sendmessage(laser_c,user1);            //tell the laser cog there's another crystal added
  126.             walkmode = 31;
  127.             destframe = 36;
  128.             call goframe;
  129.             }
  130.         }
  131.     
  132.     return;
  133.  
  134. arrived:
  135.     // The variable walkmode is used to figure out what pat Gonk is on. When walkmode is e set to a single digit
  136.     // number, it means gonk is in an idle mode. If walkmode is set to a two digit number like 30 or 31, it means
  137.     // He's putting away a crystal. Here's the layout:
  138.     
  139.     // walkmode        Meaning
  140.     // 1            Idle busywork at front of building
  141.     // 2            Idle busywork at front of building 
  142.     // 10            Going to place crystal 1 in north chamber
  143.     // 11            coming back from placing crystal 1
  144.     // 20            Going to place crystal 2 in east chamber
  145.     // 21             Coming back from placing crystal 2
  146.     // 30            Going to place crystal in South West chamber
  147.     // 31            Coming back from placing crystal 3              
  148.     
  149.     // The majority of this code is eccentally checking to see where Gonk is and moving him from frame to frame. 
  150.     // Boring. 
  151.  
  152.     if ((getsenderref() == gonk) && (!ConversationActive)) 
  153.         {
  154.         //print("arrived at:");
  155.         //printint(destframe);
  156.         if (walkmode == 1)        
  157.             {
  158.             setthingmass(gonk, 0); //change this one  
  159.             if (destframe == 1)
  160.                 {
  161.                 set = (rand()*2);
  162.                 //printflex(set);
  163.                 if (set < 1) destframe = 2;
  164.                 else destframe = 4;
  165.                 call goframe;
  166.                 }
  167.             else if (destframe == 2)
  168.                 {
  169.                 destframe = 3;
  170.                 AISetLookFrame(gonk, destframe);
  171.                 settimer(5);
  172.                 }
  173.             else if (destframe == 4)
  174.                 {
  175.                 destframe = 5;
  176.                 AISetLookFrame(gonk, destframe);
  177.                 settimer(5);
  178.                 }
  179.                 
  180.             }
  181.         else if (walkmode == 2)        
  182.             {
  183.             setthingmass(gonk, 00); 
  184.             if (destframe == 1)
  185.                 {
  186.                 destframe = 0;
  187.                 call goframe;
  188.                 }
  189.             else if (destframe == 0)
  190.                 {
  191.                 destframe = 1;
  192.                 settimer(6);
  193.                 }
  194.             
  195.             }
  196.         else if (walkmode == 10)         // Going to place first crystal.
  197.             {
  198.             setthingmass(gonk, 0); 
  199.             if (destframe == 1)
  200.                 {
  201.                 destframe = 6;
  202.                 call goframe;
  203.                 }
  204.             else if (destframe == 6)
  205.                 {
  206.                 destframe = 7;
  207.                 call goframe;
  208.                 }
  209.             else if (destframe == 7)
  210.                 {
  211.                 destframe = 8;
  212.                 call goframe;
  213.                 }
  214.             else if (destframe == 8)
  215.                 {
  216.                 destframe = 9;
  217.                 call goframe;
  218.                 }
  219.             else if (destframe == 9)
  220.                 {
  221.                 destframe = 10;
  222.                 call goframe;
  223.                 }
  224.             else if (destframe == 10)
  225.                 {
  226.                 destframe = 11;
  227.                 call goframe;
  228.                 }
  229.             else if (destframe == 11)
  230.                 {
  231.                 destframe = 12;
  232.                 call goframe;
  233.                 }
  234.             else if (destframe == 12)
  235.                 {
  236.                 destframe = 13;
  237.                 call goframe;
  238.                 }
  239.             else if (destframe == 13)
  240.                 {
  241.                 destframe = 14;
  242.                 call goframe;
  243.                 }
  244.             else if (destframe == 14)
  245.                 {
  246.                 destframe = 15;
  247.                 call goframe;
  248.                 }
  249.             else if (destframe == 15)
  250.                 {
  251.                 destframe = 16;
  252.                 AISetLookFrame(gonk, destframe);
  253.                 settimer(1);
  254.                 }
  255.             }
  256.         else if (walkmode == 11)         // Going to place first crystal.
  257.             {
  258.             setthingmass(gonk, 0); 
  259.             if (destframe == 14)
  260.                 {
  261.                 destframe = 13;
  262.                 call goframe;
  263.                 }
  264.             else if (destframe == 13)
  265.                 {
  266.                 destframe = 12;
  267.                 call goframe;
  268.                 }
  269.             else if (destframe == 12)
  270.                 {
  271.                 destframe = 11;
  272.                 call goframe;
  273.                 }
  274.             else if (destframe == 11)
  275.                 {
  276.                 destframe = 10;
  277.                 call goframe;
  278.                 }
  279.             else if (destframe == 10)
  280.                 {
  281.                 destframe = 9;
  282.                 call goframe;
  283.                 }
  284.             else if (destframe == 9)
  285.                 {
  286.                 destframe = 8;
  287.                 call goframe;
  288.                 }
  289.             else if (destframe == 8)
  290.                 {
  291.                 destframe = 7;
  292.                 call goframe;
  293.                 }
  294.             else if (destframe == 7)
  295.                 {
  296.                 destframe = 6;
  297.                 call goframe;
  298.                 }
  299.             else if (destframe == 6)
  300.                 {
  301.                 destframe = 1;
  302.                 walkmode = 2;
  303.                 donttalk = 0;
  304.                 call goframe;
  305.                 g_speed = 1.0;
  306.                 }
  307.             }
  308.         else if (walkmode == 20)         // Going to place first crystal.
  309.             {
  310.             setthingmass(gonk, 0); 
  311.             if (destframe == 1)
  312.                 {
  313.                 destframe = 6;
  314.                 call goframe;
  315.                 }
  316.             else if (destframe == 6)
  317.                 {
  318.                 destframe = 7;
  319.                 call goframe;
  320.                 }
  321.             else if (destframe == 7)
  322.                 {
  323.                 destframe = 8;
  324.                 call goframe;
  325.                 }
  326.             else if (destframe == 8)
  327.                 {
  328.                 destframe = 17;
  329.                 call goframe;
  330.                 }
  331.             else if (destframe == 17)
  332.                 {
  333.                 destframe = 18;
  334.                 call goframe;
  335.                 }
  336.             else