def METHOD_NAME(self, x):
    # Using class name instead of self allows the class to be subclassed
    z = LSTMThrownObject.output(self, x)
    # Logic from ThrownObject.event_state, using output instead of state
    self.max_x = max(self.max_x, z['x'])  # Maximum altitude
    return {
        'falling': max(z['v']/self.parameters['throwing_speed'],0),  # Throwing speed is max speed
        'impact': max(z['x']/self.max_x,0)  # 1 until falling begins, then it's fraction of height
    }