- Timestamp:
- Feb 3, 2015, 11:38:07 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/storymodeHS14/data/gui/scripts/CampaignMenu.lua
r10251 r10253 3 3 local P = createMenuSheet("CampaignMenu") 4 4 5 function P.onLoad() 6 7 local MissionTwoButton = winMgr:getWindow("orxonox/MissionTwoButton") 8 if (P.CheckLevel("missionOne.oxw")) then 9 MissionTwoButton:setProperty("Disabled", "False") 10 end 11 12 local MissionThreeButton = winMgr:getWindow("orxonox/MissionThreeButton") 13 if (P.CheckLevel("fightInOurBack.oxw")) then 14 MissionThreeButton:setProperty("Disabled", "False") 15 end 5 function P:onShow() 6 P:updateButtons() 7 end 16 8 17 local MissionFourButton = winMgr:getWindow("orxonox/MissionFourButton") 18 if (P.CheckLevel("pirateAttack.oxw")) then 19 MissionFourButton:setProperty("Disabled", "False") 20 end 21 22 local Completed = winMgr:getWindow("orxonox/CampaignMenuCongratulation") 23 if (P.CheckLevel("iJohnVane_TriptoArea51.oxw")) then 24 Completed:setProperty("Visible","True") 9 function P.updateButtons() 10 P.updateButton(0, winMgr:getWindow("orxonox/MissionOneButton")) 11 P.updateButton(1, winMgr:getWindow("orxonox/MissionTwoButton")) 12 P.updateButton(2, winMgr:getWindow("orxonox/MissionThreeButton")) 13 P.updateButton(3, winMgr:getWindow("orxonox/MissionFourButton")) 14 15 if (P.getIndexOfLastFinishedMission() == orxonox.LevelManager:getInstance():getNumberOfCampaignMissions() - 1) then 16 local label = winMgr:getWindow("orxonox/CampaignMenuCongratulation") 17 label:setProperty("Visible","True") 25 18 end 26 19 end 27 20 28 function P.GenerateHelperString(number) 29 local string = "" 30 while number > 1 do 31 string = string.." " 32 number = number-1 21 function P.updateButton(index, button) 22 if (P.shouldDisplayButton(index)) then 23 button:setProperty("Visible", "True") 24 25 if (P.shouldEnableButton(index)) then 26 button:setProperty("Disabled", "False") 27 end 33 28 end 34 string = string.."."35 return string36 29 end 37 30 38 function P.FindLevel(filename) 31 function P.shouldDisplayButton(index) 32 local size = orxonox.LevelManager:getInstance():getNumberOfCampaignMissions() 33 return index < size 34 end 35 36 function P.shouldEnableButton(index) 37 return index <= P.getIndexOfLastFinishedMission() + 1 38 end 39 40 function P.getIndexOfLastFinishedMission() 41 local lastMission = orxonox.LevelManager:getInstance():getLastFinishedCampaignMission() 42 if (lastMission and lastMission ~= "") then 43 local size = orxonox.LevelManager:getInstance():getNumberOfCampaignMissions() 44 local index = 0 45 while index < size do 46 local mission = orxonox.LevelManager:getInstance():getCampaignMission(index) 47 if (mission == lastMission) then 48 return index 49 end 50 index = index + 1 51 end 52 end 53 return -1 54 end 55 56 function P.MissionOneButton_clicked(e) 57 P.loadLevel(P.FindLevel(0)) 58 end 59 60 function P.MissionTwoButton_clicked(e) 61 P.loadLevel(P.FindLevel(1)) 62 end 63 64 function P.MissionThreeButton_clicked(e) 65 P.loadLevel(P.FindLevel(2)) 66 end 67 68 function P.MissionFourButton_clicked(e) 69 P.loadLevel(P.FindLevel(3)) 70 end 71 72 function P.loadLevel(level) 73 orxonox.execute("startGame " .. level:getXMLFilename()) 74 hideAllMenuSheets() 75 end 76 77 function P.FindLevel(index) 78 local filename = orxonox.LevelManager:getInstance():getCampaignMission(index) 39 79 local level = nil 40 80 local templevel = nil … … 50 90 return level 51 91 end 52 53 function P.CheckLevel(filename)54 local file = io.open("campaign.txt", "r+")55 local index = 056 local returnvalue = false57 local numberoflines = 58-string.len(filename)58 local helpstringfalse = filename.." 0"..P.GenerateHelperString(numberoflines)59 local helpstringtrue = filename.." 1"..P.GenerateHelperString(numberoflines)60 while index < 100 do61 local line = file:read()62 if(line == helpstringfalse) then63 returnvalue = false64 break65 end66 if(line == helpstringtrue) then67 returnvalue = true68 break69 end70 index=index+171 end72 io.close(file)73 return returnvalue74 end75 76 function P.MissionOneButton_clicked(e)77 local level = P.FindLevel("missionOne.oxw")78 orxonox.execute("startGame " .. level:getXMLFilename())79 hideAllMenuSheets()80 end81 82 function P.MissionTwoButton_clicked(e)83 local level = P.FindLevel("fightInOurBack.oxw")84 if (P.CheckLevel("missionOne.oxw")) then85 orxonox.execute("startGame " .. level:getXMLFilename())86 hideAllMenuSheets()87 end88 end89 90 function P.MissionThreeButton_clicked(e)91 local level = P.FindLevel("pirateAttack.oxw")92 if (P.CheckLevel("fightInOurBack.oxw")) then93 orxonox.execute("startGame " .. level:getXMLFilename())94 hideAllMenuSheets()95 else96 hideMenuSheet(P.name)97 end98 end99 100 function P.MissionFourButton_clicked(e)101 local level = P.FindLevel("iJohnVane_TriptoArea51.oxw")102 if (P.CheckLevel("pirateAttack.oxw")) then103 orxonox.execute("startGame " .. level:getXMLFilename())104 hideAllMenuSheets()105 else106 hideMenuSheet(P.name)107 end108 end109 110 function P.CampaignMenuRefreshButton_clicked(e)111 local MissionTwoButton = winMgr:getWindow("orxonox/MissionTwoButton")112 if (P.CheckLevel("missionOne.oxw")) then113 MissionTwoButton:setProperty("Disabled", "False")114 end115 116 local MissionThreeButton = winMgr:getWindow("orxonox/MissionThreeButton")117 if (P.CheckLevel("fightInOurBack.oxw")) then118 MissionThreeButton:setProperty("Disabled", "False")119 end120 121 local MissionFourButton = winMgr:getWindow("orxonox/MissionFourButton")122 if (P.CheckLevel("pirateAttack.oxw")) then123 MissionFourButton:setProperty("Disabled", "False")124 end125 126 local Completed = winMgr:getWindow("orxonox/CampaignMenuCongratulation")127 if (P.CheckLevel("iJohnVane_TriptoArea51.oxw")) then128 Completed:setProperty("Visible","True")129 end130 end131 92 132 93 function P.CampaignMenuBackButton_clicked(e) … … 134 95 end 135 96 136 137 138 97 return P
Note: See TracChangeset
for help on using the changeset viewer.