-- Get objects from orxonox thisscript:addObject("FPSPlayer", "Player") thisscript:addObject("CameraMan", "cameraManager") thisscript:addObject("QuestGUI", "energyQuest") thisscript:addObject("NPC", "triggeredDoor") thisscript:addObjectAsName("GameWorld", "Moon Station", "gameWorld") -- =gameTitle --get first Quest triggerGetEnergyQuest = SpaceTrigger() --ScriptTrigger() triggerGetEnergyQuest:setScript("quest.lua") triggerGetEnergyQuest:setFunction("getEnergyQuest") triggerGetEnergyQuest:setAbsCoor(229.492569, 38.417606, -363.788483) triggerGetEnergyQuest:setTarget("Player") triggerGetEnergyQuest:setRadius(160) triggerGetEnergyQuest:setDebugDraw(true) --activate energy - finish energyQuest triggerFinishEnergyQuest = SpaceTrigger() triggerFinishEnergyQuest:setScript("quest.lua") triggerFinishEnergyQuest:setFunction("finishEnergyQuest") triggerFinishEnergyQuest:setAbsCoor(346.239166, 482.885010, -160.825775) triggerFinishEnergyQuest:setTarget("Player") triggerFinishEnergyQuest:setRadius(30) triggerFinishEnergyQuest:setDebugDraw(true) --HINT Broken station -> find another way triggerFinishEnergyQuest = SpaceTrigger() triggerFinishEnergyQuest:setScript("quest.lua") triggerFinishEnergyQuest:setFunction("hintBrokenStation") triggerFinishEnergyQuest:setAbsCoor(192.274033, 221.190002, 63.674793) triggerFinishEnergyQuest:setTarget("Player") triggerFinishEnergyQuest:setRadius(85) triggerFinishEnergyQuest:setDebugDraw(true) --HINT find action button --Tick: HINT need to open the door and stop the player trigger = TickTrigger() trigger:setScript("quest.lua") trigger:setFunction("tick") --trigger:setActiveOnCreation(true) --gloabals--------------------------------------------------------------------- questEnergyDone = false lastPlayerZ = 0 lastDoorY = 0 doorSequenceTime = 7 --duration time sec function getEnergyQuest(timestep) energyQuest:startGUI() return true end function hintBrokenStation(timestep) gameWorld:showText("The station seems broken... you need to find another way.") return true end function finishEnergyQuest(timestep) gameWorld:showText("Good work: the emergency energy system seems to be up again.") cameraManager:setCam("CameraDoor") cameraManager:changeCurrTarget("NPC", "triggeredDoor") energyQuest:stopGUI() questEnergyDone = true return true end function tick(timestep) --io.write("tick called \n") if not questEnergyDone then if Player:getAbsCoorZ() < -454 then --gameWorld:showText("The door can't open without energy."); Player:setAbsCoor(Player:getAbsCoorX(),Player:getAbsCoorY(),lastPlayerZ) --set player back else lastPlayerZ = Player:getAbsCoorZ() --store last position end else --quest finished if doorSequenceTime > 0 then --sequence running --triggeredDoor:walkTo(222, 92.5, -472) lastDoorY = lastDoorY+92.5/8*timestep triggeredDoor:setAbsCoor(triggeredDoor:getAbsCoorX(), lastDoorY, triggeredDoor:getAbsCoorZ()) doorSequenceTime = doorSequenceTime - timestep else --triggeredDoor:setVisibility(false) cameraManager:setCam("GameWorldCamera") gameWorld:showText("You should hurry as long as there is still energy.") return true --quest&sequence finished: kill trigger end end return false end