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);
        }
示例#3
0
 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);
        }
示例#5
0
        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>();
            }
              }
        }
示例#6
0
 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>());
       }
     }
       }
 }
示例#7
0
        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);
              }
            }
              }
        }
示例#8
0
 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);
 }
示例#9
0
        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);
        }