public override void DoUpdate(GameTime gameTime) { if (TimeAlive > 10) { IsAlive = false; } else { //Todo: slowdown with air friction //todo: change damage based on speed if (AffectedByGravity) { Speed += FightingZone.GravityVector; } if (Speed != Vector2.Zero && ActiveProjectileInfo.RotatationAllowed) { Angle = (float)Math.Atan2(Speed.Y, Speed.X); } Owner.SetAttackContext(this, Owner, Angle, Collision.ListCollisionPolygon[0].Center); if (ProjectileAnimation != null) { ProjectileAnimation.Angle = Angle; ProjectileAnimation.Update(gameTime); } if (TrailAnimation != null) { TrailAnimation.Angle = Angle; TrailAnimation.Update(gameTime); } } }
public override void Update(GameTime gameTime) { if (TeleportAnimation != null) { TeleportAnimation.Update(gameTime); } if (Owner.IsOfflineOrServer) { PolygonCollisionResult FinalCollisionResult = new PolygonCollisionResult(Vector2.Zero, -1); foreach (Player ActivePlayer in Map.ListAllPlayer) { foreach (Polygon EnemyCollision in ActivePlayer.InGameRobot.Collision.ListCollisionPolygon) { PolygonCollisionResult CollisionResult = Polygon.PolygonCollisionSAT(TeleportPolygon, EnemyCollision, ActivePlayer.InGameRobot.Speed); if (CollisionResult.Distance >= 0 && CollisionResult.Distance > FinalCollisionResult.Distance) { Owner.PrepareNextLevel(_NextLevelPath); HasEnded = true; } } } } }
public void Update() { animation.Update(); Duration--; if (Duration == 0) { Game.World.Remove(this); Game.World.Add(new FadeOut(Game.Restart)); } }
public void Update() { Animation.Update(); duration--; if (duration == 0) { World.Remove(this); return; } }
public override void Update(GameTime gameTime) { if (GameOverAnimation.ActiveAnimation.ActiveKeyFrame + 1 < GameOverAnimation.ActiveAnimation.LoopEnd) { GameOverAnimation.Update(gameTime); } if (InputHelper.InputConfirmPressed()) { RemoveAllScreens(); PushScreen(new MainMenu()); } }
public void Update() { Animation.Update(); if ( X > ((1000 + World.SPACE_BETWEEN_THINGS) * 11) + 100 && Y <= 3000 + World.SPACE_BETWEEN_THINGS && VerticalSpeed == 0) { HorizontalSpeed = -250; } else { HorizontalSpeed = 0; } UpdateHandler.Update(); }
public override void Update(GameTime gameTime) { TeleportAnimation.Update(gameTime); PolygonCollisionResult FinalCollisionResult = new PolygonCollisionResult(Vector2.Zero, -1); foreach (Player ActivePlayer in Map.ListAllPlayer) { foreach (Polygon EnemyCollision in ActivePlayer.InGameRobot.Collision.ListCollisionPolygon) { PolygonCollisionResult CollisionResult = Polygon.PolygonCollisionSAT(TeleportPolygon, EnemyCollision, ActivePlayer.InGameRobot.Speed); if (CollisionResult.Distance >= 0 && CollisionResult.Distance > FinalCollisionResult.Distance) { ActivePlayer.InGameRobot.Speed += _TeleportSpeed; ActivePlayer.InGameRobot.Move(_TeleportOffset); Owner.ChangeRobotLayer(ActivePlayer.InGameRobot, _LayerIndex); } } } }
public override void Update(GameTime gameTime) { JumpPadAnimation.Update(gameTime); foreach (Player ActivePlayer in Map.ListAllPlayer) { PolygonCollisionResult FinalCollisionResult = new PolygonCollisionResult(Vector2.Zero, -1); foreach (Polygon EnemyCollision in ActivePlayer.InGameRobot.Collision.ListCollisionPolygon) { PolygonCollisionResult CollisionResult = Polygon.PolygonCollisionSAT(JumpPadPolygon, EnemyCollision, ActivePlayer.InGameRobot.Speed); if (FinalCollisionResult.Distance < 0 || (CollisionResult.Distance >= 0 && CollisionResult.Distance > FinalCollisionResult.Distance)) { FinalCollisionResult = CollisionResult; } } if (FinalCollisionResult.Distance >= 0) { ActivePlayer.InGameRobot.Speed.Y = -_JumpSpeed; } } }
public override void Update(GameTime gameTime) { JumpPadAnimation.Update(gameTime); foreach (RobotAnimation ActiveRobot in Owner.DicRobot.Values) { PolygonCollisionResult FinalCollisionResult = new PolygonCollisionResult(Vector2.Zero, -1); foreach (CollisionPolygon EnemyCollision in ActiveRobot.ListCollisionPolygon) { PolygonCollisionResult CollisionResult = Polygon.PolygonCollisionSAT(JumpPadPolygon, EnemyCollision.ActivePolygon, ActiveRobot.Speed); if (FinalCollisionResult.Distance < 0 || (CollisionResult.Distance >= 0 && CollisionResult.Distance > FinalCollisionResult.Distance)) { FinalCollisionResult = CollisionResult; } } if (FinalCollisionResult.Distance >= 0) { ActiveRobot.Speed.Y = -_JumpSpeed; } } }
public void Update(GameTime gameTime) { lock (ListDelayedOnlineCommand) { foreach (DelayedExecutableOnlineScript ActiveCommand in ListDelayedOnlineCommand) { ActiveCommand.ExecuteOnMainThread(); } ListDelayedOnlineCommand.Clear(); } for (int A = ListVisualEffects.Count - 1; A >= 0; --A) { SimpleAnimation ActiveVisualEffect = ListVisualEffects[A]; ActiveVisualEffect.Update(gameTime); if (ActiveVisualEffect.HasEnded) { ListVisualEffects.RemoveAt(A); } } for (int A = 0; A < ListAttackCollisionBox.Count; A++) { AttackBox ActiveAttackBox = (AttackBox)ListAttackCollisionBox[A]; if (!ActiveAttackBox.IsAlive) { continue; } ActiveAttackBox.Update(gameTime); foreach (KeyValuePair <uint, RobotAnimation> ActiveRobot in DicRobot) { UpdateAttackCollisionWithRobot(gameTime, ActiveAttackBox, ActiveRobot.Value); } UpdateAttackCollisionWithWorld(ActiveAttackBox); ActiveAttackBox.Move(gameTime); } for (int A = ListImages.Count - 1; A >= 0; --A) { SimpleAnimation ActiveAnimation = ListImages[A]; ActiveAnimation.Update(gameTime); if (ActiveAnimation.HasEnded) { ListImages.RemoveAt(A); } } for (int P = ListProp.Count - 1; P >= 0; --P) { if (ListProp[P].HasEnded) { ListProp.RemoveAt(P); } else { ListProp[P].Update(gameTime); } } #region Robot Update foreach (RobotAnimation ActiveRobot in DicRobot.Values) { if (!ActiveRobot.IsUpdated) { continue; } if (ActiveRobot.RobotAI != null && !Owner.UsePreview) { ActiveRobot.RobotAI.UpdateStep(gameTime); } ActiveRobot.Update(gameTime, DicRobot); } foreach (RobotAnimation RobotToAdd in ListRobotToAdd) { SpawnRobot(RobotToAdd); } ListRobotToAdd.Clear(); for (int R = ListRobotToRemove.Count - 1; R >= 0; R--) { DicRobot.Remove(ListRobotToRemove[R]); ListRobotToRemove.RemoveAt(R); if (ListRobotToRemove.Count == 0) { Owner.CheckIfAllEnemiesAreDead(); } } #endregion }