Life is Strange: Before the storm episode 2 (Brave New World)

Following on from, and topping, a previous instalment of Life Is Strange is always a mean feat to accomplish. However, as with all times previously, the creators have done it again with Before the Storm episode 2.

Chloe’s path is cracking

In the opening of episode 1, Chloe Price was still pretty innocent – albeit sneaking out to secret gigs and smoking the odd bit of weed. So it was interesting to see how she is starting to walk that bad path we know her for during episode 2. Through dealing with Frank Bowers and ultimately breaking and entering a student’s dorm room for him, Chloe’s path starts to crack as it leads her forward into her not too distant future.

The choices I found myself making with Chloe had devastating effects on other characters too. In fact I found myself asking “What do I think Chloe would do?” as opposed to “What would I do?”. I was only interested in trying to secure the future Rachel and Chloe want together, and I was willing to let others hurt for it.

The relationship deepens

The episodes of the game are each set within one full day, so time is limited in developing such a close bond. But for me the creators do this with ease through such great use of the scenes that play out. Every interaction, each word spoken, serves to at the very least weave these two characters even closer together.

Chloe’s and Rachel’s relationship is taken to a whole other level through what is perhaps one of the most beautiful scenes I have ever watched in a game. The scene in question involves the reenactment of Shakespeare’s The Tempest and truly had me close to tears experiencing it.

Kylie Brown and Rhianna DeVries, who play Rachel and Chloe respectively, absolutely nail their performance throughout this game. A lot of different people go into the making of Life is Strange: Before the Storm – into what makes it great. However, I feel that Kylie and Rhianna carry much of the emotional weight of the story and do so with such grace using their voices alone.

An ending that takes your breath

Emotional, cliff-hanger endings are pretty much par for the course in Arcadia Bay. And I’m happy to say episode 2 delivers as I would expect. The only thing with this, is that it is such a great ending that I really don’t want to wait another two months or so for it.

During what could well be one of the most uncomfortable dinners of either Rachel or Chloe’s life, the cliffhanger ending is revealed and left me completely slack-jawed yet again.

With episode 1 I felt like I needed a break after the explosive ending that occurred. But with episode 2, with it’s revelation right at the end, it only made me want to immediately know more.

A raging fire

Perhaps what I find most moving of all, is related to the fact that we know the ultimate destinies of these characters. This is why I find it very hard to hate David; and why I can’t feel too sorry for Nathan when his Dad is giving him grief. But most of all, it’s why I can’t help feeling almost heart-broken when Rachel and Chloe confess their feelings; their future plans; and share their first kiss. Much like Laura Palmer in Twin Peaks: Fire Walk With Me, these girls’ relationship is a raging fire close to being snuffed out.

How to easily set a custom redirect in Laravel form requests

In Laravel you can create custom request classes where you can house the validation for any given route. If that validation then fails, Laravel’s default action is to redirect the visitor back to the previous page. This is commonly used for when a form is submitted incorrectly – The visitor will be redirected back to said form to correct the errors. Sometimes, however, you may wish to redirect the visitor to a different location altogether.

TL;DR (Too long; didn’t read)

At the top of your custom request class, add one of the following protected properties and give it your required value. I have given example values to demonstrate:

protected $redirect = '/custom-page'; // Any URL or path
protected $redirectRoute = 'pages.custom-page'; // The named route of the page
protected $redirectAction = 'PagesController@customPage'; // The controller action to use.

This will then redirect your visitor to that location should they fail any of the validation checks within your custom form request class.

Explaination

When you create a request class through the Laravel artisan command, it will create one that extends the base Laravel class Illuminate\Foundation\Http\FormRequest. Within this class the three protected properties listed above are initialised from line 33, but not set to a value.

Then further down the page of the base class, on line 127 at the time of writing, there is a protected method called getRedirectUrl. This method performs a series of checks for whether or not any of the three redirect properties have actually been set. The first one it finds to be set by you, in the order given above, is the one that will be used as the custom redirect location.

Here is that getRedirectUrl method for your convenience:

/**
* Get the URL to redirect to on a validation error.
*
* @return string
*/
protected function getRedirectUrl()
{
    $url = $this->redirector->getUrlGenerator();

    if ($this->redirect) {
        return $url->to($this->redirect);
    } elseif ($this->redirectRoute) {
        return $url->route($this->redirectRoute);
    } elseif ($this->redirectAction) {
        return $url->action($this->redirectAction);
    }

    return $url->previous();
}

Do you have any extra tips to add to this? Let me know in the comments below.

Thanks.