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(); }
public bool IsCollidedWithObject(IColliding obj) { if (!IsObjectTypeValidForCollision(obj) || Destroyed || CollisionsList.Contains(obj)) { return(false); } return(BodyShape.IntersectsWith(obj.BodyShape)); }
protected override void OnAfterCollideRegistered(IColliding obj) { Logger.LogInformation( "After collision registered. " + $"Object1: {this.GetType()}.{this.GetHashCode()}, " + $"HP restored: {this.GetPower()}" ); DestroySpaceObject(); }
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(); } }
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); }
public override bool IsObjectTypeValidForCollision(IColliding obj) { return(obj is SpaceShip); }
public override bool IsObjectTypeValidForCollision(IColliding obj) { return(obj is Asteroid); }
public override bool IsObjectTypeValidForCollision(IColliding obj) { return((obj is Asteroid) || (obj is EnergyPack)); }
protected override void OnAfterCollideRegistered(IColliding obj) { return; }
public override bool IsObjectTypeValidForCollision(IColliding obj) { return(false); }
protected abstract void OnAfterCollideRegistered(IColliding obj);
public abstract bool IsObjectTypeValidForCollision(IColliding obj);