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

  1.  
  2. function popoutCarton(carton) 
  3.     storeData("touchedCarton", carton);
  4.     local editor = getParent().getParent().getEditor();
  5.     
  6.     local unausgepackt = retrieveData("storage"); -- items aus dem storage holen
  7.     local ausgepackt = editor.getPrototypeByName( unausgepackt[1] ); -- das erste getPrototypen
  8.     
  9.     if (ausgepackt) then
  10.         editor.setMode(Editor.BUY_MODE);
  11.         --print ("===="..getRoot().getChild("gui").getName() );--getRoot();--.getChild("gui").modeGroup.setState(5);
  12.         getRoot().getChild("gui").lifeGroup.setState(5);
  13.         
  14.         local selectedObject = editor.selectPrototype(ausgepackt,true);
  15.         if (selectedObject) then
  16.             storeStateObject("selectedObject", selectedObject);
  17.         end
  18.         
  19.         -- shall not be sold for money
  20.         selectedObject.setHasPrice(false);
  21. --                setState("placeMe");
  22.     end    
  23. end
  24.  
  25.  
  26. function cleanupCarton()
  27.     -- den zuletzt ausgepacken Karton holen
  28.     local objectID = tonumber(retrieveData("touchedCarton"));
  29.     local object = getParent().getStateObjectFromID(objectID);
  30.     
  31.     if (object) then -- sofern es den ueberhaupt gibt
  32.         print("########### kille Karton: "..objectID);
  33.         object.deleteGameObject(); -- ihn killen
  34.         storeData("touchedCarton", nil); -- und vermerken dass er weg ist
  35.     
  36.         -- restore the price
  37.         local selectedObject = retrieveStateObject("selectedObject");
  38.         if (selectedObject) then
  39.             selectedObject.setHasPrice(true);
  40.         end
  41.         removeStateObject("selectedObject");
  42.     
  43.         -- somit also das item auch aus der Auspack-liste geschmissen werden kann
  44.         local unausgepackt = retrieveData("storage"); -- items aus dem storage holen
  45.         tremove(unausgepackt, 1); -- und aus der liste entfernen
  46.         if (unausgepackt[1]) then -- wenn noch welche drin sind
  47.             storeData("storage", unausgepackt); -- die liste zurueckschreiben
  48.             return true;
  49.         else -- ansonsten bleibt immer das letzte element mindestens drin
  50.             return false; -- aber es wird angezeigt dass es das letzte is
  51.         end
  52.     end;
  53.     
  54.     return true;
  55. end
  56.  
  57.  
  58.  
  59.  
  60. beginStateMachine()
  61.  
  62.     -- called when questor builds up all known questScripts
  63.     onEnter(function(msg)
  64.         print ("questMoveIn entered");
  65.         
  66.         --sendMsgThis("questreset");
  67.  
  68.         storeData("storage", {"CoffeeTableOldschool", "TelephoneOldschool", "LampTableOldschool",
  69.             "ChairKitchenOldschool", "tvOldschool", "TrashCanOldschool", "FlowerBluePot"});
  70.         setState("initial");
  71.     end )
  72.     
  73.     -- on game over: relationship conditions get reset to 0 and all quests are reset to initial
  74.     onMsg("questreset", function(msg)
  75.         -- do not reset this quest since there are no new cartons
  76.         --storeData("storage", {"CoffeeTableOldschool", "TelephoneOldschool", "LampTableOldschool",
  77.         --    "FlowerBluePot", "tvOldschool", "TrashCanOldschool", "ChairKitchenOldschool"});
  78.         --setState("initial");
  79.     end ) 
  80. ---------------------------------------------------------------------------------------------------------------------------------------    
  81.     
  82.     state("initial") 
  83.         onMsg("checkCondition", function(msg)
  84.             
  85.         end )
  86.         
  87.         onMsg("unpacked", function(msg)
  88.             --setState("moveIn0");
  89.             --sendMsgThis("unpacked", msg.data);
  90.             
  91.             --getParent().hideGui();
  92.         
  93.             popupConversation(
  94.                 "dialogTutMI1"
  95.                 --"Linda::Ach, was fⁿr eine Unordnung! Vielleicht sollte ich einfach ein wenig auspacken. Er wird sich sicher freuen, wenn ich ihm helfe und meinen guten Geschmack in puncto Einrichtung unter Beweis stelle.:;"..
  96.                 --"Nobody::<<Das Spiel befindet sich jetzt im Baumodus. Ausgepackte GegenstΣnde lassen sich mit der Maus durch Linksklick in der Wohnung platzieren. Wenn das M÷bel dabei rot leuchtet, bedeutet das, dass es an diesem Ort nicht abgesetzt werden kann. Probiere es aus.>>:;"
  97.                 );
  98.             setState("moveIn0");
  99.             storeData("firstCarton", msg.data);
  100.         end )
  101.         
  102.     state("moveIn0")    
  103.         onMsg("yes", function(msg)
  104.             popoutCarton( retrieveData("firstCarton") );
  105.             setState("moveIn1");
  106.         end )
  107.         
  108.     state("moveIn1")
  109.         onMsg("placed", function(msg)
  110.             cleanupCarton();
  111.             storeData("placedObject", msg.sender );
  112.             
  113.             setState("moveIn3");
  114.             popupConversation(
  115.                 "dialogTutMI2"
  116.                 --"Nobody::<<Man kann einmal platzierte GegenstΣnde auch wieder aufgreifen. Ein Linksklick nimmt sie, ein weiterer Linksklick setzt sie wieder ab.>>:;"..
  117.                 --"Nobody::<<Wenn die M÷bel gedreht werden sollen, muss die linke Maustaste dauerhaft gehalten werden. Probiere es aus, indem du das M÷belstⁿck zunΣchst durch Linksklick wieder aufnimmst. Dann drⁿckst du erneut auf die linke Maustaste und hΣltst sie gedrⁿckt>>:;"
  118.             );
  119.             --getParent().showGui();
  120.         end )
  121.         
  122.         onMsg("unpacked", function(msg)
  123.             setState("moveIn");
  124.             sendMsgThis("unpacked",msg.data);
  125.         end )        
  126.         
  127.     state("moveIn3")
  128.         onMsg("placed", function(msg)
  129.             setState("moveIn");
  130.             if ( msg.sender == retrieveData("placedObject") ) then
  131.                 popupConversation(
  132.                     "dialogTutMI3"
  133.                     --"Nobody::<<Du kannst den Baumodus jederzeit verlassen, indem du auf den Button 'Bedⁿrfnisse' klickst. Damit kehrst du in den Normalmodus des Spiels zurⁿck um weitere Kartons auszupacken>>:;"
  134.                 );
  135.             else 
  136.                 setState("moveIn");
  137.             end
  138.         end )
  139.         
  140.         onMsg("unpacked", function(msg)
  141.             setState("moveIn");
  142.             sendMsgThis("unpacked",msg.data);
  143.         end )
  144.         
  145.  
  146.     
  147.     state("moveIn")
  148.         onMsg("unpacked", function(msg)
  149.             popoutCarton(msg.data);
  150.         end )
  151.  
  152.         onMsg("placed", function(msg)
  153.             if (not cleanupCarton()) then
  154.                 setState("done");
  155.                 sendMsgThis("fertig",msg.data);
  156.             end
  157.         end )
  158.  
  159. --    state("placeMe")
  160. --        onMsg("placed", function(msg)            
  161. --            getParent().getParent().getEditor().setMode(Editor.LIFE_MODE);
  162. --            setState("moveIn");
  163. --        end )        
  164.  
  165.  
  166. ---------------------------------------------------------------------------------------------------------------------------------------    
  167.  
  168.         
  169.     state("done")
  170.         onMsg("fertig", function(msg)
  171.             getParent().getParent().getEditor().setMode(Editor.LIFE_MODE);
  172.             getRoot().getChild("gui").lifeGroup.setState(1);
  173.             sendDelayedMsgThis("ganzFertig", 2000, "");
  174.         end )
  175.         
  176.         onMsg("ganzFertig", function(msg)
  177.             popupConversation(
  178.                 "dialogTutMI4"
  179.                 --"Nobody::<<Gut gemacht, alle GegenstΣnde sind jetzt ausgepackt. Du kannst jederzeit selber in den Baumodus wechseln, wenn du weitere M÷bel kaufen m÷chtest.>>:;"
  180.             );
  181.         end )
  182.  
  183.     
  184.     -- sackgasse hier
  185.         
  186. endStateMachine()
  187.  
  188.  
  189.  
  190.  
  191.             
  192.  
  193.  
  194.