Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/WorldMap_HS18/data/gui/scripts/CampaignMenu.lua @ 12053

Last change on this file since 12053 was 12053, checked in by linggj, 6 years ago

Ship added

  • Property svn:eol-style set to native
File size: 4.1 KB
RevLine 
[10157]1--CampaignMenu.lua
2
3local P = createMenuSheet("CampaignMenu")
4
[10253]5function P:onShow()
6    P:updateButtons()
[10157]7end
8
[10253]9function P.updateButtons()
[11805]10    P.updateButton(0, P.window:getChild("Mission1Button"))
11    P.updateButton(0, P.window:getChild("Mission1Text"))
12    P.updateButton(1, P.window:getChild("Mission2Button"))
13    P.updateButton(1, P.window:getChild("Mission2Text"))
14    P.updateButton(2, P.window:getChild("Mission3Button"))
15    P.updateButton(2, P.window:getChild("Mission3Text"))
16    P.updateButton(3, P.window:getChild("Mission4Button"))
17    P.updateButton(3, P.window:getChild("Mission4Text"))
18    P.updateButton(4, P.window:getChild("Mission5Button"))
19    P.updateButton(4, P.window:getChild("Mission5Text"))
20    P.updateButton(5, P.window:getChild("Mission6Button"))
21    P.updateButton(5, P.window:getChild("Mission6Text"))
22    P.updateButton(6, P.window:getChild("Mission7Button"))
23    P.updateButton(6, P.window:getChild("Mission7Text"))
24    P.updateButton(7, P.window:getChild("Mission8Button"))
25    P.updateButton(7, P.window:getChild("Mission8Text"))
26    P.updateButton(8, P.window:getChild("Mission9Button"))
27    P.updateButton(8, P.window:getChild("Mission9Text"))
[10253]28
[11052]29
[10253]30    if (P.getIndexOfLastFinishedMission() == orxonox.LevelManager:getInstance():getNumberOfCampaignMissions() - 1) then
[11805]31        local label = P.window:getChild("CampaignMenuCongratulation")
[10253]32        label:setProperty("Visible","True")
[10250]33    end
[10157]34end
[12053]35--Updated Buttons der levels
[10253]36function P.updateButton(index, button)
[12053]37    --Wenn genuegend Levels vorhanden sind, wird der Butten angezeigt
[10253]38    if (P.shouldDisplayButton(index)) then
39        button:setProperty("Visible", "True")
40
[12053]41        --wenn genuegend levels bestanden sind, wird er benutzbar
[10253]42        if (P.shouldEnableButton(index)) then
43            button:setProperty("Disabled", "False")
[10250]44        end
[10157]45    end
46end
[10253]47
[12053]48function P.Test(e)
49     orxonox.execute("startMainMenu")
50end
51
[10253]52function P.shouldDisplayButton(index)
53    local size = orxonox.LevelManager:getInstance():getNumberOfCampaignMissions()
54    return index < size
55end
56
57function P.shouldEnableButton(index)
58    return index <= P.getIndexOfLastFinishedMission() + 1
59end
60
61function P.getIndexOfLastFinishedMission()
62    local lastMission = orxonox.LevelManager:getInstance():getLastFinishedCampaignMission()
63    if (lastMission and lastMission ~= "") then
64        local size = orxonox.LevelManager:getInstance():getNumberOfCampaignMissions()
65        local index = 0
66        while index < size do
67            local mission = orxonox.LevelManager:getInstance():getCampaignMission(index)
68            if (mission == lastMission) then 
69                return index
70            end
71            index = index + 1
[10250]72        end
73    end
[10253]74    return -1
[10157]75end
76
[11052]77function P.Mission1Button_clicked(e)
[10253]78    P.loadLevel(P.FindLevel(0))
[10157]79end
80
[11052]81function P.Mission2Button_clicked(e)
[10253]82    P.loadLevel(P.FindLevel(1))
[10157]83end
84
[11052]85function P.Mission3Button_clicked(e)
[10253]86    P.loadLevel(P.FindLevel(2))
[10157]87end
88
[11052]89function P.Mission4Button_clicked(e)
[10253]90    P.loadLevel(P.FindLevel(3))
[10157]91end
92
[11052]93function P.Mission5Button_clicked(e)
94    P.loadLevel(P.FindLevel(4))
95end
96
97function P.Mission6Button_clicked(e)
98    P.loadLevel(P.FindLevel(5))
99end
100
101function P.Mission7Button_clicked(e)
102    P.loadLevel(P.FindLevel(6))
103end
104
105function P.Mission8Button_clicked(e)
106    P.loadLevel(P.FindLevel(7))
107end
108
109function P.Mission9Button_clicked(e)
110    P.loadLevel(P.FindLevel(8))
111end
112
[10253]113function P.loadLevel(level)
[11359]114    orxonox.execute("changeGame " .. level:getXMLFilename())
[10253]115    hideAllMenuSheets()
116end
[10157]117
[10253]118function P.FindLevel(index)
119    local filename = orxonox.LevelManager:getInstance():getCampaignMission(index)
120    local level = nil
121    local templevel = nil
122    local size = orxonox.LevelManager:getInstance():getNumberOfLevels()
123    local index = 0
124    while index < size do
125        templevel = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index)
126        if(templevel:getXMLFilename()==filename) then 
127            level = templevel
128        end
129    index=index+1
[10250]130    end
[10253]131    return level
[10157]132end
133
134function P.CampaignMenuBackButton_clicked(e)
[11359]135    orxonox.execute("startMainMenu")
136    hideMenuSheet("CampaignMenu")
[10157]137end
138
139return P
Note: See TracBrowser for help on using the repository browser.