Example #1
0
 public override void Update(GameTime gameTime, List <Sprite> otherSprites, List <Sprite> hittableSprites)
 {
     UpdateTimer(gameTime);
     flyingSound.Update3DEffect();
     CheckLifespan();
     HandleAnimation(gameTime);
     Move();
     CheckCollisions(hittableSprites);
 }
Example #2
0
        private void CheckCollision(Sprite sprite)
        {
            if (CollisionPolygon.Intersects(sprite.CollisionPolygon))
            {
                if (sprite is Character characerSprite)
                {
                    if (characerSprite.Faction != this.Faction)
                    {
                        flyingSound.Stop();
                        hitSound.Update3DEffect();
                        hitSound.Play();
                        int actualDamage = CalculateDamage(Damage, DamageType, characerSprite, out bool isCrit, out bool isBlocked);
                        characerSprite.Health -= actualDamage;

                        if (isBlocked)
                        {
                            characerSprite.CollisionDisplaytList.Add(new CollisionToDisplay("blocked", Color.Snow));
                        }
                        else if (isCrit)
                        {
                            characerSprite.CollisionDisplaytList.Add(new CollisionToDisplay("*" + actualDamage.ToString() + "*", Color.Red));
                        }
                        else
                        {
                            characerSprite.CollisionDisplaytList.Add(new CollisionToDisplay(actualDamage.ToString(), Color.OrangeRed));
                        }
                        ToRemove = true;
                    }
                }
                else
                {
                    flyingSound.Stop();
                    hitSound.Update3DEffect();
                    hitSound.Play();
                    ToRemove = true;
                }
            }
        }