Unity Freeze When Applying my Script to GameObject

Unity freezes when im applying this script to a Gameobject. I can't see whats wrong with my script, i did a lot of changes, but i can't really see what's wrong. my class name and the script's name is the same.

class playerStats extends MonoBehaviour

{

var Maximum : int;
var Current : int;

var health = playerStats();

function deduct(x : playerStats)
{
    x.Current = x.Current - x.Maximum;
}

function Awake ()
{
    health.Maximum = 100;
    health.Current = 20;
}

function Update ()
{
    if (Input.GetButtonDown("Fire1"))
    {
        deduct(health);
        Debug.Log(health.Current);
    }
}

}

You can't call the constructor (as you do in the sixth line of your code, "var health = playerStats ()") of a MonoBehaviour. MonoBehaviours are, in essence, constructed when you add them as a component to something (That's why they have "Awake" and "Start"). Try taking out that assignment and you won't have any problem. However, I'm guessing then that your script won't function as you intend. It looks like you're trying to create a singleton. You might take a look at the wiki article on that topic. It's in C#, but the process for creating a single instance of some MonoBehaviour should be evident.

As a side note, classes are typically defined starting with a capital letter (ie, "class PlayerStats") to avoid confusion with variables, which should be named starting with a lowercase letter (ie, "var maximum").

You should initialise the health variable in the Awake function rather than the variable declaration.

What happens is an instance of your `playerStats` class gets created when you add it to an object. In the process of creation, it needs to initialize all of the fields. Including the `var health = playerStats();` initializer. This initializer creates a new object of class `playerStats`, which in turn need to initialize. This second object also executes the `var health = playerStats();` line during its creation. That creates yet another object of the same type... etc etc

In effect, you created an endless cycle.