about summary refs log tree commit diff stats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'main' into panelsStar Rauchenberger2024-07-161-0/+5
|\
| * Merge branch 'tinysphere' into futureStar Rauchenberger2024-05-171-0/+5
| |\
| | * Expand sphere 1 in door shuffle + no ECHStar Rauchenberger2024-04-211-0/+5
| | |
* | | Merge branch 'main' into panelsStar Rauchenberger2024-04-271-0/+88
|\| |
| * | Make progression items resistant to renamesStar Rauchenberger2024-04-221-1/+20
| | |
| * | Merge branch 'sunwarps' into futureStar Rauchenberger2024-04-181-1/+27
| |\ \
| | * | Merge branch 'main' into sunwarpsStar Rauchenberger2024-04-181-3/+3
| | |\|
| | * | Added sunwarp shufflingStar Rauchenberger2024-03-021-1/+16
| | | |
| | * | Fix sunwarp accessStar Rauchenberger2024-02-281-0/+11
| | | |
| | * | Added support for warp items (including sunwarps)Star Rauchenberger2024-01-311-0/+24
| | | |
| * | | Reapply "Added support for warp items (including sunwarps)"Star Rauchenberger2024-04-181-0/+24
| | |/ | |/| | | | | | | This reverts commit 17572f8cd5945536eccffbbe832517d75993c03f.
* / | Implemented panels mode door shuffleStar Rauchenberger2024-04-151-0/+38
|/ /
* / group subdirective was renamedStar Rauchenberger2024-02-021-3/+3
|/
* Track hunt panelsStar Rauchenberger2023-11-171-0/+4
|
* Use static item/location IDsStar Rauchenberger2023-09-111-40/+25
|
* Only necessary checks are sent out nowStar Rauchenberger2023-08-221-1/+26
| | | | i.e. the checks for every individual panel are not sent out if you are not playing panelsanity.
* Gamedata is generated from main AP yamlStar Rauchenberger2023-08-011-34/+181
| | | | We now also include static data that was previously sent in slot data.
* Report achievements to AP using data storage (for tracker)Star Rauchenberger2023-05-211-0/+3
|
* Signs get updated in panel shuffle modeStar Rauchenberger2023-04-191-1/+7
| | | | Palindromes room is fixed now too.
* Implemented color shuffleStar Rauchenberger2023-04-162-0/+51
ne = [CCScene node]; GameMode* layer = [self node]; layer.tag = GAME_LAYER; [scene addChild:layer]; scene.tag = GAME_SCENE; return scene; } - (id)init { self = [super init]; if (nil != self) { isAccelerometerEnabled_ = YES; objects = [[NSMutableSet alloc] init]; cart = [[Cart alloc] initWithSprite:[CCSprite spriteWithFile:@"cart.png"]]; cart.sprite.position = ccp(240, 22); cart.sprite.scale = 2; cart.delegate = self; [self addChild:cart.sprite]; scoreLabel = [CCLabelBMFont labelWithString:@"Score: 0" fntFile:@"helvetica2.fnt"]; scoreLabel.position = ccp(50, 300); [self addChild:scoreLabel]; livesLabel = [CCLabelBMFont labelWithString:@"Lives: 3" fntFile:@"helvetica2.fnt"]; livesLabel.position = ccp(50, 280); [self addChild:livesLabel]; score = 0; lives = 3; pointMultiplier = 1; if ([self canPause]) { CCMenuItemImage* pauseButton = [CCMenuItemImage itemFromNormalImage:@"pause2.png" selectedImage:@"pause.png" target:self selector:@selector(pause)]; CCMenu* pauseMenu = [CCMenu menuWithItems:pauseButton, nil]; [pauseMenu setPosition:ccp(480-8-16, 320-8-16)]; [self addChild:pauseMenu]; } isPaused = NO; } return self; } - (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration { [cart accelerometer:accelerometer didAccelerate:acceleration]; } - (void)onEnterTransitionDidFinish { [super onEnterTransitionDidFinish]; [[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / 60)]; [self schedule:@selector(tick:) interval:1.0f/60.0f]; } - (void)tick:(ccTime)dt { [cart tick]; NSMutableSet* discardedObjects = [NSMutableSet set]; for (FallingObject* object in objects) { if ([object tick]) { [discardedObjects addObject:object]; } } [objects minusSet:discardedObjects]; } - (BOOL)canPause { return YES; } - (void)pause { if (([self canPause]) && (!isPaused)) { isPaused = YES; [self pauseSchedulerAndActions]; shadedLayer = [CCLayerColor layerWithColor:ccc4(0, 0, 0, 127)]; [[[CCDirector sharedDirector] runningScene] addChild:shadedLayer]; pauseLayer = [CCLayer node]; CCLabelBMFont* scoreLabel2 = [CCLabelBMFont labelWithString:@"PAUSE" fntFile:@"helvetica.fnt"]; scoreLabel2.position = ccp(240,90); [pauseLayer addChild:scoreLabel2]; CCMenuItemImage* pauseButton = [CCMenuItemImage itemFromNormalImage:@"pause2.png" selectedImage:@"pause.png" target:self selector:@selector(unpause)]; CCMenu* pauseMenu = [CCMenu menuWithItems:pauseButton, nil]; [pauseMenu setPosition:ccp(480-8-16, 320-8-16)]; [pauseLayer addChild:pauseMenu]; CCMenuItemImage* newgameMenuItem = [CCMenuItemImage itemFromNormalImage:@"back.png" selectedImage:@"back2.png" target:self selector:@selector(mainmenu)]; CCMenu* myMenu = [CCMenu menuWithItems:newgameMenuItem, nil]; myMenu.position = ccp(240, 60); [pauseLayer addChild:myMenu]; [[[CCDirector sharedDirector] runningScene] addChild:pauseLayer]; } } - (void)unpause { if (isPaused) { [[[CCDirector sharedDirector] runningScene] removeChild:shadedLayer cleanup:YES]; [[[CCDirector sharedDirector] runningScene] removeChild:pauseLayer cleanup:YES]; shadedLayer = nil; pauseLayer = nil; [self resumeSchedulerAndActions]; isPaused = NO; } } - (void)mainmenu { UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Cartographic" message:@"Are you sure you want to quit the currently playing game?" delegate:self cancelButtonTitle:@"Yes" otherButtonTitles:@"No", nil]; [alert show]; [alert release]; } - (void)setScore:(int)m_score { score = m_score; if (pointMultiplier > 1) { [scoreLabel setString:[NSString stringWithFormat:@"Score: %d x%d", score, pointMultiplier]]; } else { [scoreLabel setString:[NSString stringWithFormat:@"Score: %d", score]]; } } - (void)setLives:(int)m_lives { lives = m_lives; [livesLabel setString:[NSString stringWithFormat:@"Lives: %d", lives]]; } - (void)setPointMultiplier:(int)m_pointMultiplier { pointMultiplier = m_pointMultiplier; if (pointMultiplier > 1) { [scoreLabel setString:[NSString stringWithFormat:@"Score: %d x%d", score, pointMultiplier]]; } else { [scoreLabel setString:[NSString stringWithFormat:@"Score: %d", score]]; } } - (void)scheduleDelayedAction:(void(^)(void))m_delayedAction delay:(float)delay { delayedAction = Block_copy([m_delayedAction retain]); [self schedule:@selector(runDelayedAction) interval:delay]; } - (void)runDelayedAction { [self unschedule:@selector(runDelayedAction)]; delayedAction(); [delayedAction release]; delayedAction = nil; } - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { if (buttonIndex == 0) { [[CCDirector sharedDirector] replaceScene:[MainMenuLayer scene]]; } } - (void)dealloc { [objects release]; [cart release]; [super dealloc]; } @end