rpg help

can someone help me I need to change these two classes I found out that I need to change the _jake.exp and these two classes
where in java but I am trying convert them to c# I got some of it its just that _jake.exp that is giving me error so can someone show me
how these two should look and these classes are part of a rpg that I am making.:

using UnityEngine;
using System.Collections;

public class Controller : MonoBehaviour{
	
	public PlayerStats _jake;
	
	
	
	void Start(){
		
		_jake = GetComponent<PlayerStats>();
		_jake.level = 3;
		_jake.name = "Jake";
		_jake.STR = 50;
        _jake.DEX = 55;
        _jake.DEF = 50;
        _jake.vital = 100;
        _jake.Magic = 60;
        _jake.luck = 45;
        _jake.Speed = 56;
        _jake.Agility = 46;
        _jake.exp = 0;

			
	}
	
}

public class PlayerStats : Controller {
	
	public int level;
	public string name;
	public Stat Hp = new Stat();
	public Stat Mp = new Stat();
	
	
	public int STR;
	public int DEX;
	public int DEF;
	public int vital;
	public int Magic;
	public int luck;
	public int Speed;
	public int Agility;
	
	public int melee;
	public int ranged;
	public int MagA;
	public int MagD;
	public float active;
	
	public Stat exp = new Stat();
	
	public void addexp(int ex){
		
		exp.Cur += ex;
		while(exp.Cur >= exp.Max  level < 99){
			exp.Cur -= exp.Max;
			exp.Max = level *(level+1)* 500;
			level++;
			upstats();
		}
	
	}
	
	void upstats(){
		STR++;
		DEX++;
		DEF++;
		vital++;
		Magic++;
		luck++;
		Speed++;
		Agility++;
	
		
		melee =(level*7)+STR;
		ranged =(level*7)+DEX;
		DEF =(level*2)+ Agility;
		MagA =(level*7)+ Magic;
		MagD =(level*2)+ luck;
		
		active =20+((Speed * level)/1500);
		
		Hp.Max =((level * 5)+ vital)*10;
		Hp.Cur = Hp.Max;
		Mp.Max =((level * 5)+ Magic)*10;
		Mp.Cur = Mp.Max;
		
	}
	
	    public class Stat{
		public int Cur;
		public int Max;
		
	}		
	
		public PlayerStats(int level,string name,int STR,int DEX,int DEF,int vital,int Magic,int luck,int speed,int Agility,int exp){
		this.level = 1;
		this.name = name;
		this.STR = STR;
		this.DEF = DEF;
		this.vital = vital;
		this.Magic = Magic;
		this.luck = luck;
		this.Speed = speed;
		this.Agility = Agility;
		addexp(exp); 
	}	
}

can some one show me what I need to change here

What kind of error message are you getting on which line(s) is/are the error(s) occuring?

Edit: Looking over this now, I see in your Start function that you set _jake.exp = 0;… but you declare _jake.exp as a Stat class, not an integer. Then, looking at the Stat class, you can see the variable Cur and Max. Instead of setting to 0, set it’s Cur value to zero:

_jake.exp.Cur = 0;

this is the error Cannot implicitly convert type int' to PlayerStats.Stat’
the two classes were in java but I am trying to convert them to c#
cur means current value and exp starts at 0 when you start the game and you gain exp by battles
and in the stats class do I also need to this: public int exp in the stat class?

No, you declared _jake.exp as a Stat class, which gave it the attribute Cur (which you stated means its current value).

In your Start function, you are trying to set _jake.exp to an integer value (0), when it is not an integer (it is a Stat class object) << this is where your error comes in.

Instead you need to set it’s ‘current value’ variable (which is an integer) to 0 at the start of the game/level:

function Start(){

_jake.exp.Cur = 0;

}

ok I did what you told me but when I start the game I get a new error witch is this:NullReferenceException: Object reference not set to an instance of an object Controller.Start () (at Assets/scripts/Controller.cs:13) and The Stats for the Player don’t show up in the Inspector so do I put my controller class
on the main Player or the camera?(note this rpg style is simuler to final fantasy 7 style.) and thank you
for helping me.any help would be great