protected override bool OnActivated(ActionResult actionResult, float dt) { buildUpDelay.Empty(); buildUpDelay.Value += dt; stage = 0; SetStage(actionResult); return(true); }
public override void Update(float dt) { if (didCollision) { didCollision = false; damageDelay.Empty(); } damageDelay.Value += dt; base.Update(dt); }
public override void OnCollision(GameResult gameResult, IControlable collider) { if (delay.IsFull) { delay.Empty(); if (rand.NextDouble() > .9 && !(collider is ImpulseWave)) { this.ShipState.Health.Value -= DefaultCollisonDamageToSelf; } base.OnCollision(gameResult, collider); } }
public override void Update(float dt) { base.Update(dt); rechargeDelay.Value += dt; if (rechargeDelay.IsFull) { this.shipState.Energy.Fill(); } if (this.shipState.Energy.IsFull) { rechargeDelay.Empty(); } }
void UpdateLinearMovement(float dt, IControlable host) { if (dt == 0) { return; } ControlInput input = host.CurrentControlInput; if (input[InputAction.MoveForward] && delay.IsFull) { delay.Empty(); angle += MathHelper.PI; } DefaultControlHandler.ApplyThrust(dt, host, Vector2D.FromLengthAndAngle(1, angle), 1); }
public void Play(float dt) { if (Name != null) { if (playDelay == null) { MeleeSound.QueueSound(Name); } else { playDelay.Value += dt; if (playDelay.IsFull) { playDelay.Empty(); MeleeSound.QueueSound(Name); } } } }
public override void ApplyEffect(GameResult gameResult, float dt) { damageDelay.Value += dt; if (damageDelay.IsFull) { damageDelay.Empty(); float number = rand.Next(0, 256); if (16 > number) { this.IsExpired = true; Exhausted = true; } else if (144 > number) { effectSounds.Applied.Play(); attachie.ShipState.Health.Value -= damageAmount; } } }
public void OnAction(GameResult gameResult, float dt) { ShipStateChange cost; ActionResult actionResult = new ActionResult(gameResult); if (activated && source.ShipState.MeetsCost(cost = (-costs.RunningCost * dt)) && AcquireTarget()) { if (OnRunning(actionResult, dt)) { if (actionResult.ApplyCosts) { source.ShipState.Change(cost); } if (actionResult.PlaySound) { actionSounds.Running.Play(dt); } } else { activated = false; } return; } else if (Ready && source.ShipState.MeetsCost(cost = (-costs.ActivationCost)) && AcquireTarget()) { if (OnActivated(actionResult, dt)) { if (actionResult.ResetDelay) { delay.Empty(); } if (actionResult.ApplyCosts) { source.ShipState.Change(cost); } if (actionResult.PlaySound) { actionSounds.Activated.Play(); } if (costs.RunningCost != null) { activated = true; } } return; } else if (activated && costs.DeActivationCost != null && source.ShipState.MeetsCost(cost = (-costs.DeActivationCost)) && AcquireTarget()) { if (OnDeActivated(actionResult, dt)) { if (actionResult.ApplyCosts) { actionSounds.DeActivated.Play(); } if (actionResult.PlaySound) { source.ShipState.Change(cost); } } activated = false; return; } activated = false; }