Pull request to master

Hi, I broke down these into smaller methods:

-(void)expireLifeTimerWithEnemyDefeated:(BOOL)boolean
{
    [self invalidateTimer];
    if(boolean == YES)
    {
        [self.enemyView changeImageToCaught];
        [self.delegate enemyWasDefeated];
    }
    if(boolean == NO)
    {
        [self.delegate enemyWasNotDefeated];
    }
    
    [self animateEnemySpawn];
}

-(void)animateEnemySpawn
{
    [UIView animateWithDuration:APPEAR_DURATION
                     animations:^{
                         self.enemyView.alpha = NOT_VISIBLE;
                     }
                     completion:^(BOOL finished)
     {
         [self.enemyView changeImageToNormal];
         [self respawnEnemyAtRandomPoint];
         
         [UIView animateWithDuration:DISAPPEAR_DURATION
                          animations:^{
                              self.enemyView.alpha = VISIBLE;
                          }
                          completion:^(BOOL finished)
          {
              [self startLifeTimerWithIndicator];
          }];
     }];
}

-(void)respawnEnemyAtRandomPoint
{
    self.currentFrame = _enemyView.frame;
    _currentFrame.origin = [self getRandomPointInRandomQuadrant];
    self.enemyView.frame = _currentFrame;
}


And then startLifeTimerWithIndicator is just start life timer (the method that starts the enemy clock) with a delegate of did appear self (which makes the green arrows appear).

-(void)startLifeTimerWithIndicator
{
    if(_isEnemyPermanentlyExpired == NO)
    {
        [self startLifeTimer];
        [self.delegate enemyDidAppear:self];
    }
}