public void Update(UpdateEvent evt) { foreach (MuzzleFlashEffect effect in MuzzleFlashEffects) effect.Update(evt); MuzzleFlashEffects.RemoveWhere(x => !x.Alive); }
public void Update(UpdateEvent evt) { foreach (DecayableBillboard billboard in DecayableBillboardSet) billboard.Update(evt); DecayableBillboardSet.RemoveWhere(x => !x.Alive); }
protected override void OnUpdate(UpdateEvent evt) { Vector3 previousPosition = Position; base.OnUpdate(evt); if (!Alive) return; Emitter.Position = Position; // No ray created if not moved if (previousPosition == Position) return; Vector3 delta = Position - previousPosition; Ray ray = new Ray(previousPosition, delta); float? intersection; BodyCollider collider; Character enemy = World.FindEnemy(Creator, ray, out collider, out intersection); // No enemies intersect with ray. Check buildings. if (!intersection.HasValue) intersection = World.GetNearestIntersectingBuilding(ray); if (!intersection.HasValue || intersection.Value > delta.Length) return; Alive = false; if (enemy != null) enemy.ReceiveDamage(BaseDamage * collider.DamageMultiplier); }
protected override void OnUpdate(UpdateEvent evt) { base.OnUpdate(evt); Player.Update(evt); BotManager.Update(evt); Application.CenterCursor(); }
protected override void OnUpdate(UpdateEvent evt) { base.OnUpdate(evt); if (WeaponPositionReferenceNode != null) WeaponSceneNode.Position = WeaponPositionReferenceNode.ConvertLocalToWorldPosition(WeaponPositionReferencePosition); }
public void AimTowards(UpdateEvent evt, Vector3 target) { float targetYaw = MathHelper.GetYaw(Character.Position, target); Character.Yaw = MathHelper.LerpAngle(Character.Yaw, targetYaw, evt.ElapsedTime * GameConstants.BotAngleLerpAmount); float targetPitch = MathHelper.GetPitch(Character.EyeNode.GetWorldPosition(), target); Character.EyePitch = MathHelper.LerpAngle(Character.EyePitch, targetPitch, evt.ElapsedTime * GameConstants.BotAngleLerpAmount); }
public override void Update(UpdateEvent evt) { ElapsedDelay += evt.ElapsedTime; BotController.Character.Stop(); BotController.AimTowards(evt, VisibleCollider.PrimitiveNode.GetCenter(true)); }
public override void Update(UpdateEvent evt) { bool approached = BotController.WalkTo(evt, Target.Position); if (!approached) return; Target = Target.Next; }
public override Vector3 GetVelocityInfluence(UpdateEvent evt) { if (!Walking || Direction == Vector3.ZERO) return Vector3.ZERO; Vector3 delta = Direction.TransformDelta(ActionPerformer.Position, Vector3.UNIT_SCALE, ActionPerformer.Orientation); return delta.Mask(true, false, true).NormalisedCopy * Velocity; }
protected override void OnUpdate(UpdateEvent evt) { base.OnUpdate(evt); Position += Velocity * evt.ElapsedTime; RemainingTime -= evt.ElapsedTime; if (RemainingTime <= 0) Alive = false; }
public void Update(UpdateEvent evt) { // There is a bug where when an emitter is removed, reference emitters are once again enabled foreach (ParticleEmitter emitter in ReferenceEmitters) emitter.Enabled = false; foreach (ParticleEmitterCluster cluster in ClusterSet) cluster.Update(evt); ClusterSet.RemoveWhere(x => !x.Alive); }
public void Update(UpdateEvent evt) { Root.ResetAnimation(); for (int i = 0; i < Animations.Count; ++i) { if (!AnimationStates[i].Enabled) continue; Root.AddAnimation(Animations[i], AnimationStates[i]); } }
public void Update(UpdateEvent evt) { if (TimeToLive <= 0) return; TimeToLive -= evt.ElapsedTime; if (TimeToLive <= 0) { Alive = false; BillboardSet.RemoveBillboard(Billboard); } }
protected override void OnUpdate(UpdateEvent evt) { base.OnUpdate(evt); if (TimeUntilTeleport <= 0) return; TimeUntilTeleport -= evt.ElapsedTime; if (TimeUntilTeleport > 0) return; ActionPerformer.Position = Destination; ActionPerformer.UnlockMovement(); }
public override void Update(UpdateEvent evt) { bool approached = BotController.WalkTo(evt, Destination); if (!approached) return; Vector3[] possibleNextNodes = BotController.Character.World.GetAdjacentVertices(Destination); // Avoid walking back to where we come from if possible. if (possibleNextNodes.Length == 1) Destination = possibleNextNodes[0]; else { possibleNextNodes.Shuffle(); Vector3 next = possibleNextNodes.First(x => !x.IsApproximately(PreviousDestination, 0.0001f)); PreviousDestination = Destination; Destination = next; } }
public void Update(UpdateEvent evt) { foreach (var entry in AnimationMapper) { if (entry.Value.Length == 0) continue; if (entry.Key == CurrentAnimation) { float weight = MathHelper.Lerp(entry.Value[0].Weight, 1, evt.ElapsedTime * GameConstants.AnimationFadeLerpAmount); foreach (AnimationState animationState in entry.Value) { animationState.Weight = weight; animationState.Enabled = true; animationState.AddTime(evt.ElapsedTime); } } else if (entry.Value.Any(animationState => animationState.Enabled)) { float weight = MathHelper.Lerp(entry.Value[0].Weight, 0, evt.ElapsedTime * GameConstants.AnimationFadeLerpAmount); if (weight < 0.05f && weight > 0) { foreach (AnimationState animationState in entry.Value) { animationState.Weight = 0; animationState.TimePosition = 0; animationState.Enabled = false; } } else { foreach (AnimationState animationState in entry.Value) { animationState.Weight = weight; animationState.AddTime(evt.ElapsedTime); } } } } }
public void Update(UpdateEvent evt) { if (!Billboard.Alive) Dispose(); }
protected override void OnUpdate(UpdateEvent evt) { Recoil = Math.Max(0, Recoil - evt.ElapsedTime * GameConstants.RecoilReductionFactor); Velocity = WalkHandler.GetVelocityInfluence(evt) + JumpHandler.GetVelocityInfluence(evt); MultiAttemptsTranslate(evt.ElapsedTime); if (ActiveWeaponHandler != null) ActiveWeaponHandler.Update(evt); foreach (SpecialMoveHandler handler in SpecialMoveHandlers) { if (handler != null) handler.Update(evt); } if (CharacterNode.Position.y < 0) CharacterNode.Position = CharacterNode.Position.Mask(true, false, true); Airborne = IsAirborne(); foreach (AnimationManager manager in AnimationManagerMapper.Values) manager.Update(evt); BodyCollisionTree.Update(evt); // Performed after animation update so that position of the weapon // matches the animation. Model.Update(evt); }
private void Update(UpdateEvent evt) { ManageScheduledStateEvent(evt); if (StateStack.Count > 0) StateStack.Peek().Update(evt); }
private void ManageScheduledStateEvent(UpdateEvent evt) { if (PopStateCount > 0) { while (PopStateCount > 0) { StateStack.Pop().Dispose(); PopStateCount--; } if (StateStack.Count > 0) StateStack.Peek().Resume(evt); } if (NewStateScheduled != null) { if (StateStack.Count > 0) StateStack.Peek().Pause(evt); StateStack.Push(NewStateScheduled); NewStateScheduled.ZOrder = (ushort)StateStack.Count; NewStateScheduled.Resume(evt); NewStateScheduled = null; } }
protected abstract void OnUpdate(UpdateEvent evt);
protected virtual void OnResume(UpdateEvent evt) { }
public void Update(UpdateEvent evt) { OnUpdate(evt); }
public void Resume(UpdateEvent evt) { OnResume(evt); OnUserInterfaceCreate(); IsUserInterfaceInitialized = true; Application.CursorVisible = CursorVisible; }
public abstract void Update(UpdateEvent evt);
protected override void OnResume(UpdateEvent evt) { base.OnResume(evt); }
public void Update(UpdateEvent evt) { if (!Eternal) TimeToLive = Math.Max(0, TimeToLive - evt.ElapsedTime); Dispose(); }
protected virtual void OnPause(UpdateEvent evt) { }
public void Update(UpdateEvent evt) { foreach (BillboardSystem billboardSystem in BillboardSystemMapper.Values) billboardSystem.Update(evt); }
public void Pause(UpdateEvent evt) { OnPause(evt); DisposeUserInterface(); }