home *** CD-ROM | disk | FTP | other *** search
/ Singles (French) / Singles-FrenchVersion-Win95.iso / data1.cab / Statemachine / questFriendship3.lua < prev    next >
Text File  |  2004-03-05  |  5KB  |  158 lines

  1. beginStateMachine()
  2.  
  3.     -- called when questor builds up all known questScripts
  4.     onEnter(function(msg)
  5.         print("questFriendship3 entered");
  6.         setState("initial");
  7.     end )
  8.     
  9.     -- on game over: relationship conditions get reset to 0 and all quests are reset to initial
  10.     onMsg("questreset", function(msg)
  11.         setState("initial");
  12.     end ) 
  13. ---------------------------------------------------------------------------------------------------------------------------------------    
  14.     onMsg("checkCondition", function(msg)
  15.         --print("********************** "..getState());
  16.         --setState("initial");
  17.     end )
  18.     
  19.     state("initial") 
  20.         onMsg("checkCondition", function(msg)
  21.             local mike = getParent().getParent().getCharacter(MIKE);
  22.             local elaine = getParent().getParent().getCharacter(ELAINE);
  23.             
  24.             if ( -- condition here
  25.                 min(    mike.getRelationshipCondition(ELAINE, REL_FRIENDSHIP),
  26.                     elaine.getRelationshipCondition(MIKE, REL_FRIENDSHIP)) >= 3 ) then
  27.                 
  28.                 --print("********** ok scharfgestellt");
  29.                 setState("scharf");
  30.             end
  31.         
  32.         end )
  33.         
  34.     state("scharf")
  35.         onMsg("checkCondition", function(msg)
  36. --~             local mike = getParent().getParent().getCharacter(MIKE);
  37. --~             local mikeIsSleeping = mike.getSleeping();
  38. --~             
  39. --~             if ( not mikeIsSleeping and mikeHasBeenSleeping ) then
  40. --~                 --print("********** mike hat gepennt");
  41. --~                 setState("gutenMorgenMike");
  42. --~             else
  43. --~                 mikeHasBeenSleeping = mikeIsSleeping;
  44. --~             end
  45. --~             
  46. --~             local elaine = getParent().getParent().getCharacter(ELAINE);
  47. --~             local elaineIsSleeping = elaine.getSleeping();
  48. --~             if (  not elaineIsSleeping and elaineHasBeenSleeping ) then
  49. --~                 --print("********** elaine hat gepennt");
  50. --~                 setState("gutenMorgenElaine");
  51. --~             else
  52. --~                 elaineHasBeenSleeping = elaineIsSleeping;
  53. --~             end
  54.             
  55.             local gameObjectServer = getParent().getParent();
  56.             
  57.             local gameDate = gameObjectServer.getGameDate()
  58.             
  59.             if (gameDate.getHours() > 4 and gameDate.getHours() < 12) then
  60.             
  61.                 local mike = gameObjectServer.getCharacter(MIKE);
  62.                 local elaine = gameObjectServer.getCharacter(ELAINE);
  63.                 
  64.                 if (not mike.isBusy() and not elaine.isBusy()) then
  65.                 
  66.                     local mikeHadBreakfast = mike.hasRecentActivityName("eatBreakfast");
  67.                     local elaineHadBreakfast = elaine.hasRecentActivityName("eatBreakfast");
  68.                 
  69.                     if (not mikeHadBreakfast and not elaineHadBreakfast) then
  70.                 
  71.                         local mikeIsSleeping = mike.getSleeping();
  72.                         local mikeHasBeenSleeping = mike.hasRecentActivityName("sleep");
  73.                         
  74.                         
  75.                         if ( not mikeIsSleeping and mikeHasBeenSleeping) then
  76.                             setState("gutenMorgenMike");
  77.                         end
  78.                         
  79.                         
  80.                         local elaineIsSleeping = elaine.getSleeping();
  81.                         local elaineHasBeenSleeping = elaine.hasRecentActivityName("sleep")
  82.                         
  83.                         
  84.                         if ( not elaineIsSleeping and elaineHasBeenSleeping) then
  85.                             setState("gutenMorgenElaine");
  86.                         end
  87.                         
  88.                     end
  89.                     
  90.                 end
  91.             
  92.             end
  93.         end )
  94.         
  95.     state("gutenMorgenMike")
  96.         onMsg("checkCondition", function(msg)
  97.             local mike = getParent().getParent().getCharacter(MIKE);
  98.             local elaine = getParent().getParent().getCharacter(ELAINE);
  99.             if (mike.getRoomNumber() == elaine.getRoomNumber()) then
  100.                 mike.queueCommand("pm_talkCutscene", "talkCutscene", elaine , "questFriendship3");
  101.                 setState("gutGeschlafenMike");
  102.             end
  103.         end )
  104.     
  105.     state("gutGeschlafenMike")
  106.         onMsg("talking", function(msg)
  107.             if ( msg.data == "questFriendship3" ) then
  108.                 --print("ASLDJKASDALSKJDKASJD");
  109.                 popupConversation("dialogFriendship3Mike");
  110.                 setState("doneGutGeschlafenMike");
  111.             end
  112.         end )
  113.         
  114.     state("doneGutGeschlafenMike")    
  115.         onMsg("yes", function( msg )        
  116.             getParent().getParent().getCharacter(MIKE).cancelCurrentActivity();
  117.             getParent().getParent().getCharacter(ELAINE).cancelCurrentActivity();
  118.             setState("done");
  119.         end )
  120.         
  121.         
  122.         
  123.     state("gutenMorgenElaine")
  124.         onMsg("checkCondition", function(msg)
  125.             local mike = getParent().getParent().getCharacter(MIKE);
  126.             local elaine = getParent().getParent().getCharacter(ELAINE);
  127.             if (mike.getRoomNumber() == elaine.getRoomNumber()) then
  128.                 elaine.queueCommand("pm_talkCutscene", "talkCutscene", mike, "questFriendship3");
  129.                 setState("gutGeschlafenElaine");
  130.             end
  131.         end )
  132.         
  133.     state("gutGeschlafenElaine")
  134.         onMsg("talking", function(msg)
  135.             if (msg.data == "questFriendship3") then
  136.                 popupConversation("dialogFriendship3Elaine");
  137.                 setState("doneGutGeschlafenElaine");
  138.             end
  139.         end )
  140.  
  141.     state("doneGutGeschlafenElaine")    
  142.         onMsg("yes", function( msg )
  143.             getParent().getParent().getCharacter(MIKE).cancelCurrentActivity();
  144.             getParent().getParent().getCharacter(ELAINE).cancelCurrentActivity();        
  145.             setState("done");
  146.         end )
  147.  
  148. ---------------------------------------------------------------------------------------------------------------------------------------    
  149.  
  150.         
  151.     state("done")
  152.     
  153.     -- sackgasse hier
  154.         
  155.         
  156.         
  157. endStateMachine()
  158.