void Start()
 {
     m_currentState = HeroineState.Idle;
     m_inputController = InputFactory.GetCurrentInput ();
     m_animationStrategy = new AnimationStrategy (GetComponentInChildren<Animator> ());
     m_animationController.Setup (this);
     m_attackStrategy.Setup (this);
     m_movementController.Setup (this);
 }
        public void SetState(HeroineState state)
        {
            AttackAction action;

            if (m_attacksDictionary.TryGetValue (state, out action))
            {
                m_currentAction = action;
            }
        }
        public void OnAnimation(AnimationParameter parameter)
        {
            m_animationStrategy.SetParameter (parameter);

            switch (parameter)
            {
                case AnimationParameter.Idle:
                    m_currentState = HeroineState.Idle;
                    break;
                case AnimationParameter.Walk:
                    m_currentState = HeroineState.Walk;
                    break;
                default:
                    break;
            }

            print ("OnAnimation: " + m_currentState);
        }