Example #1
0
 protected override void UpdateAffectedTargets(AttackingGameObject thisObject)
 {
     foreach (var enemy in OrusTheGame.Instance.GameInformation.Levels[OrusTheGame.Instance.GameInformation.CurrentLevelIndex].Enemies)
     {
         if (thisObject.CollidesForAttack(enemy,
                                          !thisObject.IddleAnimation.SpriteEffect.HasFlag(SpriteEffects.FlipHorizontally)))
         {
             this.AffectedTargets.Add(enemy);
         }
     }
 }
Example #2
0
        public override void Update(GameTime gameTime, AttackingGameObject objectUsingAbility)
        {
            base.Update(gameTime, objectUsingAbility);
            var possibleColliders = new List <ICollideable>();

            foreach (var enemy in OrusTheGame.Instance.GameInformation.Levels[OrusTheGame.Instance.GameInformation.CurrentLevelIndex].Enemies)
            {
                possibleColliders.Add(enemy);
            }
            possibleColliders.Add(OrusTheGame.Instance.GameInformation.Character);
            bool collides = false;

            foreach (var collider in possibleColliders)
            {
                foreach (var alreadyAffected in this.AffectedTargets)
                {
                    if (objectUsingAbility.Collides(alreadyAffected))
                    {
                        collides = true;
                    }
                }
                if (objectUsingAbility.CollidesForAttack(collider,
                                                         !objectUsingAbility.IddleAnimation.SpriteEffect.HasFlag(SpriteEffects.FlipHorizontally)))
                {
                    var enemy = collider as AttackingGameObject;
                    if (enemy != null)
                    {
                        this.AffectedTargets.Add(enemy);
                    }
                    collides = true;
                }
                if (collides)
                {
                    this.Animation.SpriteEffect = objectUsingAbility.IddleAnimation.SpriteEffect;
                    objectUsingAbility.MoveTo(3,
                                              !objectUsingAbility.IddleAnimation.SpriteEffect.HasFlag(SpriteEffects.FlipHorizontally), false, false);
                }
            }
            if (!collides)
            {
                this.Animation.IsActive = false;
                objectUsingAbility.IddleAnimation.IsActive = true;
            }
        }
Example #3
0
 public override void Update(GameTime gameTime, AttackingGameObject objectUsingAbility)
 {
     base.Update(gameTime, objectUsingAbility);
     var possibleColliders = new List<ICollideable>();
     foreach (var enemy in OrusTheGame.Instance.GameInformation.Levels[OrusTheGame.Instance.GameInformation.CurrentLevelIndex].Enemies)
     {
         possibleColliders.Add(enemy);
     }
     possibleColliders.Add(OrusTheGame.Instance.GameInformation.Character);
     bool collides = false;
     foreach (var collider in possibleColliders)
     {
         foreach (var alreadyAffected in this.AffectedTargets)
         {
             if (objectUsingAbility.Collides(alreadyAffected))
             {
                 collides = true;
             }
         }
         if (objectUsingAbility.CollidesForAttack(collider,
             !objectUsingAbility.IddleAnimation.SpriteEffect.HasFlag(SpriteEffects.FlipHorizontally)))
         {
             var enemy = collider as AttackingGameObject;
             if(enemy != null)
             {
                 this.AffectedTargets.Add(enemy);
             }
             collides = true;
         }
         if (collides)
         {
             this.Animation.SpriteEffect = objectUsingAbility.IddleAnimation.SpriteEffect;
             objectUsingAbility.MoveTo(3,
             !objectUsingAbility.IddleAnimation.SpriteEffect.HasFlag(SpriteEffects.FlipHorizontally), false, false);
         }
     }
     if(!collides)
     {
         this.Animation.IsActive = false;
         objectUsingAbility.IddleAnimation.IsActive = true;
     }
 }
Example #4
0
 public override void Update(GameTime gameTime, AttackingGameObject objectUsingAbility)
 {
     base.Update(gameTime, objectUsingAbility);
     if (this.IsOnCooldown)
     {
         if (!this.Animation.IsActive)
         {
             if (!this.AbilityFinished)
             {
                 BattleEngine.DamageResolution(this);
                 this.AbilityFinished = true;
             }
             objectUsingAbility.IsUsingAbility = false;
         }
         this.TimeSinceUse += gameTime.ElapsedGameTime.Milliseconds / 1000;
         if (this.TimeSinceUse >= this.CooldownTime)
         {
             this.AbilityFinished = false;
             this.IsOnCooldown    = false;
         }
         this.Animation.Animate(gameTime, objectUsingAbility);
     }
 }
Example #5
0
 protected override void UpdateAffectedTargets(AttackingGameObject thisObject)
 {
     foreach (var enemy in OrusTheGame.Instance.GameInformation.Levels[OrusTheGame.Instance.GameInformation.CurrentLevelIndex].Enemies)
     {
         if (thisObject.CollidesForAttack(enemy,
             !thisObject.IddleAnimation.SpriteEffect.HasFlag(SpriteEffects.FlipHorizontally)))
         {
             this.AffectedTargets.Add(enemy);
         }
     }
 }
Example #6
0
 public virtual void Update(GameTime gameTime, AttackingGameObject objectUsingAbility)
 {
     this.Animation.Position = objectUsingAbility.Position;
 }
Example #7
0
 protected abstract void UpdateAffectedTargets(AttackingGameObject thisObject);