//
//  MyScene.m
//  SKG
//
//  Created by pgAgent on 20/09/2014.
//  Copyright (c) 2014 RJM Programming. All rights reserved.
//

#import "MyScene.h"

@implementation MyScene

-(id)initWithSize:(CGSize)size {    
    if (self = [super initWithSize:size]) {
        /* Setup your scene here */
        
        self.backgroundColor = [SKColor colorWithRed:0.55 green:0.15 blue:0.03 alpha:1.0];
        
        SKLabelNode *myLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
    
        myLabel.text = @"Hello, World ... Welcome to SpriteKit Game!";
        myLabel.fontSize = 40;
        myLabel.position = CGPointMake(CGRectGetMidX(self.frame),
                                       CGRectGetMidY(self.frame));
        
        [self addChild:myLabel];
    }
    return self;
}

-(void)mouseDown:(NSEvent *)theEvent {
     /* Called when a mouse click occurs */
    int r, rrx, rry, kk = 0;
    CGPoint location = [theEvent locationInNode:self];
    char *ilist[8] = {"Spaceship", "onestar", "twostar", "threestar", "fourstar", "fivestar", "sixstar", "sevenstar"};
    NSMutableArray *randArray = [NSMutableArray new];
    for (int k = 0; k < 8; k++) {
        r = arc4random() % 8;
        if([randArray containsObject:[NSString stringWithFormat:@"%s", ilist[r]]]){
            k--;
        }else{
            if (r == 0) kk = k;
            [randArray addObject:[NSString stringWithFormat:@"%s", ilist[r]]];
        }
    }
    r = arc4random() % 8;
    rrx = (r - arc4random() % 8);
    rry = (r - arc4random() % 8);
    
    SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:randArray[r]];
    
    sprite.position = location;
    sprite.scale = 0.2;
    
    SKAction *action;
    if (r == kk) {
        sprite.scale = 0.5;
        action = [SKAction rotateByAngle:-M_PI duration:1];
    } else {
        CGVector negDelta = CGVectorMake(rrx,rry);
        action = [SKAction moveBy: negDelta duration: 1];
    }
    
    [sprite runAction:[SKAction repeatActionForever:action]];
    
    [self addChild:sprite];
}

-(void)update:(CFTimeInterval)currentTime {
    /* Called before each frame is rendered */
}

@end
