Наследование: IGameMessage
Пример #1
0
        public override void Message(IGameMessage msg)
        {
            if (msg is DamageMessage && flashing == 0)
            {
                if (Engine.Instance.Invincible && Parent.Name == "Player")
                {
                    return;
                }

                DamageMessage damage = (DamageMessage)msg;
                if (!Engine.Instance.NoDamage)
                {
                    Health -= damage.Damage;
                }

                Hit = true;
                clearHitNextFrame = false;
                flashing          = flashtime;
            }
            else if (msg is HealMessage)
            {
                HealMessage heal = (HealMessage)msg;

                Health += heal.Health;
            }
        }
Пример #2
0
        private void CollideWith(IEntity entity, CollisionBox myBox, CollisionBox targetBox)
        {
            float mult = targetBox.DamageMultiplier(Parent.Name);

            float damage = myBox.ContactDamage * mult;

            IGameMessage dmgmsg;

            if (damage > 0)
            {
                dmgmsg = new DamageMessage(Parent, damage);
            }
            else
            {
                dmgmsg = new HealMessage(Parent, damage * -1);
            }

            float           prevhealth = damage;
            HealthComponent comp       = entity.GetComponent <HealthComponent>();

            if (comp != null)
            {
                prevhealth = comp.Health;
            }

            entity.SendMessage(dmgmsg);
            DamageDealt = Math.Min(damage, prevhealth);
        }
Пример #3
0
        private void CollideWith(IEntity entity, CollisionBox myBox, CollisionBox targetBox)
        {
            float mult = targetBox.DamageMultiplier(Parent.Name);

            float damage = myBox.ContactDamage * mult;

            IGameMessage dmgmsg;
            if (damage > 0) dmgmsg = new DamageMessage(Parent, damage);
            else dmgmsg = new HealMessage(Parent, damage * -1);

            float prevhealth = damage;
            HealthComponent comp = entity.GetComponent<HealthComponent>();
            if (comp != null) prevhealth = comp.Health;

            entity.SendMessage(dmgmsg);
            DamageDealt = Math.Min(damage, prevhealth);
        }