public static Single Evaluate(Object state, ref Boolean error, Axis axis) { Combat.Character character = state as Combat.Character; if (character == null) { error = true; return(0); } Vector2 drawlocation = character.GetDrawLocation() - (Vector2)character.Engine.Camera.Location; switch (axis) { case Axis.X: return(drawlocation.X); case Axis.Y: return(drawlocation.Y); default: error = true; return(0); } }