def METHOD_NAME(self, x): 
    x_max = x['x'] + np.square(x['v'])/(-self.parameters['g']*2) # Use speed and position to estimate maximum height
    return {
        'falling': np.maximum(x['v']/self.parameters['throwing_speed'],0),  # Throwing speed is max speed
        'impact': np.maximum(x['x']/x_max,0) if x['v'] < 0 else 1  # 1 until falling begins, then it's fraction of height
    }