class Unit
{
Vector2 Position;
float Health;
public virtual Unit Clone()
{
return new Unit() { Position = this.Position, Health = this.Health };
}
}
class Spider : Unit
{
Unit Target;
public override Unit Clone()
{
var clone = (Spider)base.Clone();
clone.Target = this.Target;
return clone;
}
}