diff options
Diffstat (limited to 'Classes/GameModeManager.m')
-rw-r--r-- | Classes/GameModeManager.m | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/Classes/GameModeManager.m b/Classes/GameModeManager.m new file mode 100644 index 0000000..5a6e109 --- /dev/null +++ b/Classes/GameModeManager.m | |||
@@ -0,0 +1,74 @@ | |||
1 | // | ||
2 | // GameModeManager.m | ||
3 | // Cartographic | ||
4 | // | ||
5 | // Created by Starla Insigna on 11/29/11. | ||
6 | // Copyright (c) 2011 Four Island. All rights reserved. | ||
7 | // | ||
8 | |||
9 | #import "GameModeManager.h" | ||
10 | #import "GameModeInfo.h" | ||
11 | #import "TutorialMode.h" | ||
12 | #import "ClassicGameMode.h" | ||
13 | #import "JumpGameMode.h" | ||
14 | |||
15 | @implementation GameModeManager | ||
16 | |||
17 | @synthesize gameModes; | ||
18 | |||
19 | static GameModeManager* sharedInstance = nil; | ||
20 | |||
21 | + (GameModeManager*)sharedInstance | ||
22 | { | ||
23 | if (sharedInstance == nil) | ||
24 | { | ||
25 | sharedInstance = [[GameModeManager alloc] init]; | ||
26 | } | ||
27 | |||
28 | return sharedInstance; | ||
29 | } | ||
30 | |||
31 | - (id)init | ||
32 | { | ||
33 | self = [super init]; | ||
34 | |||
35 | if (nil != self) | ||
36 | { | ||
37 | gameModes = [[NSArray alloc] initWithObjects: | ||
38 | [TutorialMode info], | ||
39 | [ClassicGameMode info], | ||
40 | [JumpGameMode info], | ||
41 | nil]; | ||
42 | |||
43 | NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; | ||
44 | stars = [defaults integerForKey:@"stars"]; | ||
45 | } | ||
46 | |||
47 | return self; | ||
48 | } | ||
49 | |||
50 | - (void)setStars:(int)m_stars | ||
51 | { | ||
52 | if (stars != m_stars) | ||
53 | { | ||
54 | stars = m_stars; | ||
55 | |||
56 | NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; | ||
57 | [defaults setInteger:m_stars forKey:@"stars"]; | ||
58 | |||
59 | for (GameModeInfo* gameMode in gameModes) | ||
60 | { | ||
61 | if ((!gameMode.unlocked) && (stars >= gameMode.starsToUnlock)) | ||
62 | { | ||
63 | [gameMode unlock]; | ||
64 | } | ||
65 | } | ||
66 | } | ||
67 | } | ||
68 | |||
69 | - (int)stars | ||
70 | { | ||
71 | return stars; | ||
72 | } | ||
73 | |||
74 | @end | ||