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

  1.  
  2. -- NOT_COMPLETE = 0;
  3. -- JUST_COMPLETE = 1;
  4. -- COMPLETE = 2;
  5.  
  6. function checkMissionComplete()
  7.  
  8.     -- if mission is already complete: return 2
  9.     if (retrieveData("complete")) then
  10.         return 2;
  11.     end
  12.  
  13.     -- check if mission is complete now
  14.     
  15.     -- needed objects list has to be empty
  16.     local neededObjects = retrieveData("neededObjects");
  17.     if getn(neededObjects) > 0 then
  18.         -- not complete
  19.         return 0;
  20.     end
  21.     
  22.     -- number of kisses needs to be at least 1
  23.     local kisses = retrieveData("kisses", 0);
  24.     if kisses == 0 then
  25.         -- not complete
  26.         return 0;
  27.     end
  28.     
  29.     --
  30.     local romantic = getParent().getCharacter(ELAINE).getRelationshipCondition(MIKE, REL_FRIENDSHIP);
  31.     if romantic < 1 then
  32.         -- not complete
  33.         return 0;
  34.     end
  35.     
  36.     romantic = getParent().getCharacter(MIKE).getRelationshipCondition(ELAINE, REL_FRIENDSHIP);
  37.     if romantic < 1 then
  38.         -- not complete
  39.         return 0;
  40.     end
  41.  
  42.     -- now complete: return 1
  43.     storeData("complete", 1);
  44.     return 1;
  45. end
  46.  
  47.  
  48. beginStateMachine()
  49.  
  50.     onEnter(function(msg)
  51.         -- list of useful things that have to be built
  52.         storeData("neededObjects", {"lamp", "kommode", "tv", "plant", "flower"});
  53.     end )
  54.  
  55.     onMsg("getText", function(msg)
  56.         -- set mission text
  57.         if (checkMissionComplete() == 0) then
  58.             -- mission is not yet complete
  59.             setMissionText(translate(
  60. "Mike und Linda ziehen ein\n\n"
  61. .."Die neue Wohnung, jedoch noch wⁿst und leer. Was nutzt einem ein Blick auf den Park, wenn man sich nicht mal hinsetzen kann?\n"
  62. .."-Richte die Wohnung mit ein paar Sofas und Dekoration ein, damit sich die beiden wohl fⁿhlen.\n"
  63. .."-Um sich kennenzulernen, sollen Mike und Linda miteinander reden. Dazu mⁿssen sie sich wohl fⁿhlen, also z.B. keinen Hunger haben etc.\n"
  64.             ));
  65.         else
  66.             -- mission is complete
  67.             setMissionText(translate("geschafft!"));
  68.         end
  69.     end )
  70.  
  71.     onMsg("kiss", function(msg)
  72.         local d = retrieveData("kisses", 0);
  73.         d = d + 1;
  74.         storeData("kisses", d);
  75.     end )
  76.  
  77.     onMsg("buy", function(msg)
  78.         -- check if something useful was built
  79.         local sender = getStateObjectFromID(msg.sender);
  80.  
  81.         local neededObjects = retrieveData("neededObjects");
  82.  
  83.         for i = 1, getn(neededObjects) do
  84. print("checking needed object " .. neededObjects[i]);
  85.             if sender.hasBehavior(neededObjects[i]) then
  86. print("found");
  87.                 -- remove from needed objects and store needed objects again
  88.                 tremove(neededObjects, i);
  89.                 storeData("neededObjects", neededObjects);
  90.  
  91.                 -- remove a moving carton
  92.                 local cartons = sender.getObjectsWithBehavior("movingCarton");
  93.                 if getn(cartons) > 0 then
  94. print("delete");
  95.                     cartons[1].deleteGameObject();
  96.                 end
  97.  
  98.                 break;
  99.             end
  100.         end
  101.     end )
  102.     
  103.     onMsg("checkComplete", function(msg)
  104.         if (checkMissionComplete() == 1) then
  105.             popupMission();
  106.         end
  107.     end )
  108.     
  109. endStateMachine()
  110.