public BuffCommandInfo CloneChain() { BuffCommandInfo cCommandInfo = (BuffCommandInfo)MemberwiseClone(); cCommandInfo.CommandName = (string)CommandName.Clone(); if (DamageInfo != null) { cCommandInfo.DamageInfo = DamageInfo.Clone(); } if (NextCommand != null) { cCommandInfo.NextCommand = NextCommand.CloneChain(); } if (cCommandInfo.NextCommand != null) { cCommandInfo.NextCommand.LastCommand = cCommandInfo; } return(cCommandInfo); }