Esempio n. 1
0
        protected override void OnAfterCollideRegistered(IColliding obj)
        {
            string CollisionResult = "";

            if (obj is EnergyPack)
            {
                Health         += obj.GetPower();
                CollisionResult = $"HP restored: {obj.GetPower()}";
            }
            else
            {
                Health         -= obj.GetPower();
                CollisionResult = $"Damage taken: {obj.GetPower()}";
            }

            if (Health <= 0)
            {
                DestroySpaceObject();
            }

            Logger.LogInformation(
                "After collision registered. " +
                $"Object1: {this.GetType()}.{this.GetHashCode()}, " +
                $"{CollisionResult}, " +
                $"Object1 Health: {Health}"
                );

            CollisionsList.Clear();
        }
Esempio n. 2
0
        public bool IsCollidedWithObject(IColliding obj)
        {
            if (!IsObjectTypeValidForCollision(obj) || Destroyed || CollisionsList.Contains(obj))
            {
                return(false);
            }

            return(BodyShape.IntersectsWith(obj.BodyShape));
        }
Esempio n. 3
0
        protected override void OnAfterCollideRegistered(IColliding obj)
        {
            Logger.LogInformation(
                "After collision registered. " +
                $"Object1: {this.GetType()}.{this.GetHashCode()}, " +
                $"HP restored: {this.GetPower()}"
                );

            DestroySpaceObject();
        }
Esempio n. 4
0
        protected override void OnAfterCollideRegistered(IColliding obj)
        {
            Health -= obj.GetPower();

            Logger.LogInformation(
                "After collision registered. " +
                $"Object1: {this.GetType()}.{this.GetHashCode()}, " +
                $"Damage taken: {obj.GetPower()}, " +
                $"Object1 Health: {Health}"
                );

            if (Health <= 0)
            {
                DestroySpaceObject();
            }
        }
Esempio n. 5
0
        public void OnCollideWithObject(IColliding obj)
        {
            if (!IsCollidedWithObject(obj))
            {
                return;
            }

            if (!CollisionsList.Contains(obj))
            {
                CollisionsList.Add(obj);
            }

            obj.OnCollideWithObject(this);

            Logger.LogInformation(
                "Collision of objects registered. " +
                $"Object1: {this.GetType()}.{this.GetHashCode()}, " +
                $"Object2: {obj.GetType()}.{obj.GetHashCode()}"
                );

            OnAfterCollideRegistered(obj);
        }
Esempio n. 6
0
 public override bool IsObjectTypeValidForCollision(IColliding obj)
 {
     return(obj is SpaceShip);
 }
Esempio n. 7
0
 public override bool IsObjectTypeValidForCollision(IColliding obj)
 {
     return(obj is Asteroid);
 }
Esempio n. 8
0
 public override bool IsObjectTypeValidForCollision(IColliding obj)
 {
     return((obj is Asteroid) || (obj is EnergyPack));
 }
Esempio n. 9
0
 protected override void OnAfterCollideRegistered(IColliding obj)
 {
     return;
 }
Esempio n. 10
0
 public override bool IsObjectTypeValidForCollision(IColliding obj)
 {
     return(false);
 }
Esempio n. 11
0
 protected abstract void OnAfterCollideRegistered(IColliding obj);
Esempio n. 12
0
 public abstract bool IsObjectTypeValidForCollision(IColliding obj);