string GetArrowStateString(IArrow arrow)
        {
            ArrowStateEngine.IState state = arrow.GetCurrentState();
            string        result          = state.GetName();
            IArrowReserve reserve         = arrowReserveAdaptor.GetArrowReserve();

            if (!(state is ArrowStateEngine.NockedState))
            {
                if (state is ArrowStateEngine.FlightState)
                {
                    result += ": " + reserve.GetIndexInFlight(arrow);
                }
                else
                {
                    result += ": " + reserve.GetIndexInReserve(arrow);
                }
            }
            return(result);
        }