public void onAbsorb(int velocity){
  mState=STATE_ABSORB;
  velocity=Math.max(MIN_VELOCITY,Math.abs(velocity));
  mStartTime=AnimationUtils.currentAnimationTimeMillis();
  mDuration=0.1f + (velocity * 0.03f);
  mEdgeAlphaStart=0.f;
  mEdgeScaleY=mEdgeScaleYStart=0.f;
  mGlowAlphaStart=0.5f;
  mGlowScaleYStart=0.f;
  mEdgeAlphaFinish=Math.max(0,Math.min(velocity * VELOCITY_EDGE_FACTOR,1));
  mEdgeScaleYFinish=Math.max(HELD_EDGE_SCALE_Y,Math.min(velocity * VELOCITY_EDGE_FACTOR,1.f));
  mGlowScaleYFinish=Math.min(0.025f + (velocity * (velocity / 100) * 0.00015f),1.75f);
  mGlowAlphaFinish=Math.max(mGlowAlphaStart,Math.min(velocity * VELOCITY_GLOW_FACTOR * .00001f,MAX_ALPHA));
}

public void onAbsorb ( int velocity ) { mState = STATE_ABSORB ; velocity = Math . max ( MIN_VELOCITY , Math . abs ( velocity ) ) ; mStartTime = AnimationUtils . currentAnimationTimeMillis ( ) ; mDuration = 0.1f + ( velocity * 0.03f ) ; mEdgeAlphaStart = 0.f ; mEdgeScaleY = mEdgeScaleYStart = 0.f ; mGlowAlphaStart = 0.5f ; mGlowScaleYStart = 0.f ; mEdgeAlphaFinish = Math . max ( 0 , Math . min ( velocity * VELOCITY_EDGE_FACTOR , 1 ) ) ; mEdgeScaleYFinish = Math . max ( HELD_EDGE_SCALE_Y , Math . min ( velocity * VELOCITY_EDGE_FACTOR , 1.f ) ) ; mGlowScaleYFinish = Math . min ( 0.025f + ( velocity * ( velocity / 100 ) * 0.00015f ) , 1.75f ) ; mGlowAlphaFinish = Math . max ( mGlowAlphaStart , Math . min ( velocity * VELOCITY_GLOW_FACTOR * .00001f , MAX_ALPHA ) ) ; }
call when the effect absorbs an impact at the given velocity .
