public override void Update()
{
if(((PlayState)G.state).state != State.Panning) {
updateAnimation();
updatePhysics();
updateHeading();
}
parryTimer += G.elapsed;
rightTriggerWasHeld = rightTriggerHeld;
if(G.input.Triggers(playerIndex).Right > 0.3) {
rightTriggerHeld = true;
} else {
rightTriggerHeld = false;
}
leftTriggerWasHeld = leftTriggerHeld;
if(G.input.Triggers(playerIndex).Left > 0.3) {
leftTriggerHeld = true;
} else {
leftTriggerHeld = false;
}
if(this.ball != null) {
if(charge > 0) {
Mode = SpriteMode.Charge;
} else {
Mode = SpriteMode.Hold;
}
ball.x = x + BALL_OFFSEET_X;
ball.y = y + BALL_OFFSEET_Y;
if(rightTriggerHeld && !parrying) {
retical.visible = true;
rightTriggerHeld = true;
maxSpeed = CHARGE_RUN_SPEED;
if(charge < maxCharge)
charge += chargeAmount * G.elapsed;
charge = MathHelper.Clamp(charge, minCharge, maxCharge);
} else {
retical.visible = false;
charge = MathHelper.Clamp(charge, minCharge, maxCharge);
if(rightTriggerWasHeld) FlingBall();
rightTriggerHeld = false;
maxSpeed = MAX_RUN_SPEED;
charge = 0;
}
if(G.input.JustPressed(playerIndex, Buttons.A) ||
G.input.JustPressed(playerIndex, Buttons.LeftShoulder)) {
dropBall();
}
} else {
Mode = SpriteMode.Neutral;
charge = 0;
}
if(!leftTriggerWasHeld && leftTriggerHeld) {
parry();
}
if(throwing || hurt || parrying) Mode = SpriteMode.Misc;
if(parrying && ball != null) {
sheetOffset.X = characterOffset.X + (graphicWidth * 2);
} else {
sheetOffset.X = characterOffset.X;
}
base.Update();
}