/// <summary> /// Defines how a merge happen between two similar Weathers /// </summary> public abstract Weather Merge(Weather weather);
/// <summary> /// Checks if this <see cref="outerCollisionRectangle"/> intersects with another weather's <see cref="outerCollisionRectangle"/>. /// </summary> public virtual bool Intersects(Weather weather) => weather.outerCollisionRectangle.Intersects(outerCollisionRectangle);
/// <summary> /// Event called whenever this weather is not beign used anymore. /// </summary> public virtual void OnBeingRemoved(Weather incomingWeather) { }
public override Weather Merge(Weather weather) { return(new Weakness((StartingPosition + weather.StartingPosition) / 2, Scale + weather.Scale)); }