private void SetFloatingCombatTextPlayerHealing(Message message) { PlayerHealing.Visibility = System.Windows.Visibility.Visible; PlayerHealing.Text = "+" + message.Text; var top = GetPoint(message.Y - 50); var left = GetPoint(message.X); Canvas.SetTop(PlayerHealing, top); Canvas.SetLeft(PlayerHealing, left); }
private void SetFloatingCombatTextPlayerTakeDamage(Message message) { EnemyDamageDone.Visibility = System.Windows.Visibility.Visible; EnemyDamageDone.Text = "-" + message.Text; var top = GetPoint(message.Y + 30); var left = GetPoint(message.X); if (message.IsCritical) { EnemyDamageDone.FontSize = 30; top -= 30; } else { EnemyDamageDone.FontSize = 15; } Canvas.SetTop(EnemyDamageDone, top); Canvas.SetLeft(EnemyDamageDone, left); }
private void SetAbilityCooldown() { foreach (var ability in _player.Data.Abilities) { switch (ability.AbilityType) { case AbilityType.Healing: if (ability.IsOnCooldown) { var cooldonwMessage = new Message { MessageType = MessageType.PlayerHealingCooldown, Number = ability.CurrentCooldown }; _guiMessages.Add(cooldonwMessage); _controls.IsEnabled(InputControlSprite.ButtonType.C, false); } else _controls.IsEnabled(InputControlSprite.ButtonType.C, true); break; case AbilityType.Stun: if (ability.IsOnCooldown) _controls.IsEnabled(InputControlSprite.ButtonType.D, false); else _controls.IsEnabled(InputControlSprite.ButtonType.D, true); break; case AbilityType.AoeStun: break; case AbilityType.DamageBoost: break; case AbilityType.HealingBoost: break; case AbilityType.DefenceBoost: break; case AbilityType.Damage: break; case AbilityType.AoeDamage: break; case AbilityType.Beem: if (ability.IsOnCooldown) { var cooldonwMessage = new Message { MessageType = MessageType.PlayerBeemCooldown, Number = ability.CurrentCooldown }; _guiMessages.Add(cooldonwMessage); _controls.IsEnabled(InputControlSprite.ButtonType.E, false); } else _controls.IsEnabled(InputControlSprite.ButtonType.E, true); break; default: break; } } }
private void SetFloatingCombatText(Message message) { PlayerDamageDone.Visibility = System.Windows.Visibility.Visible; PlayerDamageDone.Text = message.Text; var top = GetPoint(message.Y - 60); var left = GetPoint(message.X + 50); if (message.IsCritical) { PlayerDamageDone.FontSize = 30; top -= 30; } else { PlayerDamageDone.FontSize = 15; } Canvas.SetTop(PlayerDamageDone, top); Canvas.SetLeft(PlayerDamageDone, left); }
private void SendGuiMessages(GameTime gameTime) { if (_lastGameTime == null) _lastGameTime = gameTime.TotalGameTime; if (((gameTime.TotalGameTime - _lastGameTime.Value).Seconds >= 1)) { if (_guiMessages != null) { _player.Data.UpdateCooldowns(gameTime.TotalGameTime); _player.Data.UpdateDpsStats(gameTime.TotalGameTime); var playerXpMessage = new Message { Text = _player.Data.Exp.Current.ToString(), Number = _player.Data.Exp.Current, Number2 = _player.Data.Exp.Max, MessageType = MessageType.PlayerExp }; var playerLevelMessage = new Message { Text = _player.Data.PlayerLevel.ToString(), MessageType = MessageType.PlayerLevel }; var playerHpMessage = new Message { Number = _player.Data.CurrentHP, Number2 = _player.Data.MaxHp, MessageType = MessageType.PlayerHp }; var playerDpsMessage = new Message { Text = _player.Data.GetCurrentDps().ToString(), MessageType = MessageType.PlayerDps }; _guiMessages.Add(playerXpMessage); _guiMessages.Add(playerLevelMessage); _guiMessages.Add(playerHpMessage); _guiMessages.Add(playerDpsMessage); if (_player.Data.GaindNewLevel()) { _guiMessages.Add(new Message {Text = _player.Data.PlayerLevel.ToString(), MessageType = MessageType.BigMessage }); } GuiMessageWriter(_guiMessages); _guiMessages = new List<Message>(); } } }
private void IsPlayerHit() { foreach (var walker in _walkers) { if (_player.IsColliding(walker) && !walker.IsDead) { var damage = _player.Data.Hit(walker.Data.Damage); var playerDamageMessage = new Message { Text = damage.ToString(), MessageType = MessageType.EnemyDamageDone, X = (int)_player.Position.X, Y = (int)_player.Position.Y, Number = walker.Data.Damage }; _guiMessages.Add(playerDamageMessage); walker.IsDead = true; if (_player.Data.IsDead) { FinishedWriter(new List<Message>()); } } } }
private void CheckEnemyHits() { foreach (var projectile in _player.Projectiles) { foreach (var walker in _walkers) { if (projectile.IsUsed) continue; if (walker.IsColliding(projectile) && !walker.IsDead) { if (projectile.IsUsed) continue; projectile.SetHit(walker); var playerDamage = _player.Data.GetWeaponDamage(); walker.IsHit(playerDamage.Damage, projectile.Data.Effect); _player.Data.AddDpsStats(playerDamage.Damage, _currentGameTime); if (walker.IsDead) { _player.Data.Killedenemies++; _player.Data.UpdateExp(walker.Data.XPValue); if (walker.Data.DoDrop()) { AddLoot(walker); } } var playerDamageDoneMessage = new Message { Text = playerDamage.Damage.ToString(), X = (int)walker.Position.X, Y = (int)walker.Position.Y, Number = playerDamage.Damage, MessageType = MessageType.PlayerDamageDone, IsCritical = playerDamage.IsCritical }; var targetHpMessage = new Message { Text = walker.Data.CurrentHp.ToString(), MessageType = MessageType.TargetHp }; _guiMessages.Add(playerDamageDoneMessage); _guiMessages.Add(targetHpMessage); } } } }
private void ButtonCPressed() { var abilityResponse = _player.Data.UseAbility(AbilityType.Healing, _currentGameTime); if (!abilityResponse.CouldUse) return; var healingMessage = new Message { Text = abilityResponse.Power.ToString(), Number = abilityResponse.Power, MessageType = MessageType.PlayerHealing, X = (int)_player.Position.X, Y = (int)_player.Position.Y }; _guiMessages.Add(healingMessage); }
protected override void LoadContent() { TempHackToFixGestures(); _spriteBatch = new SpriteBatch(_graphics.GraphicsDevice); _controls = new Sprites.InputControlSprite(Content, _graphics); _controls.Toucht += OnToucht; _renderTarget = new RenderTarget2D(_graphics.GraphicsDevice, _graphics.GraphicsDevice.Viewport.Height, _graphics.GraphicsDevice.Viewport.Width, false, SurfaceFormat.Color, DepthFormat.Depth16); _background = new ScrollingBackgroundSprite(this.GraphicsDevice.Viewport); _background.AddBackground("level1Test"); _background.AddBackground("level1Test"); _background.LoadContent(this.Content); _foreground = new ScrollingBackgroundSprite(this.GraphicsDevice.Viewport); _foreground.AddBackground("Level1Bg/level1Image1"); _foreground.AddBackground("Level1Bg/level1Image3"); _foreground.AddBackground("Level1Bg/level1Image2"); _foreground.LoadContent(Content); _player = new Player("playerChar", "bullit", 1, 4, new Vector2(500, 470), BoardWidth, App.PlayerData); _player.LoadContent(Content); var guiMessages = new List<Message>(); var playerMaxHp = new Message { Number = _player.Data.MaxHp, MessageType = MessageType.InitPlayerMaxHp }; var playerLevel = new Message { Number = _player.Data.PlayerLevel, MessageType = MessageType.PlayerLevel }; GuiMessageWriter(guiMessages); }