// Use this for initialization void Start() { marioGO = GameObject.Find("Little Mario"); superMarioGO = GameObject.Find("Super Mario"); duckingMarioGO = GameObject.Find("Ducking Mario"); ssMarioGO = GameObject.Find("SS Mario"); uiManager = UIManager.uiManager; rb = gameObject.GetComponent <Rigidbody2D>(); rb.freezeRotation = true; //Initialize Mario forms littleMarioForm = new MarioForm(this, marioGO); superMarioForm = new SuperMarioForm(this, superMarioGO, littleMarioForm); ssMarioForm = new SSMarioForm(this, ssMarioGO, superMarioForm); //Set initial form and action state myState = new Walking(this); marioForm = littleMarioForm; marioForm.Enter(); //Always start in Little Mario duckingMarioGO.SetActive(false); superMarioGO.SetActive(false); ssMarioGO.SetActive(false); }
//Transition to the next Mario form. Called by the Item with which the //player collides, with the next Mario form as the argument. public void Grow(MarioForm nextMario) { marioForm = marioForm.Exit(nextMario); marioForm.Enter(); }