summary refs log tree commit diff stats
path: root/Classes/GameModeManager.m
diff options
context:
space:
mode:
Diffstat (limited to 'Classes/GameModeManager.m')
-rw-r--r--Classes/GameModeManager.m74
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
19static 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