public ScriptVar DeepCopy() { ScriptVar newVar = new ScriptVar(); newVar.CopySimpleData(this); ScriptVarLink link = FirstChild; while (link != null) { ScriptVar copied = link.Name != PrototypeClassName?link.Var.DeepCopy() : link.Var; newVar.AddChild(link.Name, copied); link = link.Next; } return(newVar); }